@retinalabsllc/zairusjs 1.0.8 → 1.0.9

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
@@ -3267,14 +3267,282 @@ var UniversalDirectoryPage = ({
3267
3267
  ))))), currentView === "details" && detailsContent, modals);
3268
3268
  };
3269
3269
 
3270
- // src/components/AiApproveDecline.tsx
3271
- import React39, { useState as useState24 } from "react";
3270
+ // src/components/UniversalDriveView.tsx
3271
+ import React40, { useState as useState24 } from "react";
3272
+ import { HugeiconsIcon as HugeiconsIcon26 } from "@hugeicons/react";
3273
+ import {
3274
+ ListViewIcon,
3275
+ GridViewIcon,
3276
+ Delete02Icon as Delete02Icon2,
3277
+ Upload02Icon,
3278
+ FolderAddIcon,
3279
+ Cancel01Icon as Cancel01Icon3,
3280
+ Tick01Icon,
3281
+ FolderIcon as FolderIcon2
3282
+ } from "@hugeicons/core-free-icons";
3283
+
3284
+ // src/components/FileIconMapper.tsx
3285
+ import React39 from "react";
3272
3286
  import { HugeiconsIcon as HugeiconsIcon25 } from "@hugeicons/react";
3287
+ import {
3288
+ FolderIcon,
3289
+ TableIcon,
3290
+ ImageIcon,
3291
+ FileIcon,
3292
+ Video01Icon,
3293
+ HeadphonesIcon,
3294
+ Note01Icon,
3295
+ CodeIcon,
3296
+ Archive01Icon
3297
+ } from "@hugeicons/core-free-icons";
3298
+ var FileIconMapper = ({ type, mimeType }) => {
3299
+ const mime = mimeType?.toLowerCase() || "";
3300
+ if (type === "FOLDER") {
3301
+ return /* @__PURE__ */ React39.createElement(HugeiconsIcon25, { icon: FolderIcon, size: 18, className: "text-black" });
3302
+ }
3303
+ if (type === "SHEET" || mime.includes("excel") || mime.includes("spreadsheet") || mime.includes("csv")) {
3304
+ return /* @__PURE__ */ React39.createElement(HugeiconsIcon25, { icon: TableIcon, size: 18, className: "text-black" });
3305
+ }
3306
+ if (type === "IMAGE" || mime.startsWith("image/")) {
3307
+ return /* @__PURE__ */ React39.createElement(HugeiconsIcon25, { icon: ImageIcon, size: 18, className: "text-black" });
3308
+ }
3309
+ if (type === "VIDEO" || mime.startsWith("video/")) {
3310
+ return /* @__PURE__ */ React39.createElement(HugeiconsIcon25, { icon: Video01Icon, size: 18, className: "text-black" });
3311
+ }
3312
+ if (type === "AUDIO" || mime.startsWith("audio/")) {
3313
+ return /* @__PURE__ */ React39.createElement(HugeiconsIcon25, { icon: HeadphonesIcon, size: 18, className: "text-black" });
3314
+ }
3315
+ if (type === "CODE" || mime.includes("json") || mime.includes("javascript") || mime.includes("html")) {
3316
+ return /* @__PURE__ */ React39.createElement(HugeiconsIcon25, { icon: CodeIcon, size: 18, className: "text-black" });
3317
+ }
3318
+ if (type === "ARCHIVE" || mime.includes("zip") || mime.includes("tar") || mime.includes("rar")) {
3319
+ return /* @__PURE__ */ React39.createElement(HugeiconsIcon25, { icon: Archive01Icon, size: 18, className: "text-black" });
3320
+ }
3321
+ if (type === "DOC" || type === "PDF" || type === "TXT" || mime.includes("word") || mime.includes("pdf") || mime.includes("text")) {
3322
+ return /* @__PURE__ */ React39.createElement(HugeiconsIcon25, { icon: Note01Icon, size: 18, className: "text-black" });
3323
+ }
3324
+ return /* @__PURE__ */ React39.createElement(HugeiconsIcon25, { icon: FileIcon, size: 18, className: "text-black" });
3325
+ };
3326
+
3327
+ // src/components/UniversalDriveView.tsx
3328
+ var UniversalDriveView = ({
3329
+ currentFolderId,
3330
+ folderBreadcrumbs,
3331
+ items,
3332
+ uploadQueue,
3333
+ isLoading,
3334
+ searchQuery,
3335
+ onSearchChange,
3336
+ onNavigateFolder,
3337
+ onCreateFolder,
3338
+ onUploadFiles,
3339
+ onMoveToTrash,
3340
+ onClearUploadQueue
3341
+ }) => {
3342
+ const [viewLayout, setViewLayout] = useState24("list");
3343
+ const [selectedIds, setSelectedIds] = useState24([]);
3344
+ const [isNewFolderModalOpen, setIsNewFolderModalOpen] = useState24(false);
3345
+ const [newFolderName, setNewFolderName] = useState24("");
3346
+ const formatBytes = (bytes) => {
3347
+ const num = Number(bytes);
3348
+ if (num === 0) return "0 Bytes";
3349
+ const k = 1024;
3350
+ const sizes = ["Bytes", "KB", "MB", "GB"];
3351
+ const i = Math.floor(Math.log(num) / Math.log(k));
3352
+ return parseFloat((num / Math.pow(k, i)).toFixed(1)) + " " + sizes[i];
3353
+ };
3354
+ const formatDate3 = (dateString) => {
3355
+ return new Date(dateString).toLocaleDateString("en-US", {
3356
+ month: "short",
3357
+ day: "numeric",
3358
+ year: "numeric"
3359
+ });
3360
+ };
3361
+ const handleItemSelection = (id, e) => {
3362
+ e.stopPropagation();
3363
+ setSelectedIds(
3364
+ (prev) => prev.includes(id) ? prev.filter((item) => item !== id) : [...prev, id]
3365
+ );
3366
+ };
3367
+ const handleSelectAll = () => {
3368
+ if (selectedIds.length === items.length) {
3369
+ setSelectedIds([]);
3370
+ } else {
3371
+ setSelectedIds(items.map((i) => i.id));
3372
+ }
3373
+ };
3374
+ const handleItemDoubleClick = (item) => {
3375
+ if (item.type === "FOLDER") {
3376
+ setSelectedIds([]);
3377
+ onNavigateFolder(item.id);
3378
+ }
3379
+ };
3380
+ const handleCreateFolderSubmit = async (e) => {
3381
+ e.preventDefault();
3382
+ if (!newFolderName.trim()) return;
3383
+ await onCreateFolder(newFolderName.trim());
3384
+ setNewFolderName("");
3385
+ setIsNewFolderModalOpen(false);
3386
+ };
3387
+ const handleBulkDelete = async () => {
3388
+ if (selectedIds.length === 0) return;
3389
+ await onMoveToTrash(selectedIds);
3390
+ setSelectedIds([]);
3391
+ };
3392
+ const activeJobs = uploadQueue.filter((j) => j.status === "UPLOADING" || j.status === "PENDING");
3393
+ const completedCount = uploadQueue.filter((j) => j.status === "COMPLETED").length;
3394
+ const totalJobs = uploadQueue.length;
3395
+ const globalProgress = totalJobs > 0 ? Math.round(uploadQueue.reduce((acc, job) => acc + job.progress, 0) / (totalJobs * 100) * 100) : 0;
3396
+ return /* @__PURE__ */ React40.createElement("div", { className: "flex flex-col gap-6 max-w-4xl w-full mx-auto p-6 bg-white rounded-2xl animate-in fade-in duration-300 relative" }, /* @__PURE__ */ React40.createElement(ManagedToaster, null), /* @__PURE__ */ React40.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between gap-4 pb-4 border-b border-neutral-100" }, /* @__PURE__ */ React40.createElement("div", null, /* @__PURE__ */ React40.createElement("h1", { className: "text-xl text-black tracking-tight mb-1" }, "Files & Workspace Storage"), /* @__PURE__ */ React40.createElement("p", { className: "text-xs text-neutral-500" }, "Secure sandboxed storage framework optimized for workspace data.")), /* @__PURE__ */ React40.createElement("div", { className: "flex items-center gap-2 shrink-0" }, /* @__PURE__ */ React40.createElement(
3397
+ "button",
3398
+ {
3399
+ onClick: () => setViewLayout("list"),
3400
+ className: `p-2 border rounded-full transition-all outline-none ${viewLayout === "list" ? "bg-neutral-100 border-neutral-200 text-black" : "bg-white border-neutral-100 text-neutral-400 hover:text-black"}`
3401
+ },
3402
+ /* @__PURE__ */ React40.createElement(HugeiconsIcon26, { icon: ListViewIcon, size: 14 })
3403
+ ), /* @__PURE__ */ React40.createElement(
3404
+ "button",
3405
+ {
3406
+ onClick: () => setViewLayout("grid"),
3407
+ className: `p-2 border rounded-full transition-all outline-none ${viewLayout === "grid" ? "bg-neutral-100 border-neutral-200 text-black" : "bg-white border-neutral-100 text-neutral-400 hover:text-black"}`
3408
+ },
3409
+ /* @__PURE__ */ React40.createElement(HugeiconsIcon26, { icon: GridViewIcon, size: 14 })
3410
+ ), /* @__PURE__ */ React40.createElement(
3411
+ "button",
3412
+ {
3413
+ onClick: () => setIsNewFolderModalOpen(true),
3414
+ className: "flex items-center gap-2 px-4 py-2 border border-neutral-100 rounded-full text-xs text-black hover:bg-neutral-50 transition-colors outline-none"
3415
+ },
3416
+ /* @__PURE__ */ React40.createElement(HugeiconsIcon26, { icon: FolderAddIcon, size: 14 }),
3417
+ " New Folder"
3418
+ ), /* @__PURE__ */ React40.createElement("label", { className: "flex items-center gap-2 px-4 py-2 bg-black text-white rounded-full text-xs cursor-pointer hover:bg-neutral-900 transition-colors select-none" }, /* @__PURE__ */ React40.createElement(HugeiconsIcon26, { icon: Upload02Icon, size: 14, className: "text-white" }), " Upload Files", /* @__PURE__ */ React40.createElement(
3419
+ "input",
3420
+ {
3421
+ type: "file",
3422
+ multiple: true,
3423
+ className: "hidden",
3424
+ onChange: (e) => e.target.files && onUploadFiles(e.target.files)
3425
+ }
3426
+ )))), /* @__PURE__ */ React40.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between gap-4" }, /* @__PURE__ */ React40.createElement("div", { className: "w-full sm:max-w-xs" }, /* @__PURE__ */ React40.createElement(
3427
+ TextInput,
3428
+ {
3429
+ placeholder: "Search workspace files...",
3430
+ value: searchQuery,
3431
+ onChange: onSearchChange
3432
+ }
3433
+ )), selectedIds.length > 0 && /* @__PURE__ */ React40.createElement("div", { className: "flex items-center gap-3 bg-neutral-50 border border-neutral-100 px-4 py-2 rounded-full animate-in fade-in slide-in-from-top-2 duration-200" }, /* @__PURE__ */ React40.createElement("span", { className: "text-[11px] tracking-widest text-neutral-500 uppercase" }, selectedIds.length, " Selected"), /* @__PURE__ */ React40.createElement(
3434
+ "button",
3435
+ {
3436
+ onClick: handleBulkDelete,
3437
+ className: "text-neutral-500 hover:text-red-600 p-1 rounded-full transition-colors outline-none flex items-center gap-1.5 text-xs"
3438
+ },
3439
+ /* @__PURE__ */ React40.createElement(HugeiconsIcon26, { icon: Delete02Icon2, size: 14 }),
3440
+ " Move to Trash"
3441
+ ))), /* @__PURE__ */ React40.createElement("div", { className: "flex items-center gap-1.5 overflow-x-auto text-xs py-1 border-b border-neutral-50 text-neutral-400 whitespace-nowrap tracking-wide" }, folderBreadcrumbs.map((crumb, idx) => /* @__PURE__ */ React40.createElement(React40.Fragment, { key: idx }, idx > 0 && /* @__PURE__ */ React40.createElement("span", null, "/"), /* @__PURE__ */ React40.createElement(
3442
+ "button",
3443
+ {
3444
+ onClick: () => {
3445
+ setSelectedIds([]);
3446
+ onNavigateFolder(crumb.id);
3447
+ },
3448
+ className: `hover:text-black transition-colors outline-none ${idx === folderBreadcrumbs.length - 1 ? "text-black" : ""}`
3449
+ },
3450
+ crumb.name
3451
+ )))), !isLoading && items.length === 0 && /* @__PURE__ */ React40.createElement("div", { className: "py-20 text-center flex flex-col items-center justify-center border border-dashed border-neutral-100 rounded-xl" }, /* @__PURE__ */ React40.createElement(HugeiconsIcon26, { icon: FolderIcon2, size: 40, className: "text-neutral-200 mb-3" }), /* @__PURE__ */ React40.createElement("p", { className: "text-xs text-neutral-400" }, "This directory path is completely empty.")), !isLoading && items.length > 0 && viewLayout === "list" && /* @__PURE__ */ React40.createElement("div", { className: "w-full overflow-x-auto select-none" }, /* @__PURE__ */ React40.createElement("table", { className: "w-full text-left border-collapse min-w-125" }, /* @__PURE__ */ React40.createElement("thead", null, /* @__PURE__ */ React40.createElement("tr", { className: "border-b border-neutral-100" }, /* @__PURE__ */ React40.createElement("th", { className: "w-10 p-3" }, /* @__PURE__ */ React40.createElement(
3452
+ "input",
3453
+ {
3454
+ type: "checkbox",
3455
+ checked: selectedIds.length === items.length,
3456
+ onChange: handleSelectAll,
3457
+ className: "rounded border-neutral-200 focus:ring-0 outline-none cursor-pointer"
3458
+ }
3459
+ )), /* @__PURE__ */ React40.createElement("th", { className: "text-[11px] uppercase tracking-[0.2em] text-neutral-400 p-3" }, "Name"), /* @__PURE__ */ React40.createElement("th", { className: "text-[11px] uppercase tracking-[0.2em] text-neutral-400 p-3" }, "Modified"), /* @__PURE__ */ React40.createElement("th", { className: "text-[11px] uppercase tracking-[0.2em] text-neutral-400 p-3 text-right" }, "Size"))), /* @__PURE__ */ React40.createElement("tbody", { className: "divide-y divide-neutral-50" }, items.map((item) => {
3460
+ const isChecked = selectedIds.includes(item.id);
3461
+ return /* @__PURE__ */ React40.createElement(
3462
+ "tr",
3463
+ {
3464
+ key: item.id,
3465
+ onDoubleClick: () => handleItemDoubleClick(item),
3466
+ className: `hover:bg-neutral-50/70 transition-colors cursor-pointer group ${isChecked ? "bg-neutral-50/40" : ""}`
3467
+ },
3468
+ /* @__PURE__ */ React40.createElement("td", { className: "p-3", onClick: (e) => handleItemSelection(item.id, e) }, /* @__PURE__ */ React40.createElement(
3469
+ "input",
3470
+ {
3471
+ type: "checkbox",
3472
+ checked: isChecked,
3473
+ onChange: (e) => handleItemSelection(item.id, e),
3474
+ className: "rounded border-neutral-200 focus:ring-0 outline-none cursor-pointer"
3475
+ }
3476
+ )),
3477
+ /* @__PURE__ */ React40.createElement("td", { className: "p-3 flex items-center gap-3 min-w-0" }, /* @__PURE__ */ React40.createElement("div", { className: "w-8 h-8 shrink-0 bg-neutral-100 rounded-lg flex items-center justify-center" }, /* @__PURE__ */ React40.createElement(FileIconMapper, { type: item.type, mimeType: item.mimeType })), /* @__PURE__ */ React40.createElement("span", { className: "text-xs text-black truncate pr-4" }, item.name)),
3478
+ /* @__PURE__ */ React40.createElement("td", { className: "p-3 text-xs text-neutral-500 whitespace-nowrap" }, formatDate3(item.updatedAt)),
3479
+ /* @__PURE__ */ React40.createElement("td", { className: "p-3 text-xs text-neutral-500 text-right whitespace-nowrap" }, item.type === "FOLDER" ? "\u2014" : formatBytes(item.size))
3480
+ );
3481
+ })))), !isLoading && items.length > 0 && viewLayout === "grid" && /* @__PURE__ */ React40.createElement("div", { className: "grid grid-cols-2 sm:grid-cols-4 gap-4 select-none" }, items.map((item) => {
3482
+ const isChecked = selectedIds.includes(item.id);
3483
+ return /* @__PURE__ */ React40.createElement(
3484
+ "div",
3485
+ {
3486
+ key: item.id,
3487
+ onDoubleClick: () => handleItemDoubleClick(item),
3488
+ onClick: (e) => handleItemSelection(item.id, e),
3489
+ className: `p-4 border rounded-xl flex flex-col gap-3 relative hover:border-black/30 cursor-pointer group transition-all ${isChecked ? "bg-neutral-50 border-black/30" : "bg-white border-neutral-100"}`
3490
+ },
3491
+ /* @__PURE__ */ React40.createElement("div", { className: "absolute top-3 left-3 opacity-0 group-hover:opacity-100 checked:opacity-100 transition-opacity", onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ React40.createElement(
3492
+ "input",
3493
+ {
3494
+ type: "checkbox",
3495
+ checked: isChecked,
3496
+ onChange: (e) => handleItemSelection(item.id, e),
3497
+ className: "rounded border-neutral-200 focus:ring-0 outline-none cursor-pointer"
3498
+ }
3499
+ )),
3500
+ /* @__PURE__ */ React40.createElement("div", { className: "w-10 h-10 bg-neutral-100 rounded-xl flex items-center justify-center mx-auto mt-2 shrink-0" }, /* @__PURE__ */ React40.createElement(FileIconMapper, { type: item.type, mimeType: item.mimeType })),
3501
+ /* @__PURE__ */ React40.createElement("div", { className: "text-center min-w-0 px-1" }, /* @__PURE__ */ React40.createElement("div", { className: "text-xs text-black truncate w-full block" }, item.name), /* @__PURE__ */ React40.createElement("div", { className: "text-[10px] text-neutral-400 tracking-wide mt-0.5 whitespace-nowrap" }, item.type === "FOLDER" ? "Folder" : formatBytes(item.size)))
3502
+ );
3503
+ })), activeJobs.length > 0 && /* @__PURE__ */ React40.createElement("div", { className: "fixed bottom-6 right-6 w-80 bg-white border border-neutral-200 shadow-2xl rounded-xl z-100 overflow-hidden flex flex-col animate-in slide-in-from-bottom-4 duration-300" }, /* @__PURE__ */ React40.createElement("div", { className: "p-4 border-b border-neutral-100 bg-neutral-50 flex items-center justify-between" }, /* @__PURE__ */ React40.createElement("div", null, /* @__PURE__ */ React40.createElement("h4", { className: "text-xs text-black" }, "Uploading Elements"), /* @__PURE__ */ React40.createElement("p", { className: "text-[10px] text-neutral-500 mt-0.5" }, "Uploading ", completedCount + 1, " of ", totalJobs, " (", globalProgress, "%)")), onClearUploadQueue && activeJobs.length === 0 && /* @__PURE__ */ React40.createElement("button", { onClick: onClearUploadQueue, className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React40.createElement(HugeiconsIcon26, { icon: Cancel01Icon3, size: 14 }))), /* @__PURE__ */ React40.createElement("div", { className: "w-full h-1 bg-neutral-100 relative" }, /* @__PURE__ */ React40.createElement("div", { className: "h-full bg-black transition-all duration-300", style: { width: `${globalProgress}%` } })), /* @__PURE__ */ React40.createElement("div", { className: "max-h-40 overflow-y-auto divide-y divide-neutral-50 p-2" }, uploadQueue.map((job) => /* @__PURE__ */ React40.createElement("div", { key: job.id, className: "flex items-center justify-between p-2 text-[11px] gap-4" }, /* @__PURE__ */ React40.createElement("span", { className: "text-black truncate flex-1 pr-2" }, job.name), /* @__PURE__ */ React40.createElement("div", { className: "shrink-0 whitespace-nowrap flex items-center gap-2" }, job.status === "COMPLETED" ? /* @__PURE__ */ React40.createElement(HugeiconsIcon26, { icon: Tick01Icon, size: 12, className: "text-green-600" }) : job.status === "FAILED" ? /* @__PURE__ */ React40.createElement("span", { className: "text-red-600 text-[10px]" }, "Failed") : /* @__PURE__ */ React40.createElement("span", { className: "text-neutral-500 text-[10px]" }, job.progress, "%")))))), isNewFolderModalOpen && /* @__PURE__ */ React40.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React40.createElement("div", { className: "absolute inset-0 bg-black/20 backdrop-blur-sm", onClick: () => setIsNewFolderModalOpen(false) }), /* @__PURE__ */ React40.createElement(
3504
+ "form",
3505
+ {
3506
+ onSubmit: handleCreateFolderSubmit,
3507
+ className: "relative w-80 bg-white border border-neutral-100 shadow-2xl rounded-2xl p-6 flex flex-col gap-4 animate-in zoom-in-95 duration-200"
3508
+ },
3509
+ /* @__PURE__ */ React40.createElement("div", null, /* @__PURE__ */ React40.createElement("h3", { className: "text-sm text-black tracking-tight mb-1" }, "Create Virtual Directory"), /* @__PURE__ */ React40.createElement("p", { className: "text-[11px] text-neutral-400" }, "Provide an alpha-numeric layout key for your root structure.")),
3510
+ /* @__PURE__ */ React40.createElement(
3511
+ TextInput,
3512
+ {
3513
+ placeholder: "Folder name (e.g., Financial Invoices)",
3514
+ value: newFolderName,
3515
+ onChange: setNewFolderName
3516
+ }
3517
+ ),
3518
+ /* @__PURE__ */ React40.createElement("div", { className: "flex items-center justify-end gap-2 mt-2" }, /* @__PURE__ */ React40.createElement(
3519
+ "button",
3520
+ {
3521
+ type: "button",
3522
+ onClick: () => setIsNewFolderModalOpen(false),
3523
+ className: "px-4 py-2 text-xs text-neutral-500 hover:bg-neutral-50 rounded-full transition-colors outline-none"
3524
+ },
3525
+ "Cancel"
3526
+ ), /* @__PURE__ */ React40.createElement(
3527
+ "button",
3528
+ {
3529
+ type: "submit",
3530
+ disabled: !newFolderName.trim(),
3531
+ className: "px-4 py-2 text-xs bg-black text-white rounded-full hover:bg-neutral-900 disabled:opacity-30 transition-all outline-none"
3532
+ },
3533
+ "Create Folder"
3534
+ ))
3535
+ )));
3536
+ };
3537
+
3538
+ // src/components/AiApproveDecline.tsx
3539
+ import React41, { useState as useState25 } from "react";
3540
+ import { HugeiconsIcon as HugeiconsIcon27 } from "@hugeicons/react";
3273
3541
  import { CheckmarkCircle01Icon as CheckmarkCircle01Icon2, CancelCircleIcon as CancelCircleIcon2, PencilEdit01Icon } from "@hugeicons/core-free-icons";
3274
3542
  var AiApproveDecline = ({ suggestionTitle, suggestionValue, onApprove, onDecline, onEdit }) => {
3275
- const [isEditing, setIsEditing] = useState24(false);
3276
- const [editVal, setEditVal] = useState24(typeof suggestionValue === "string" ? suggestionValue : "");
3277
- return /* @__PURE__ */ React39.createElement("div", { className: "border border-purple-100 bg-linear-to-bl from-purple-50/80 via-white to-white p-5 rounded-2xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ React39.createElement("div", null, /* @__PURE__ */ React39.createElement("span", { className: "text-[11px] tracking-widest text-purple-600 block mb-1 uppercase" }, "AI Suggestion: ", suggestionTitle), !isEditing ? /* @__PURE__ */ React39.createElement("div", { className: "text-sm text-black" }, suggestionValue) : /* @__PURE__ */ React39.createElement(
3543
+ const [isEditing, setIsEditing] = useState25(false);
3544
+ const [editVal, setEditVal] = useState25(typeof suggestionValue === "string" ? suggestionValue : "");
3545
+ return /* @__PURE__ */ React41.createElement("div", { className: "border border-purple-100 bg-linear-to-bl from-purple-50/80 via-white to-white p-5 rounded-2xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ React41.createElement("div", null, /* @__PURE__ */ React41.createElement("span", { className: "text-[11px] tracking-widest text-purple-600 block mb-1 uppercase" }, "AI Suggestion: ", suggestionTitle), !isEditing ? /* @__PURE__ */ React41.createElement("div", { className: "text-sm text-black" }, suggestionValue) : /* @__PURE__ */ React41.createElement(
3278
3546
  "input",
3279
3547
  {
3280
3548
  type: "text",
@@ -3283,23 +3551,23 @@ var AiApproveDecline = ({ suggestionTitle, suggestionValue, onApprove, onDecline
3283
3551
  className: "w-full text-sm p-2 border-b border-purple-200 bg-transparent outline-none focus:border-purple-400 transition-colors",
3284
3552
  autoFocus: true
3285
3553
  }
3286
- )), /* @__PURE__ */ React39.createElement("div", { className: "flex items-center gap-1 mt-2" }, !isEditing ? /* @__PURE__ */ React39.createElement(React39.Fragment, null, /* @__PURE__ */ React39.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__ */ React39.createElement(HugeiconsIcon25, { icon: CheckmarkCircle01Icon2, size: 28 })), /* @__PURE__ */ React39.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__ */ React39.createElement(HugeiconsIcon25, { icon: CancelCircleIcon2, size: 28 })), onEdit && /* @__PURE__ */ React39.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__ */ React39.createElement(HugeiconsIcon25, { icon: PencilEdit01Icon, size: 18 }))) : /* @__PURE__ */ React39.createElement(React39.Fragment, null, /* @__PURE__ */ React39.createElement("button", { onClick: () => {
3554
+ )), /* @__PURE__ */ React41.createElement("div", { className: "flex items-center gap-1 mt-2" }, !isEditing ? /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.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__ */ React41.createElement(HugeiconsIcon27, { icon: CheckmarkCircle01Icon2, size: 28 })), /* @__PURE__ */ React41.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__ */ React41.createElement(HugeiconsIcon27, { icon: CancelCircleIcon2, size: 28 })), onEdit && /* @__PURE__ */ React41.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__ */ React41.createElement(HugeiconsIcon27, { icon: PencilEdit01Icon, size: 18 }))) : /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement("button", { onClick: () => {
3287
3555
  onEdit?.(editVal);
3288
3556
  setIsEditing(false);
3289
- }, 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__ */ React39.createElement(HugeiconsIcon25, { icon: CheckmarkCircle01Icon2, size: 28 })), /* @__PURE__ */ React39.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__ */ React39.createElement(HugeiconsIcon25, { icon: CancelCircleIcon2, size: 28 })))));
3557
+ }, 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__ */ React41.createElement(HugeiconsIcon27, { icon: CheckmarkCircle01Icon2, size: 28 })), /* @__PURE__ */ React41.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__ */ React41.createElement(HugeiconsIcon27, { icon: CancelCircleIcon2, size: 28 })))));
3290
3558
  };
3291
3559
 
3292
3560
  // src/components/AiStageCheck.tsx
3293
- import React40 from "react";
3294
- import { HugeiconsIcon as HugeiconsIcon26 } from "@hugeicons/react";
3561
+ import React42 from "react";
3562
+ import { HugeiconsIcon as HugeiconsIcon28 } from "@hugeicons/react";
3295
3563
  import { Loading03Icon as Loading03Icon12, CheckmarkCircle02Icon, CancelCircleIcon as CancelCircleIcon3 } from "@hugeicons/core-free-icons";
3296
3564
  var AiStageCheck = ({ tasks }) => {
3297
- return /* @__PURE__ */ React40.createElement("div", { className: "flex flex-col gap-3 p-5 rounded-2xl border border-purple-100 bg-linear-to-bl from-purple-50/80 via-white to-white relative overflow-hidden" }, /* @__PURE__ */ React40.createElement("span", { className: "text-[11px] tracking-widest text-purple-600 mb-1 uppercase" }, "AI Processing"), tasks.map((task) => /* @__PURE__ */ React40.createElement("div", { key: task.id, className: "flex items-center gap-3" }, task.status === "pending" && /* @__PURE__ */ React40.createElement("div", { className: "w-4 h-4 rounded-full border border-purple-200" }), task.status === "loading" && /* @__PURE__ */ React40.createElement(HugeiconsIcon26, { icon: Loading03Icon12, size: 16, className: "animate-spin text-purple-500" }), task.status === "success" && /* @__PURE__ */ React40.createElement(HugeiconsIcon26, { icon: CheckmarkCircle02Icon, size: 16, className: "text-emerald-500" }), task.status === "error" && /* @__PURE__ */ React40.createElement(HugeiconsIcon26, { icon: CancelCircleIcon3, size: 16, className: "text-red-500" }), /* @__PURE__ */ React40.createElement("span", { className: `text-xs transition-colors ${task.status === "success" ? "text-black" : task.status === "loading" ? "text-purple-700" : "text-neutral-500"}` }, task.label))));
3565
+ return /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-3 p-5 rounded-2xl border border-purple-100 bg-linear-to-bl from-purple-50/80 via-white to-white relative overflow-hidden" }, /* @__PURE__ */ React42.createElement("span", { className: "text-[11px] tracking-widest text-purple-600 mb-1 uppercase" }, "AI Processing"), tasks.map((task) => /* @__PURE__ */ React42.createElement("div", { key: task.id, className: "flex items-center gap-3" }, task.status === "pending" && /* @__PURE__ */ React42.createElement("div", { className: "w-4 h-4 rounded-full border border-purple-200" }), task.status === "loading" && /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: Loading03Icon12, size: 16, className: "animate-spin text-purple-500" }), task.status === "success" && /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: CheckmarkCircle02Icon, size: 16, className: "text-emerald-500" }), task.status === "error" && /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: CancelCircleIcon3, size: 16, className: "text-red-500" }), /* @__PURE__ */ React42.createElement("span", { className: `text-xs transition-colors ${task.status === "success" ? "text-black" : task.status === "loading" ? "text-purple-700" : "text-neutral-500"}` }, task.label))));
3298
3566
  };
3299
3567
 
3300
3568
  // src/components/Stagger.tsx
3301
- import React41 from "react";
3302
- import { HugeiconsIcon as HugeiconsIcon27 } from "@hugeicons/react";
3569
+ import React43 from "react";
3570
+ import { HugeiconsIcon as HugeiconsIcon29 } from "@hugeicons/react";
3303
3571
  import { Briefcase02Icon, Upload01Icon as Upload01Icon2, FileSyncIcon, CloudUploadIcon } from "@hugeicons/core-free-icons";
3304
3572
  var Stagger = ({ steps, currentStep }) => {
3305
3573
  const getIconForStep = (stepName) => {
@@ -3309,19 +3577,19 @@ var Stagger = ({ steps, currentStep }) => {
3309
3577
  if (lowerName.includes("submit")) return CloudUploadIcon;
3310
3578
  return Briefcase02Icon;
3311
3579
  };
3312
- return /* @__PURE__ */ React41.createElement("div", { className: "w-full flex items-center justify-between relative z-0" }, /* @__PURE__ */ React41.createElement("div", { className: "absolute left-0 top-1/2 -translate-y-1/2 w-full h-px bg-neutral-100 -z-10" }), /* @__PURE__ */ React41.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) => {
3580
+ return /* @__PURE__ */ React43.createElement("div", { className: "w-full flex items-center justify-between relative z-0" }, /* @__PURE__ */ React43.createElement("div", { className: "absolute left-0 top-1/2 -translate-y-1/2 w-full h-px bg-neutral-100 -z-10" }), /* @__PURE__ */ React43.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) => {
3313
3581
  const isActive = idx === currentStep;
3314
3582
  const isPassed = idx < currentStep;
3315
3583
  const colorClass = isPassed ? "bg-emerald-500 text-white" : isActive ? "bg-neutral-100 text-neutral-500" : "bg-neutral-100 text-neutral-500";
3316
- return /* @__PURE__ */ React41.createElement("div", { key: step, className: `w-6 h-6 rounded-full flex items-center justify-center transition-colors duration-300 ${colorClass}` }, /* @__PURE__ */ React41.createElement(HugeiconsIcon27, { icon: getIconForStep(step), size: 11 }));
3584
+ return /* @__PURE__ */ React43.createElement("div", { key: step, className: `w-6 h-6 rounded-full flex items-center justify-center transition-colors duration-300 ${colorClass}` }, /* @__PURE__ */ React43.createElement(HugeiconsIcon29, { icon: getIconForStep(step), size: 11 }));
3317
3585
  }));
3318
3586
  };
3319
3587
 
3320
3588
  // src/components/UniversalRegistrationFlow.tsx
3321
- import React42, { useState as useState25, useEffect as useEffect16, useRef as useRef11 } from "react";
3589
+ import React44, { useState as useState26, useEffect as useEffect16, useRef as useRef11 } from "react";
3322
3590
  import toast6 from "react-hot-toast";
3323
- import { HugeiconsIcon as HugeiconsIcon28 } from "@hugeicons/react";
3324
- import { CheckmarkBadge01Icon as CheckmarkBadge01Icon2, Upload01Icon as Upload01Icon3, Loading03Icon as Loading03Icon13, PencilEdit01Icon as PencilEdit01Icon2, Delete02Icon as Delete02Icon2, SignatureIcon, IdentificationIcon, ArrowLeft01Icon as ArrowLeft01Icon8, HourglassIcon } from "@hugeicons/core-free-icons";
3591
+ import { HugeiconsIcon as HugeiconsIcon30 } from "@hugeicons/react";
3592
+ import { CheckmarkBadge01Icon as CheckmarkBadge01Icon2, Upload01Icon as Upload01Icon3, Loading03Icon as Loading03Icon13, PencilEdit01Icon as PencilEdit01Icon2, Delete02Icon as Delete02Icon3, SignatureIcon, IdentificationIcon, ArrowLeft01Icon as ArrowLeft01Icon8, HourglassIcon } from "@hugeicons/core-free-icons";
3325
3593
  var MACRO_STEPS = ["Details", "Documents", "Review", "Submit"];
3326
3594
  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"];
3327
3595
  var MEMBER_ROLES = ["Director Only", "Shareholder Only", "Both Director & Shareholder"];
@@ -3334,12 +3602,12 @@ var UniversalRegistrationFlow = ({
3334
3602
  onRedirectToBilling,
3335
3603
  onRedirectToApplication
3336
3604
  }) => {
3337
- const [isBooting, setIsBooting] = useState25(true);
3338
- const [macroStep, setMacroStep] = useState25(0);
3339
- const [appStatus, setAppStatus] = useState25("");
3340
- const [isAbortModalOpen, setIsAbortModalOpen] = useState25(false);
3341
- const [isAborting, setIsAborting] = useState25(false);
3342
- const [formState, setFormState] = useState25({
3605
+ const [isBooting, setIsBooting] = useState26(true);
3606
+ const [macroStep, setMacroStep] = useState26(0);
3607
+ const [appStatus, setAppStatus] = useState26("");
3608
+ const [isAbortModalOpen, setIsAbortModalOpen] = useState26(false);
3609
+ const [isAborting, setIsAborting] = useState26(false);
3610
+ const [formState, setFormState] = useState26({
3343
3611
  natureApproved: false,
3344
3612
  nameApproved: false,
3345
3613
  addressApproved: false,
@@ -3356,7 +3624,7 @@ var UniversalRegistrationFlow = ({
3356
3624
  const other1Ref = useRef11(null);
3357
3625
  const other2Ref = useRef11(null);
3358
3626
  const other3Ref = useRef11(null);
3359
- const [formData, setFormData] = useState25({
3627
+ const [formData, setFormData] = useState26({
3360
3628
  businessDesc: "",
3361
3629
  natureOfBusiness: null,
3362
3630
  proposedName: "",
@@ -3383,22 +3651,22 @@ var UniversalRegistrationFlow = ({
3383
3651
  otherDoc3Url: "",
3384
3652
  otherDoc3Meta: null
3385
3653
  });
3386
- const [activeModal, setActiveModal] = useState25({ isOpen: false, type: null, memberIndex: null });
3387
- const [iAgree, setIAgree] = useState25(false);
3388
- const [isAnalyzingNature, setIsAnalyzingNature] = useState25(false);
3389
- const [suggestedNature, setSuggestedNature] = useState25(null);
3390
- const [isCheckingQualifier, setIsCheckingQualifier] = useState25(false);
3391
- const [qualifierCheckResult, setQualifierCheckResult] = useState25(null);
3392
- const [isCheckingName, setIsCheckingName] = useState25(false);
3393
- const [nameCheckResult, setNameCheckResult] = useState25(null);
3394
- const [globalExtractingId, setGlobalExtractingId] = useState25(false);
3395
- const [globalUploadingPassport, setGlobalUploadingPassport] = useState25(false);
3396
- const [globalUploadingSignature, setGlobalUploadingSignature] = useState25(false);
3397
- const [isUploadingOther1, setIsUploadingOther1] = useState25(false);
3398
- const [isUploadingOther2, setIsUploadingOther2] = useState25(false);
3399
- const [isUploadingOther3, setIsUploadingOther3] = useState25(false);
3400
- const [aiTasks, setAiTasks] = useState25([]);
3401
- const [isSubmitting, setIsSubmitting] = useState25(false);
3654
+ const [activeModal, setActiveModal] = useState26({ isOpen: false, type: null, memberIndex: null });
3655
+ const [iAgree, setIAgree] = useState26(false);
3656
+ const [isAnalyzingNature, setIsAnalyzingNature] = useState26(false);
3657
+ const [suggestedNature, setSuggestedNature] = useState26(null);
3658
+ const [isCheckingQualifier, setIsCheckingQualifier] = useState26(false);
3659
+ const [qualifierCheckResult, setQualifierCheckResult] = useState26(null);
3660
+ const [isCheckingName, setIsCheckingName] = useState26(false);
3661
+ const [nameCheckResult, setNameCheckResult] = useState26(null);
3662
+ const [globalExtractingId, setGlobalExtractingId] = useState26(false);
3663
+ const [globalUploadingPassport, setGlobalUploadingPassport] = useState26(false);
3664
+ const [globalUploadingSignature, setGlobalUploadingSignature] = useState26(false);
3665
+ const [isUploadingOther1, setIsUploadingOther1] = useState26(false);
3666
+ const [isUploadingOther2, setIsUploadingOther2] = useState26(false);
3667
+ const [isUploadingOther3, setIsUploadingOther3] = useState26(false);
3668
+ const [aiTasks, setAiTasks] = useState26([]);
3669
+ const [isSubmitting, setIsSubmitting] = useState26(false);
3402
3670
  const isReadOnly = ["PENDING", "AWAITING_PAYMENT", "COMPLETED"].includes(appStatus);
3403
3671
  const isAnyUploading = globalExtractingId || globalUploadingPassport || globalUploadingSignature || isUploadingOther1 || isUploadingOther2 || isUploadingOther3;
3404
3672
  const baseApi = async (action, payload = {}) => {
@@ -3889,23 +4157,23 @@ var UniversalRegistrationFlow = ({
3889
4157
  const isStep0Valid = type === "company" ? formState.natureApproved && formState.nameApproved && formState.addressApproved && formState.membersDetailsApproved : formState.natureApproved && formState.nameApproved && formState.addressApproved && formState.ownerApproved;
3890
4158
  const isStep1Valid = type === "company" ? formState.membersDocsApproved : formState.idApproved && formState.passportApproved && formState.signatureApproved;
3891
4159
  const titleText = type === "company" ? "Company Incorporation (LLC)" : "Business Name Registration";
3892
- if (isBooting) return /* @__PURE__ */ React42.createElement("div", { className: "flex justify-center py-20" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: Loading03Icon13, size: 32, className: "animate-spin text-black" }));
4160
+ if (isBooting) return /* @__PURE__ */ React44.createElement("div", { className: "flex justify-center py-20" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: Loading03Icon13, size: 32, className: "animate-spin text-black" }));
3893
4161
  if (!["DRAFT", "QUEUED", "REJECTED"].includes(appStatus) && appStatus !== "") {
3894
- return /* @__PURE__ */ React42.createElement("div", { className: "w-full max-w-3xl 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__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: CheckmarkBadge01Icon2, size: 35 })), /* @__PURE__ */ React42.createElement("h2", { className: "text-xl text-black" }, "Registration Completed"), /* @__PURE__ */ React42.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application has been successfully verified and registered.")) : appStatus === "PENDING" ? /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: HourglassIcon, size: 35, className: "animate-spin" })), /* @__PURE__ */ React42.createElement("h2", { className: "text-xl text-black" }, "Application is Pending"), /* @__PURE__ */ React42.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application is currently pending review.")) : appStatus === "AWAITING_PAYMENT" ? /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement("div", { className: "w-20 h-20 bg-amber-50 text-amber-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: HourglassIcon, size: 35, className: "animate-pulse" })), /* @__PURE__ */ React42.createElement("h2", { className: "text-xl text-black" }, "Awaiting Payment"), /* @__PURE__ */ React42.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__ */ React42.createElement("div", { className: "mt-6 flex flex-col items-center gap-3" }, /* @__PURE__ */ React42.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__ */ React42.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__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: HourglassIcon, size: 35 })), /* @__PURE__ */ React42.createElement("h2", { className: "text-xl text-black" }, "Application Submitted"), /* @__PURE__ */ React42.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__ */ React42.createElement("div", { className: "mt-6 flex flex-col items-center gap-3" }, /* @__PURE__ */ React42.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__ */ React42.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React42.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => !isAborting && setIsAbortModalOpen(false) }), /* @__PURE__ */ React42.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__ */ React42.createElement("div", { className: "p-6 flex flex-col gap-4 text-center" }, /* @__PURE__ */ React42.createElement("h3", { className: "text-[17px] text-black tracking-tight" }, "Abort Application?"), /* @__PURE__ */ React42.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__ */ React42.createElement("div", { className: "w-full flex " }, /* @__PURE__ */ React42.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__ */ React42.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")))));
4162
+ return /* @__PURE__ */ React44.createElement("div", { className: "w-full max-w-3xl 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__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: CheckmarkBadge01Icon2, size: 35 })), /* @__PURE__ */ React44.createElement("h2", { className: "text-xl text-black" }, "Registration Completed"), /* @__PURE__ */ React44.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application has been successfully verified and registered.")) : appStatus === "PENDING" ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: HourglassIcon, size: 35, className: "animate-spin" })), /* @__PURE__ */ React44.createElement("h2", { className: "text-xl text-black" }, "Application is Pending"), /* @__PURE__ */ React44.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application is currently pending review.")) : appStatus === "AWAITING_PAYMENT" ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("div", { className: "w-20 h-20 bg-amber-50 text-amber-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: HourglassIcon, size: 35, className: "animate-pulse" })), /* @__PURE__ */ React44.createElement("h2", { className: "text-xl text-black" }, "Awaiting Payment"), /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: "mt-6 flex flex-col items-center gap-3" }, /* @__PURE__ */ React44.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__ */ React44.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__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: HourglassIcon, size: 35 })), /* @__PURE__ */ React44.createElement("h2", { className: "text-xl text-black" }, "Application Submitted"), /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: "mt-6 flex flex-col items-center gap-3" }, /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React44.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => !isAborting && setIsAbortModalOpen(false) }), /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: "p-6 flex flex-col gap-4 text-center" }, /* @__PURE__ */ React44.createElement("h3", { className: "text-[17px] text-black tracking-tight" }, "Abort Application?"), /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: "w-full flex " }, /* @__PURE__ */ React44.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__ */ React44.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")))));
3895
4163
  }
3896
- return /* @__PURE__ */ React42.createElement("div", { className: "w-full max-w-3xl 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__ */ React42.createElement("div", { className: "flex flex-col gap-8" }, /* @__PURE__ */ React42.createElement("div", null, /* @__PURE__ */ React42.createElement("h2", { className: "text-xl text-black tracking-tight mb-1" }, titleText), /* @__PURE__ */ React42.createElement("p", { className: "text-sm text-neutral-500" }, "Answer the questions below to build your official application.")), /* @__PURE__ */ React42.createElement("div", { className: "px-2" }, /* @__PURE__ */ React42.createElement(Stagger, { steps: MACRO_STEPS, currentStep: macroStep }))), /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-8" }, macroStep === 0 && /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-8 animate-in fade-in" }, /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React42.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React42.createElement("h3", { className: "text-sm " }, "What does your ", type === "company" ? "company" : "business", " do?")), !formState.natureApproved ? /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-3 " }, /* @__PURE__ */ React42.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__ */ React42.createElement(ThreeDActionButton, { onClick: handleAnalyzeNature, disabled: formData.businessDesc.length < 5 || isAnalyzingNature || isReadOnly, isLoading: isAnalyzingNature, className: "w-fit" }, "Analyze Nature")), isAnalyzingNature && /* @__PURE__ */ React42.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React42.createElement(AiStageCheck, { tasks: [{ id: "1", label: "Matching with Official Categories...", status: "loading" }] })), suggestedNature && /* @__PURE__ */ React42.createElement("div", { className: " mt-2 animate-in fade-in" }, /* @__PURE__ */ React42.createElement(AiApproveDecline, { suggestionTitle: "Classification Found", suggestionValue: /* @__PURE__ */ React42.createElement("div", null, /* @__PURE__ */ React42.createElement("p", { className: " text-black" }, suggestedNature.specificLabel), /* @__PURE__ */ React42.createElement("p", { className: "text-xs text-neutral-400 mt-1" }, "Category: ", suggestedNature.categoryLabel)), onApprove: () => {
4164
+ return /* @__PURE__ */ React44.createElement("div", { className: "w-full max-w-3xl 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__ */ React44.createElement("div", { className: "flex flex-col gap-8" }, /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("h2", { className: "text-xl text-black tracking-tight mb-1" }, titleText), /* @__PURE__ */ React44.createElement("p", { className: "text-sm text-neutral-500" }, "Answer the questions below to build your official application.")), /* @__PURE__ */ React44.createElement("div", { className: "px-2" }, /* @__PURE__ */ React44.createElement(Stagger, { steps: MACRO_STEPS, currentStep: macroStep }))), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-8" }, macroStep === 0 && /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-8 animate-in fade-in" }, /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React44.createElement("h3", { className: "text-sm " }, "What does your ", type === "company" ? "company" : "business", " do?")), !formState.natureApproved ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-3 " }, /* @__PURE__ */ React44.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__ */ React44.createElement(ThreeDActionButton, { onClick: handleAnalyzeNature, disabled: formData.businessDesc.length < 5 || isAnalyzingNature || isReadOnly, isLoading: isAnalyzingNature, className: "w-fit" }, "Analyze Nature")), isAnalyzingNature && /* @__PURE__ */ React44.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React44.createElement(AiStageCheck, { tasks: [{ id: "1", label: "Matching with Official Categories...", status: "loading" }] })), suggestedNature && /* @__PURE__ */ React44.createElement("div", { className: " mt-2 animate-in fade-in" }, /* @__PURE__ */ React44.createElement(AiApproveDecline, { suggestionTitle: "Classification Found", suggestionValue: /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("p", { className: " text-black" }, suggestedNature.specificLabel), /* @__PURE__ */ React44.createElement("p", { className: "text-xs text-neutral-400 mt-1" }, "Category: ", suggestedNature.categoryLabel)), onApprove: () => {
3897
4165
  const newForm = { ...formData, natureOfBusiness: suggestedNature };
3898
4166
  setFormData(newForm);
3899
4167
  approveSection("natureApproved", newForm);
3900
- }, onDecline: () => setSuggestedNature(null) }))) : /* @__PURE__ */ React42.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React42.createElement("div", { className: "pr-4" }, /* @__PURE__ */ React42.createElement("p", { className: "text-sm text-black" }, formData.natureOfBusiness?.specificLabel), /* @__PURE__ */ React42.createElement("p", { className: "text-xs text-neutral-400 mt-1" }, formData.businessDesc)), !isReadOnly && /* @__PURE__ */ React42.createElement("button", { onClick: () => editSection("natureApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: PencilEdit01Icon2, size: 16 })))), formState.natureApproved && /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React42.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React42.createElement("h3", { className: "text-sm " }, "What name would you like to register?")), /* @__PURE__ */ React42.createElement("p", { className: "text-xs text-neutral-400 -mt-2" }, "Provide two options. We will verify availability against the official registry."), !formState.nameApproved ? /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React42.createElement(TextInput, { label: "Proposed Name 1 (Preferred)", value: formData.proposedName, onChange: (v) => setFormData({ ...formData, proposedName: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React42.createElement(TextInput, { label: "Proposed Name 2 (Alternative)", value: formData.proposedName2, onChange: (v) => setFormData({ ...formData, proposedName2: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React42.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__ */ React42.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React42.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__ */ React42.createElement("div", { className: "mt-2 animate-in fade-in" }, /* @__PURE__ */ React42.createElement("div", { className: "border border-purple-100 bg-linear-to-bl from-purple-50/80 via-white to-white p-5 rounded-2xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ React42.createElement("div", null, /* @__PURE__ */ React42.createElement("span", { className: "text-[11px] tracking-widest text-purple-600 block mb-1" }, "AI Suggestion: Structural Qualifier Missing"), /* @__PURE__ */ React42.createElement("p", { className: "text-sm text-black mb-3" }, "Nigerian registrations require a structural qualifier to be approved."), /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-2" }, (qualifierCheckResult.suggestions || []).map((alt, i) => /* @__PURE__ */ React42.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__ */ React42.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__ */ React42.createElement("div", { className: " mt-2 animate-in fade-in" }, nameCheckResult.status === "APPROVED" || nameCheckResult.status === "APPROVED_WARNING" || nameCheckResult.status === "SKIPPED" ? /* @__PURE__ */ React42.createElement(AiApproveDecline, { suggestionTitle: nameCheckResult.status === "APPROVED" ? "Name Available!" : "Fallback Approval", suggestionValue: /* @__PURE__ */ React42.createElement("div", null, /* @__PURE__ */ React42.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__ */ React42.createElement("p", { className: "text-xs text-neutral-600" }, nameCheckResult.message), /* @__PURE__ */ React42.createElement("p", { className: "text-xs text-neutral-600 mt-2 " }, "Proposed Option: ", nameCheckResult.approvedOption)), onApprove: () => {
4168
+ }, onDecline: () => setSuggestedNature(null) }))) : /* @__PURE__ */ React44.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React44.createElement("div", { className: "pr-4" }, /* @__PURE__ */ React44.createElement("p", { className: "text-sm text-black" }, formData.natureOfBusiness?.specificLabel), /* @__PURE__ */ React44.createElement("p", { className: "text-xs text-neutral-400 mt-1" }, formData.businessDesc)), !isReadOnly && /* @__PURE__ */ React44.createElement("button", { onClick: () => editSection("natureApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: PencilEdit01Icon2, size: 16 })))), formState.natureApproved && /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React44.createElement("h3", { className: "text-sm " }, "What name would you like to register?")), /* @__PURE__ */ React44.createElement("p", { className: "text-xs text-neutral-400 -mt-2" }, "Provide two options. We will verify availability against the official registry."), !formState.nameApproved ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React44.createElement(TextInput, { label: "Proposed Name 1 (Preferred)", value: formData.proposedName, onChange: (v) => setFormData({ ...formData, proposedName: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React44.createElement(TextInput, { label: "Proposed Name 2 (Alternative)", value: formData.proposedName2, onChange: (v) => setFormData({ ...formData, proposedName2: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: "mt-2 animate-in fade-in" }, /* @__PURE__ */ React44.createElement("div", { className: "border border-purple-100 bg-linear-to-bl from-purple-50/80 via-white to-white p-5 rounded-2xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("span", { className: "text-[11px] tracking-widest text-purple-600 block mb-1" }, "AI Suggestion: Structural Qualifier Missing"), /* @__PURE__ */ React44.createElement("p", { className: "text-sm text-black mb-3" }, "Nigerian registrations require a structural qualifier to be approved."), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-2" }, (qualifierCheckResult.suggestions || []).map((alt, i) => /* @__PURE__ */ React44.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__ */ React44.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__ */ React44.createElement("div", { className: " mt-2 animate-in fade-in" }, nameCheckResult.status === "APPROVED" || nameCheckResult.status === "APPROVED_WARNING" || nameCheckResult.status === "SKIPPED" ? /* @__PURE__ */ React44.createElement(AiApproveDecline, { suggestionTitle: nameCheckResult.status === "APPROVED" ? "Name Available!" : "Fallback Approval", suggestionValue: /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.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__ */ React44.createElement("p", { className: "text-xs text-neutral-600" }, nameCheckResult.message), /* @__PURE__ */ React44.createElement("p", { className: "text-xs text-neutral-600 mt-2 " }, "Proposed Option: ", nameCheckResult.approvedOption)), onApprove: () => {
3901
4169
  const newForm = { ...formData, approvedName: nameCheckResult.approvedOption };
3902
4170
  setFormData(newForm);
3903
4171
  approveSection("nameApproved", newForm);
3904
- }, onDecline: () => setNameCheckResult(null) }) : /* @__PURE__ */ React42.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__ */ React42.createElement("div", null, /* @__PURE__ */ React42.createElement("span", { className: "text-[11px] tracking-widest text-red-600 block mb-1" }, "Registry Conflict Detected"), /* @__PURE__ */ React42.createElement("p", { className: "text-sm text-black mb-3" }, nameCheckResult.message), /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-2" }, (nameCheckResult.alternatives || []).map((alt, i) => /* @__PURE__ */ React42.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__ */ React42.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__ */ React42.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React42.createElement("div", null, /* @__PURE__ */ React42.createElement("p", { className: "text-sm text-black" }, formData.approvedName), /* @__PURE__ */ React42.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Verified against registry")), !isReadOnly && /* @__PURE__ */ React42.createElement("button", { onClick: () => editSection("nameApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: PencilEdit01Icon2, size: 16 })))), formState.nameApproved && /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React42.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React42.createElement("h3", { className: "text-sm " }, "Where is your head office located?")), !formState.addressApproved ? /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-4 " }, /* @__PURE__ */ React42.createElement(TextInput, { label: "Street Address", value: formData.address, onChange: (v) => setFormData({ ...formData, address: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React42.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React42.createElement(TextInput, { label: "City", value: formData.city, onChange: (v) => setFormData({ ...formData, city: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React42.createElement(TextInput, { label: "State", value: formData.state, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "state", memberIndex: null, isGlobalState: true }), placeholder: "Select State", onChange: () => {
3905
- }, disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React42.createElement(ThreeDActionButton, { onClick: () => approveSection("addressApproved"), disabled: !formData.address || !formData.city || !formData.state || isReadOnly, className: "w-fit mt-2" }, "Confirm Address")) : /* @__PURE__ */ React42.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React42.createElement("p", { className: "text-sm text-neutral-500" }, formData.address, ", ", formData.city, ", ", formData.state), !isReadOnly && /* @__PURE__ */ React42.createElement("button", { onClick: () => editSection("addressApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: PencilEdit01Icon2, size: 16 })))), formState.addressApproved && type === "company" && /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React42.createElement("div", { className: "flex items-center justify-between gap-2 text-black" }, /* @__PURE__ */ React42.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React42.createElement("h3", { className: "text-sm " }, "Directors & Shareholders")), !formState.membersDetailsApproved && /* @__PURE__ */ React42.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__ */ React42.createElement("p", { className: "text-xs text-neutral-400 -mt-2" }, "Provide details for all individuals. Ensure total share percentage equals 100%."), !formState.membersDetailsApproved ? /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-6 " }, formData.members.map((member, i) => /* @__PURE__ */ React42.createElement("div", { key: member.id, className: "flex flex-col gap-4 border border-neutral-100 p-5 rounded-2xl bg-neutral-50/30" }, /* @__PURE__ */ React42.createElement("div", { className: "flex justify-between items-center mb-1" }, /* @__PURE__ */ React42.createElement("span", { className: "text-[11px] tracking-widest text-neutral-400" }, "Member ", i + 1), formData.members.length > 1 && !isReadOnly && /* @__PURE__ */ React42.createElement("button", { onClick: () => removeCompanyMember(i), className: "text-red-500 text-xs hover:text-red-600" }, "Remove")), /* @__PURE__ */ React42.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React42.createElement(TextInput, { label: "Role", value: member.role, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "role", memberIndex: i }), onChange: () => {
3906
- }, disabled: isReadOnly || isSubmitting }), member.role !== "Director Only" && /* @__PURE__ */ React42.createElement(NumberInput, { label: "Share Percentage (%)", value: member.sharePercentage, onChange: (v) => updateCompanyMemberInfo(i, "sharePercentage", v), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React42.createElement(TextInput, { label: "Full Name", value: member.fullName, onChange: (v) => updateCompanyMemberInfo(i, "fullName", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React42.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React42.createElement(NumberInput, { label: "Phone Number", value: member.phone, onChange: (v) => updateCompanyMemberInfo(i, "phone", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React42.createElement(TextInput, { label: "Email Address", value: member.email, onChange: (v) => updateCompanyMemberInfo(i, "email", v), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React42.createElement(TextInput, { label: "Nationality", value: member.nationality, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "nationality", memberIndex: i }), onChange: () => {
3907
- }, disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React42.createElement(TextInput, { label: "Residential Address", value: member.address, onChange: (v) => updateCompanyMemberInfo(i, "address", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React42.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React42.createElement(TextInput, { label: "City", value: member.city, onChange: (v) => updateCompanyMemberInfo(i, "city", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React42.createElement(TextInput, { label: "State", value: member.state, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "state", memberIndex: i }), onChange: () => {
3908
- }, disabled: isReadOnly || isSubmitting })))), /* @__PURE__ */ React42.createElement("div", { className: "flex items-center justify-between mt-2" }, !isReadOnly && /* @__PURE__ */ React42.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__ */ React42.createElement(ThreeDActionButton, { onClick: () => approveSection("membersDetailsApproved"), disabled: !areCompanyMembersValid() || isReadOnly, className: "w-fit" }, "Confirm Members"))) : /* @__PURE__ */ React42.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React42.createElement("div", null, /* @__PURE__ */ React42.createElement("p", { className: "text-sm text-black" }, formData.members.length, " Member(s) Registered"), /* @__PURE__ */ React42.createElement("p", { className: "text-xs text-neutral-500 mt-1" }, "Total Shares: 100% Verified.")), !isReadOnly && /* @__PURE__ */ React42.createElement("button", { onClick: () => editSection("membersDetailsApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: PencilEdit01Icon2, size: 16 })))), formState.addressApproved && type === "business" && /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React42.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React42.createElement("h3", { className: "text-sm " }, "Who owns the business?")), /* @__PURE__ */ React42.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__ */ React42.createElement("div", { className: "flex flex-col gap-4 " }, /* @__PURE__ */ React42.createElement(TextInput, { label: "Full Name", value: formData.ownerName, onChange: (v) => setFormData({ ...formData, ownerName: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React42.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React42.createElement(NumberInput, { label: "Phone Number", value: formData.ownerPhone, onChange: (v) => setFormData({ ...formData, ownerPhone: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React42.createElement(TextInput, { label: "Email Address", value: formData.ownerEmail, onChange: (v) => setFormData({ ...formData, ownerEmail: v }), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React42.createElement(ThreeDActionButton, { onClick: () => approveSection("ownerApproved"), disabled: !formData.ownerName || !formData.ownerPhone || !formData.ownerEmail || isReadOnly, className: "w-fit mt-2" }, "Confirm Owner Details")) : /* @__PURE__ */ React42.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React42.createElement("div", null, /* @__PURE__ */ React42.createElement("p", { className: "text-sm text-black" }, formData.ownerName), /* @__PURE__ */ React42.createElement("p", { className: "text-xs text-neutral-500 mt-1" }, formData.ownerEmail, " \u2022 ", formData.ownerPhone)), !isReadOnly && /* @__PURE__ */ React42.createElement("button", { onClick: () => editSection("ownerApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: PencilEdit01Icon2, size: 16 })))), /* @__PURE__ */ React42.createElement("div", { className: "flex items-center justify-between mt-8 pt-6 " }, /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: ArrowLeft01Icon8, size: 14 }), " Close"), /* @__PURE__ */ React42.createElement(ThreeDActionButton, { onClick: handleNext, disabled: !isStep0Valid, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 1 && /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-8 animate-in fade-in" }, type === "company" ? /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ React42.createElement("h3", { className: "text-sm text-black" }, "Member Identity Documents"), /* @__PURE__ */ React42.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__ */ React42.createElement("div", { className: "flex flex-col gap-6" }, formData.members.map((member, i) => /* @__PURE__ */ React42.createElement("div", { key: member.id, className: "flex flex-col gap-4" }, /* @__PURE__ */ React42.createElement("span", { className: "text-[11px] tracking-widest text-black mb-1" }, member.fullName || `Member ${i + 1}`, " ", /* @__PURE__ */ React42.createElement("span", { className: "text-neutral-400 ml-2" }, "(", member.role, ")")), /* @__PURE__ */ React42.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__ */ React42.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__ */ React42.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__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Valid ID (NIN, License, Voter's Card)") : globalExtractingId && !member.idExtractedData ? /* @__PURE__ */ React42.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React42.createElement(AiStageCheck, { tasks: aiTasks })) : member.idExtractedData ? /* @__PURE__ */ React42.createElement("div", { className: " mt-2 animate-in fade-in border border-purple-100 bg-linear-to-bl from-purple-50/80 via-white to-white p-5 rounded-xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ React42.createElement("div", null, /* @__PURE__ */ React42.createElement("span", { className: "text-[11px] tracking-widest text-purple-600 block mb-2" }, "Review Extracted ID"), /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React42.createElement(TextInput, { label: "Full Name on ID", value: member.idExtractedData.fullName, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, fullName: v }), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ React42.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React42.createElement(TextInput, { label: "ID Number", value: member.idExtractedData.idNumber, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, idNumber: v }), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ React42.createElement(TextInput, { label: "Date of Birth", value: member.idExtractedData.dob, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, dob: v }), disabled: isReadOnly || isAnyUploading })))), /* @__PURE__ */ React42.createElement("div", { className: "flex items-center gap-2 mt-2" }, !isReadOnly && /* @__PURE__ */ React42.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__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Passport Photo") : globalUploadingPassport && !member.passportFileUrl ? /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Loading03Icon13, size: 18, className: "animate-spin text-black" }), " Uploading Passport...") : member.passportFileUrl ? /* @__PURE__ */ React42.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React42.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: IdentificationIcon, size: 18 }), " Passport Uploaded"), !isReadOnly && /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Delete02Icon2, size: 16 }))) : null, !member.signatureFileUrl && !globalUploadingSignature ? /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Signature") : globalUploadingSignature && !member.signatureFileUrl ? /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Loading03Icon13, size: 18, className: "animate-spin text-black" }), " Uploading Signature...") : member.signatureFileUrl ? /* @__PURE__ */ React42.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React42.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: SignatureIcon, size: 18 }), " Signature Uploaded"), !isReadOnly && /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Delete02Icon2, size: 16 }))) : null)), /* @__PURE__ */ React42.createElement("div", { className: "flex justify-end" }, /* @__PURE__ */ React42.createElement(ThreeDActionButton, { onClick: () => approveSection("membersDocsApproved"), disabled: !areCompanyMemberDocsValid() || isReadOnly || isAnyUploading, className: "w-fit" }, "Confirm All Documents"))) : /* @__PURE__ */ React42.createElement("div", { className: " flex items-center justify-between bg-emerald-50 p-6 rounded-full" }, /* @__PURE__ */ React42.createElement("div", null, /* @__PURE__ */ React42.createElement("p", { className: "text-sm text-emerald-800" }, "Documents Uploaded"), /* @__PURE__ */ React42.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Data safely extracted.")), !isReadOnly && /* @__PURE__ */ React42.createElement("button", { onClick: () => editSection("membersDocsApproved"), className: "p-2 text-emerald-700 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: PencilEdit01Icon2, size: 16 })))) : /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.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__ */ React42.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__ */ React42.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__ */ React42.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React42.createElement("div", { className: "flex items-center gap-2 text-black" }, /* @__PURE__ */ React42.createElement("h3", { className: "text-sm " }, "Upload Means of Identification")), /* @__PURE__ */ React42.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__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Upload01Icon3, size: 24, className: "text-neutral-400" }), /* @__PURE__ */ React42.createElement("span", { className: "text-xs" }, "Select ID Image to Upload")), globalExtractingId && /* @__PURE__ */ React42.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React42.createElement(AiStageCheck, { tasks: aiTasks })), formData.idExtractedData && /* @__PURE__ */ React42.createElement("div", { className: " mt-2 animate-in fade-in border border-purple-100 bg-linear-to-bl from-purple-50/80 via-white to-white p-5 rounded-2xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ React42.createElement("div", null, /* @__PURE__ */ React42.createElement("span", { className: "text-[11px] tracking-widest text-purple-600 block mb-2" }, "Review AI Extracted Data"), /* @__PURE__ */ React42.createElement("p", { className: "text-xs text-neutral-500 mb-4" }, "Please verify the extracted information and correct any OCR mistakes before approving."), /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React42.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__ */ React42.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React42.createElement(TextInput, { label: "ID Number", value: formData.idExtractedData.idNumber, onChange: (v) => setFormData((f) => ({ ...f, idExtractedData: { ...f.idExtractedData, idNumber: v } })), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ React42.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__ */ React42.createElement("div", { className: "flex items-center gap-2 mt-2" }, /* @__PURE__ */ React42.createElement(ThreeDActionButton, { onClick: () => approveSection("idApproved"), disabled: isAnyUploading || isReadOnly, className: "w-fit shrink-0" }, "Approve Data"), !isReadOnly && /* @__PURE__ */ React42.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__ */ React42.createElement("div", { className: " flex items-center justify-between bg-emerald-50 p-6 rounded-full" }, /* @__PURE__ */ React42.createElement("div", null, /* @__PURE__ */ React42.createElement("p", { className: "text-sm text-emerald-800" }, "ID Document Verified"), /* @__PURE__ */ React42.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Data safely extracted and stored.")), !isReadOnly && /* @__PURE__ */ React42.createElement("button", { onClick: () => editSection("idApproved"), className: "p-2 text-emerald-700 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: PencilEdit01Icon2, size: 16 })))), /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-3 " }, !formState.passportApproved && !globalUploadingPassport ? /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Passport Photo") : globalUploadingPassport && !formData.passportFileUrl ? /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Loading03Icon13, size: 18, className: "animate-spin text-black" }), " Uploading Passport...") : /* @__PURE__ */ React42.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React42.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: IdentificationIcon, size: 18 }), " Passport Uploaded"), !isReadOnly && /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Delete02Icon2, size: 16 }))), !formState.signatureApproved && !globalUploadingSignature ? /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Signature") : globalUploadingSignature && !formData.signatureFileUrl ? /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Loading03Icon13, size: 18, className: "animate-spin text-black" }), " Uploading Signature...") : /* @__PURE__ */ React42.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React42.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: SignatureIcon, size: 18 }), " Signature Uploaded"), !isReadOnly && /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Delete02Icon2, size: 16 })))))), /* @__PURE__ */ React42.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__ */ React42.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__ */ React42.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__ */ React42.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__ */ React42.createElement("div", { className: "flex flex-col gap-1 mb-2" }, /* @__PURE__ */ React42.createElement("h3", { className: "text-sm text-black" }, "Additional Documents (Optional)"), /* @__PURE__ */ React42.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__ */ React42.createElement("div", { className: "flex flex-col gap-3" }, [1, 2, 3].map((num) => {
4172
+ }, onDecline: () => setNameCheckResult(null) }) : /* @__PURE__ */ React44.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__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("span", { className: "text-[11px] tracking-widest text-red-600 block mb-1" }, "Registry Conflict Detected"), /* @__PURE__ */ React44.createElement("p", { className: "text-sm text-black mb-3" }, nameCheckResult.message), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-2" }, (nameCheckResult.alternatives || []).map((alt, i) => /* @__PURE__ */ React44.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__ */ React44.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__ */ React44.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("p", { className: "text-sm text-black" }, formData.approvedName), /* @__PURE__ */ React44.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Verified against registry")), !isReadOnly && /* @__PURE__ */ React44.createElement("button", { onClick: () => editSection("nameApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: PencilEdit01Icon2, size: 16 })))), formState.nameApproved && /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React44.createElement("h3", { className: "text-sm " }, "Where is your head office located?")), !formState.addressApproved ? /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-4 " }, /* @__PURE__ */ React44.createElement(TextInput, { label: "Street Address", value: formData.address, onChange: (v) => setFormData({ ...formData, address: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React44.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React44.createElement(TextInput, { label: "City", value: formData.city, onChange: (v) => setFormData({ ...formData, city: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React44.createElement(TextInput, { label: "State", value: formData.state, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "state", memberIndex: null, isGlobalState: true }), placeholder: "Select State", onChange: () => {
4173
+ }, disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React44.createElement(ThreeDActionButton, { onClick: () => approveSection("addressApproved"), disabled: !formData.address || !formData.city || !formData.state || isReadOnly, className: "w-fit mt-2" }, "Confirm Address")) : /* @__PURE__ */ React44.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React44.createElement("p", { className: "text-sm text-neutral-500" }, formData.address, ", ", formData.city, ", ", formData.state), !isReadOnly && /* @__PURE__ */ React44.createElement("button", { onClick: () => editSection("addressApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: PencilEdit01Icon2, size: 16 })))), formState.addressApproved && type === "company" && /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-between gap-2 text-black" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React44.createElement("h3", { className: "text-sm " }, "Directors & Shareholders")), !formState.membersDetailsApproved && /* @__PURE__ */ React44.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__ */ React44.createElement("p", { className: "text-xs text-neutral-400 -mt-2" }, "Provide details for all individuals. Ensure total share percentage equals 100%."), !formState.membersDetailsApproved ? /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-6 " }, formData.members.map((member, i) => /* @__PURE__ */ React44.createElement("div", { key: member.id, className: "flex flex-col gap-4 border border-neutral-100 p-5 rounded-2xl bg-neutral-50/30" }, /* @__PURE__ */ React44.createElement("div", { className: "flex justify-between items-center mb-1" }, /* @__PURE__ */ React44.createElement("span", { className: "text-[11px] tracking-widest text-neutral-400" }, "Member ", i + 1), formData.members.length > 1 && !isReadOnly && /* @__PURE__ */ React44.createElement("button", { onClick: () => removeCompanyMember(i), className: "text-red-500 text-xs hover:text-red-600" }, "Remove")), /* @__PURE__ */ React44.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React44.createElement(TextInput, { label: "Role", value: member.role, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "role", memberIndex: i }), onChange: () => {
4174
+ }, disabled: isReadOnly || isSubmitting }), member.role !== "Director Only" && /* @__PURE__ */ React44.createElement(NumberInput, { label: "Share Percentage (%)", value: member.sharePercentage, onChange: (v) => updateCompanyMemberInfo(i, "sharePercentage", v), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React44.createElement(TextInput, { label: "Full Name", value: member.fullName, onChange: (v) => updateCompanyMemberInfo(i, "fullName", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React44.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React44.createElement(NumberInput, { label: "Phone Number", value: member.phone, onChange: (v) => updateCompanyMemberInfo(i, "phone", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React44.createElement(TextInput, { label: "Email Address", value: member.email, onChange: (v) => updateCompanyMemberInfo(i, "email", v), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React44.createElement(TextInput, { label: "Nationality", value: member.nationality, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "nationality", memberIndex: i }), onChange: () => {
4175
+ }, disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React44.createElement(TextInput, { label: "Residential Address", value: member.address, onChange: (v) => updateCompanyMemberInfo(i, "address", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React44.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React44.createElement(TextInput, { label: "City", value: member.city, onChange: (v) => updateCompanyMemberInfo(i, "city", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React44.createElement(TextInput, { label: "State", value: member.state, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "state", memberIndex: i }), onChange: () => {
4176
+ }, disabled: isReadOnly || isSubmitting })))), /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-between mt-2" }, !isReadOnly && /* @__PURE__ */ React44.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__ */ React44.createElement(ThreeDActionButton, { onClick: () => approveSection("membersDetailsApproved"), disabled: !areCompanyMembersValid() || isReadOnly, className: "w-fit" }, "Confirm Members"))) : /* @__PURE__ */ React44.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("p", { className: "text-sm text-black" }, formData.members.length, " Member(s) Registered"), /* @__PURE__ */ React44.createElement("p", { className: "text-xs text-neutral-500 mt-1" }, "Total Shares: 100% Verified.")), !isReadOnly && /* @__PURE__ */ React44.createElement("button", { onClick: () => editSection("membersDetailsApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: PencilEdit01Icon2, size: 16 })))), formState.addressApproved && type === "business" && /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React44.createElement("h3", { className: "text-sm " }, "Who owns the business?")), /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: "flex flex-col gap-4 " }, /* @__PURE__ */ React44.createElement(TextInput, { label: "Full Name", value: formData.ownerName, onChange: (v) => setFormData({ ...formData, ownerName: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React44.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React44.createElement(NumberInput, { label: "Phone Number", value: formData.ownerPhone, onChange: (v) => setFormData({ ...formData, ownerPhone: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React44.createElement(TextInput, { label: "Email Address", value: formData.ownerEmail, onChange: (v) => setFormData({ ...formData, ownerEmail: v }), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React44.createElement(ThreeDActionButton, { onClick: () => approveSection("ownerApproved"), disabled: !formData.ownerName || !formData.ownerPhone || !formData.ownerEmail || isReadOnly, className: "w-fit mt-2" }, "Confirm Owner Details")) : /* @__PURE__ */ React44.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("p", { className: "text-sm text-black" }, formData.ownerName), /* @__PURE__ */ React44.createElement("p", { className: "text-xs text-neutral-500 mt-1" }, formData.ownerEmail, " \u2022 ", formData.ownerPhone)), !isReadOnly && /* @__PURE__ */ React44.createElement("button", { onClick: () => editSection("ownerApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: PencilEdit01Icon2, size: 16 })))), /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-between mt-8 pt-6 " }, /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: ArrowLeft01Icon8, size: 14 }), " Close"), /* @__PURE__ */ React44.createElement(ThreeDActionButton, { onClick: handleNext, disabled: !isStep0Valid, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 1 && /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-8 animate-in fade-in" }, type === "company" ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ React44.createElement("h3", { className: "text-sm text-black" }, "Member Identity Documents"), /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: "flex flex-col gap-6" }, formData.members.map((member, i) => /* @__PURE__ */ React44.createElement("div", { key: member.id, className: "flex flex-col gap-4" }, /* @__PURE__ */ React44.createElement("span", { className: "text-[11px] tracking-widest text-black mb-1" }, member.fullName || `Member ${i + 1}`, " ", /* @__PURE__ */ React44.createElement("span", { className: "text-neutral-400 ml-2" }, "(", member.role, ")")), /* @__PURE__ */ React44.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__ */ React44.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__ */ React44.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__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Valid ID (NIN, License, Voter's Card)") : globalExtractingId && !member.idExtractedData ? /* @__PURE__ */ React44.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React44.createElement(AiStageCheck, { tasks: aiTasks })) : member.idExtractedData ? /* @__PURE__ */ React44.createElement("div", { className: " mt-2 animate-in fade-in border border-purple-100 bg-linear-to-bl from-purple-50/80 via-white to-white p-5 rounded-xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("span", { className: "text-[11px] tracking-widest text-purple-600 block mb-2" }, "Review Extracted ID"), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React44.createElement(TextInput, { label: "Full Name on ID", value: member.idExtractedData.fullName, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, fullName: v }), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ React44.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React44.createElement(TextInput, { label: "ID Number", value: member.idExtractedData.idNumber, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, idNumber: v }), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ React44.createElement(TextInput, { label: "Date of Birth", value: member.idExtractedData.dob, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, dob: v }), disabled: isReadOnly || isAnyUploading })))), /* @__PURE__ */ React44.createElement("div", { className: "flex items-center gap-2 mt-2" }, !isReadOnly && /* @__PURE__ */ React44.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__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Passport Photo") : globalUploadingPassport && !member.passportFileUrl ? /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Loading03Icon13, size: 18, className: "animate-spin text-black" }), " Uploading Passport...") : member.passportFileUrl ? /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: IdentificationIcon, size: 18 }), " Passport Uploaded"), !isReadOnly && /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Delete02Icon3, size: 16 }))) : null, !member.signatureFileUrl && !globalUploadingSignature ? /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Signature") : globalUploadingSignature && !member.signatureFileUrl ? /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Loading03Icon13, size: 18, className: "animate-spin text-black" }), " Uploading Signature...") : member.signatureFileUrl ? /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: SignatureIcon, size: 18 }), " Signature Uploaded"), !isReadOnly && /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Delete02Icon3, size: 16 }))) : null)), /* @__PURE__ */ React44.createElement("div", { className: "flex justify-end" }, /* @__PURE__ */ React44.createElement(ThreeDActionButton, { onClick: () => approveSection("membersDocsApproved"), disabled: !areCompanyMemberDocsValid() || isReadOnly || isAnyUploading, className: "w-fit" }, "Confirm All Documents"))) : /* @__PURE__ */ React44.createElement("div", { className: " flex items-center justify-between bg-emerald-50 p-6 rounded-full" }, /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("p", { className: "text-sm text-emerald-800" }, "Documents Uploaded"), /* @__PURE__ */ React44.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Data safely extracted.")), !isReadOnly && /* @__PURE__ */ React44.createElement("button", { onClick: () => editSection("membersDocsApproved"), className: "p-2 text-emerald-700 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: PencilEdit01Icon2, size: 16 })))) : /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.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__ */ React44.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__ */ React44.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__ */ React44.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center gap-2 text-black" }, /* @__PURE__ */ React44.createElement("h3", { className: "text-sm " }, "Upload Means of Identification")), /* @__PURE__ */ React44.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__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Upload01Icon3, size: 24, className: "text-neutral-400" }), /* @__PURE__ */ React44.createElement("span", { className: "text-xs" }, "Select ID Image to Upload")), globalExtractingId && /* @__PURE__ */ React44.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React44.createElement(AiStageCheck, { tasks: aiTasks })), formData.idExtractedData && /* @__PURE__ */ React44.createElement("div", { className: " mt-2 animate-in fade-in border border-purple-100 bg-linear-to-bl from-purple-50/80 via-white to-white p-5 rounded-2xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("span", { className: "text-[11px] tracking-widest text-purple-600 block mb-2" }, "Review AI Extracted Data"), /* @__PURE__ */ React44.createElement("p", { className: "text-xs text-neutral-500 mb-4" }, "Please verify the extracted information and correct any OCR mistakes before approving."), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React44.createElement(TextInput, { label: "ID Number", value: formData.idExtractedData.idNumber, onChange: (v) => setFormData((f) => ({ ...f, idExtractedData: { ...f.idExtractedData, idNumber: v } })), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: "flex items-center gap-2 mt-2" }, /* @__PURE__ */ React44.createElement(ThreeDActionButton, { onClick: () => approveSection("idApproved"), disabled: isAnyUploading || isReadOnly, className: "w-fit shrink-0" }, "Approve Data"), !isReadOnly && /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: " flex items-center justify-between bg-emerald-50 p-6 rounded-full" }, /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("p", { className: "text-sm text-emerald-800" }, "ID Document Verified"), /* @__PURE__ */ React44.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Data safely extracted and stored.")), !isReadOnly && /* @__PURE__ */ React44.createElement("button", { onClick: () => editSection("idApproved"), className: "p-2 text-emerald-700 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: PencilEdit01Icon2, size: 16 })))), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-3 " }, !formState.passportApproved && !globalUploadingPassport ? /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Passport Photo") : globalUploadingPassport && !formData.passportFileUrl ? /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Loading03Icon13, size: 18, className: "animate-spin text-black" }), " Uploading Passport...") : /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: IdentificationIcon, size: 18 }), " Passport Uploaded"), !isReadOnly && /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Delete02Icon3, size: 16 }))), !formState.signatureApproved && !globalUploadingSignature ? /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Signature") : globalUploadingSignature && !formData.signatureFileUrl ? /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Loading03Icon13, size: 18, className: "animate-spin text-black" }), " Uploading Signature...") : /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: SignatureIcon, size: 18 }), " Signature Uploaded"), !isReadOnly && /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Delete02Icon3, size: 16 })))))), /* @__PURE__ */ React44.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__ */ React44.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__ */ React44.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__ */ React44.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__ */ React44.createElement("div", { className: "flex flex-col gap-1 mb-2" }, /* @__PURE__ */ React44.createElement("h3", { className: "text-sm text-black" }, "Additional Documents (Optional)"), /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: "flex flex-col gap-3" }, [1, 2, 3].map((num) => {
3909
4177
  const docType = `other${num}`;
3910
4178
  const ref = num === 1 ? other1Ref : num === 2 ? other2Ref : other3Ref;
3911
4179
  const isUploading = num === 1 ? isUploadingOther1 : num === 2 ? isUploadingOther2 : isUploadingOther3;
@@ -3913,29 +4181,29 @@ var UniversalRegistrationFlow = ({
3913
4181
  if (!fileUrl && !isUploading) {
3914
4182
  const prevUrl = num > 1 ? formData[`otherDoc${num - 1}Url`] : true;
3915
4183
  if (!prevUrl) return null;
3916
- return /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Optional Document ", num);
4184
+ return /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Optional Document ", num);
3917
4185
  }
3918
4186
  if (isUploading) {
3919
- return /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Loading03Icon13, size: 18, className: "animate-spin text-black" }), " Uploading Document ", num, "...");
4187
+ return /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Loading03Icon13, size: 18, className: "animate-spin text-black" }), " Uploading Document ", num, "...");
3920
4188
  }
3921
- return /* @__PURE__ */ React42.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__ */ React42.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React42.createElement(HugeiconsIcon28, { icon: CheckmarkBadge01Icon2, size: 18 }), " Optional Document ", num, " Uploaded"), !isReadOnly && /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: Delete02Icon2, size: 16 })));
3922
- }))), /* @__PURE__ */ React42.createElement("div", { className: "flex items-center justify-between mt-8 pt-6 " }, /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: ArrowLeft01Icon8, size: 14 }), " Back"), /* @__PURE__ */ React42.createElement(ThreeDActionButton, { onClick: handleNext, disabled: !isStep1Valid || isAnyUploading, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 2 && /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in" }, /* @__PURE__ */ React42.createElement("div", null, /* @__PURE__ */ React42.createElement("h3", { className: "text-sm mb-5 text-black" }, "Application Summary"), /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-4 text-sm" }, /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React42.createElement("span", { className: "text-neutral-500 truncate text-[13px] " }, type === "company" ? "Company Name" : "Business Name"), /* @__PURE__ */ React42.createElement("span", { className: " text-black text-[13px]" }, formData.approvedName)), /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React42.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Classification"), /* @__PURE__ */ React42.createElement("span", { className: " text-black truncate sm:text-right text-[13px] " }, formData.natureOfBusiness?.specificLabel || "Pending")), type === "company" ? /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React42.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Total Members"), /* @__PURE__ */ React42.createElement("span", { className: " text-black truncate text-[13px] " }, formData.members.length, " Directors/Shareholders")), /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React42.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Share Capital"), /* @__PURE__ */ React42.createElement("span", { className: " text-black truncate text-[13px] " }, "100% Allocated"))) : /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React42.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Proprietor"), /* @__PURE__ */ React42.createElement("span", { className: " text-black truncate text-[13px] " }, formData.ownerName)), /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between pb-2 gap-1" }, /* @__PURE__ */ React42.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Documents Attached"), /* @__PURE__ */ React42.createElement("span", { className: " text-neutral-400 text-[13px] " }, "ID, Passport, Signature")), formData.otherDoc1Url && /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between pb-2 gap-1" }, /* @__PURE__ */ React42.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Optional Documents"), /* @__PURE__ */ React42.createElement("span", { className: " text-neutral-400 text-[13px] " }, [formData.otherDoc1Url, formData.otherDoc2Url, formData.otherDoc3Url].filter(Boolean).length, " Attached")))), /* @__PURE__ */ React42.createElement("div", { className: "flex items-center justify-between mt-4 pt-4 " }, /* @__PURE__ */ React42.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__ */ React42.createElement(HugeiconsIcon28, { icon: ArrowLeft01Icon8, size: 14 }), " Back"), /* @__PURE__ */ React42.createElement(ThreeDActionButton, { onClick: handleNext, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 3 && /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col gap-6 py-6 animate-in zoom-in-95 duration-500" }, /* @__PURE__ */ React42.createElement("h2", { className: "text-lg text-black tracking-tight mb-2" }, "Terms and Conditions of Application"), /* @__PURE__ */ React42.createElement("div", { className: "text-xs text-neutral-500 mb-4" }, /* @__PURE__ */ React42.createElement("p", { className: " mb-3" }, "Declaration and Consent"), /* @__PURE__ */ React42.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__ */ React42.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__ */ React42.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__ */ React42.createElement("p", { className: "leading-relaxed" }, "Proceeding to generate the invoice confirms your acceptance of these terms and initiates the formal filing process.")), /* @__PURE__ */ React42.createElement("label", { className: "flex items-start gap-3 mt-2 cursor-pointer group" }, /* @__PURE__ */ React42.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__ */ React42.createElement("span", { className: "text-[13px] text-red-500 group-hover:text-red-600 transition-colors" }, "I have read, understood, and agree to the terms of data transfer and processing.")), /* @__PURE__ */ React42.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-4 mt-8 w-full justify-end pt-6" }, /* @__PURE__ */ React42.createElement("button", { onClick: onCancelOrClose, disabled: isSubmitting, className: "px-8 py-2 text-[11px] tracking-widest text-neutral-500 hover:text-black hover:bg-neutral-50 rounded-full transition-colors outline-none w-full sm:w-auto" }, "Cancel"), /* @__PURE__ */ React42.createElement("button", { onClick: () => setMacroStep(0), disabled: isSubmitting || isReadOnly, className: "px-8 py-2 text-[11px] tracking-widest text-neutral-500 hover:text-black hover:bg-neutral-50 rounded-full transition-colors outline-none w-full sm:w-auto" }, "Edit Application"), /* @__PURE__ */ React42.createElement(ThreeDActionButton, { onClick: handleFinalSubmit, disabled: isSubmitting || !iAgree || isReadOnly, isLoading: isSubmitting, className: "min-w-40 w-full sm:w-auto" }, "Submit")))), activeModal.isOpen && /* @__PURE__ */ React42.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React42.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setActiveModal({ isOpen: false, type: null, memberIndex: null }) }), /* @__PURE__ */ React42.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__ */ React42.createElement("div", { className: "p-4 text-center w-full shrink-0" }, /* @__PURE__ */ React42.createElement("h3", { className: "text-[14px] text-black tracking-tight capitalize" }, "Select ", activeModal.type)), /* @__PURE__ */ React42.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) => {
4189
+ return /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: CheckmarkBadge01Icon2, size: 18 }), " Optional Document ", num, " Uploaded"), !isReadOnly && /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Delete02Icon3, size: 16 })));
4190
+ }))), /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-between mt-8 pt-6 " }, /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: ArrowLeft01Icon8, size: 14 }), " Back"), /* @__PURE__ */ React44.createElement(ThreeDActionButton, { onClick: handleNext, disabled: !isStep1Valid || isAnyUploading, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 2 && /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in" }, /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("h3", { className: "text-sm mb-5 text-black" }, "Application Summary"), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-4 text-sm" }, /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React44.createElement("span", { className: "text-neutral-500 truncate text-[13px] " }, type === "company" ? "Company Name" : "Business Name"), /* @__PURE__ */ React44.createElement("span", { className: " text-black text-[13px]" }, formData.approvedName)), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React44.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Classification"), /* @__PURE__ */ React44.createElement("span", { className: " text-black truncate sm:text-right text-[13px] " }, formData.natureOfBusiness?.specificLabel || "Pending")), type === "company" ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React44.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Total Members"), /* @__PURE__ */ React44.createElement("span", { className: " text-black truncate text-[13px] " }, formData.members.length, " Directors/Shareholders")), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React44.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Share Capital"), /* @__PURE__ */ React44.createElement("span", { className: " text-black truncate text-[13px] " }, "100% Allocated"))) : /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React44.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Proprietor"), /* @__PURE__ */ React44.createElement("span", { className: " text-black truncate text-[13px] " }, formData.ownerName)), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between pb-2 gap-1" }, /* @__PURE__ */ React44.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Documents Attached"), /* @__PURE__ */ React44.createElement("span", { className: " text-neutral-400 text-[13px] " }, "ID, Passport, Signature")), formData.otherDoc1Url && /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between pb-2 gap-1" }, /* @__PURE__ */ React44.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Optional Documents"), /* @__PURE__ */ React44.createElement("span", { className: " text-neutral-400 text-[13px] " }, [formData.otherDoc1Url, formData.otherDoc2Url, formData.otherDoc3Url].filter(Boolean).length, " Attached")))), /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-between mt-4 pt-4 " }, /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: ArrowLeft01Icon8, size: 14 }), " Back"), /* @__PURE__ */ React44.createElement(ThreeDActionButton, { onClick: handleNext, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 3 && /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-6 py-6 animate-in zoom-in-95 duration-500" }, /* @__PURE__ */ React44.createElement("h2", { className: "text-lg text-black tracking-tight mb-2" }, "Terms and Conditions of Application"), /* @__PURE__ */ React44.createElement("div", { className: "text-xs text-neutral-500 mb-4" }, /* @__PURE__ */ React44.createElement("p", { className: " mb-3" }, "Declaration and Consent"), /* @__PURE__ */ React44.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__ */ React44.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__ */ React44.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__ */ React44.createElement("p", { className: "leading-relaxed" }, "Proceeding to generate the invoice confirms your acceptance of these terms and initiates the formal filing process.")), /* @__PURE__ */ React44.createElement("label", { className: "flex items-start gap-3 mt-2 cursor-pointer group" }, /* @__PURE__ */ React44.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__ */ React44.createElement("span", { className: "text-[13px] text-red-500 group-hover:text-red-600 transition-colors" }, "I have read, understood, and agree to the terms of data transfer and processing.")), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-4 mt-8 w-full justify-end pt-6" }, /* @__PURE__ */ React44.createElement("button", { onClick: onCancelOrClose, disabled: isSubmitting, className: "px-8 py-2 text-[11px] tracking-widest text-neutral-500 hover:text-black hover:bg-neutral-50 rounded-full transition-colors outline-none w-full sm:w-auto" }, "Cancel"), /* @__PURE__ */ React44.createElement("button", { onClick: () => setMacroStep(0), disabled: isSubmitting || isReadOnly, className: "px-8 py-2 text-[11px] tracking-widest text-neutral-500 hover:text-black hover:bg-neutral-50 rounded-full transition-colors outline-none w-full sm:w-auto" }, "Edit Application"), /* @__PURE__ */ React44.createElement(ThreeDActionButton, { onClick: handleFinalSubmit, disabled: isSubmitting || !iAgree || isReadOnly, isLoading: isSubmitting, className: "min-w-40 w-full sm:w-auto" }, "Submit")))), activeModal.isOpen && /* @__PURE__ */ React44.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React44.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setActiveModal({ isOpen: false, type: null, memberIndex: null }) }), /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: "p-4 text-center w-full shrink-0" }, /* @__PURE__ */ React44.createElement("h3", { className: "text-[14px] text-black tracking-tight capitalize" }, "Select ", activeModal.type)), /* @__PURE__ */ React44.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) => {
3923
4191
  const isSelected = activeModal.isGlobalState ? formData.state === opt : formData.members[activeModal.memberIndex][activeModal.type] === opt;
3924
- return /* @__PURE__ */ React42.createElement("button", { key: opt, onClick: () => {
4192
+ return /* @__PURE__ */ React44.createElement("button", { key: opt, onClick: () => {
3925
4193
  if (activeModal.isGlobalState) setFormData({ ...formData, state: opt });
3926
4194
  else updateCompanyMemberInfo(activeModal.memberIndex, activeModal.type, opt);
3927
4195
  setActiveModal({ isOpen: false, type: null, memberIndex: null });
3928
4196
  }, 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);
3929
- })), /* @__PURE__ */ React42.createElement("div", { className: "w-full flex mt-auto shrink-0 " }, /* @__PURE__ */ React42.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")))));
4197
+ })), /* @__PURE__ */ React44.createElement("div", { className: "w-full flex mt-auto shrink-0 " }, /* @__PURE__ */ React44.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")))));
3930
4198
  };
3931
4199
 
3932
4200
  // src/components/UniversalDeveloperSettings.tsx
3933
- import React43, { useState as useState26, useEffect as useEffect17 } from "react";
4201
+ import React45, { useState as useState27, useEffect as useEffect17 } from "react";
3934
4202
  import { toast as toast7 } from "react-hot-toast";
3935
- import { HugeiconsIcon as HugeiconsIcon29 } from "@hugeicons/react";
4203
+ import { HugeiconsIcon as HugeiconsIcon31 } from "@hugeicons/react";
3936
4204
  import { Loading03Icon as Loading03Icon14, CircleLock02Icon as CircleLock02Icon5 } from "@hugeicons/core-free-icons";
3937
- var ButtonSpinner5 = () => /* @__PURE__ */ React43.createElement(HugeiconsIcon29, { icon: Loading03Icon14, size: 16, className: "animate-spin text-current" });
3938
- var PageSpinner6 = () => /* @__PURE__ */ React43.createElement("div", { className: "flex justify-center items-center py-12 w-full" }, /* @__PURE__ */ React43.createElement(HugeiconsIcon29, { icon: Loading03Icon14, size: 32, className: "animate-spin text-black" }));
4205
+ var ButtonSpinner5 = () => /* @__PURE__ */ React45.createElement(HugeiconsIcon31, { icon: Loading03Icon14, size: 16, className: "animate-spin text-current" });
4206
+ var PageSpinner6 = () => /* @__PURE__ */ React45.createElement("div", { className: "flex justify-center items-center py-12 w-full" }, /* @__PURE__ */ React45.createElement(HugeiconsIcon31, { icon: Loading03Icon14, size: 32, className: "animate-spin text-black" }));
3939
4207
  var UniversalDeveloperSettings = ({
3940
4208
  initialPublicKey,
3941
4209
  initialWebhookUrl,
@@ -3944,11 +4212,11 @@ var UniversalDeveloperSettings = ({
3944
4212
  onGenerateKeys,
3945
4213
  onSaveWebhook
3946
4214
  }) => {
3947
- const [publicKey, setPublicKey] = useState26(initialPublicKey);
3948
- const [webhookUrl, setWebhookUrl] = useState26(initialWebhookUrl);
3949
- const [isGenerating, setIsGenerating] = useState26(false);
3950
- const [isSavingWebhook, setIsSavingWebhook] = useState26(false);
3951
- const [isRollModalOpen, setIsRollModalOpen] = useState26(false);
4215
+ const [publicKey, setPublicKey] = useState27(initialPublicKey);
4216
+ const [webhookUrl, setWebhookUrl] = useState27(initialWebhookUrl);
4217
+ const [isGenerating, setIsGenerating] = useState27(false);
4218
+ const [isSavingWebhook, setIsSavingWebhook] = useState27(false);
4219
+ const [isRollModalOpen, setIsRollModalOpen] = useState27(false);
3952
4220
  useEffect17(() => {
3953
4221
  setPublicKey(initialPublicKey || "");
3954
4222
  setWebhookUrl(initialWebhookUrl || "");
@@ -4009,7 +4277,7 @@ SECRET_KEY="${secKey}"
4009
4277
  };
4010
4278
  const hasWebhookChanges = webhookUrl !== initialWebhookUrl;
4011
4279
  const isWebhookSaveDisabled = isSavingWebhook || isReadOnly || !hasWebhookChanges;
4012
- return /* @__PURE__ */ React43.createElement("div", { className: "flex flex-col max-w-3xl rounded-2xl p-6 bg-white gap-8 animate-in fade-in duration-300 min-h-full" }, /* @__PURE__ */ React43.createElement(ManagedToaster, null), /* @__PURE__ */ React43.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-3 sm:gap-4" }, /* @__PURE__ */ React43.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React43.createElement("h1", { className: " text-xl text-black mb-1 truncate tracking-tight" }, "Developer Settings"), /* @__PURE__ */ React43.createElement("p", { className: "text-xs text-neutral-500 truncate" }, "Manage your API credentials and webhook integrations.")), isReadOnly && /* @__PURE__ */ React43.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__ */ React43.createElement(HugeiconsIcon29, { icon: CircleLock02Icon5, size: 18, className: "text-current" }))), isLoading ? /* @__PURE__ */ React43.createElement(PageSpinner6, null) : /* @__PURE__ */ React43.createElement("div", { className: "w-full max-w-2xl flex flex-col gap-12" }, /* @__PURE__ */ React43.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React43.createElement("div", { className: "space-y-2 min-w-0" }, /* @__PURE__ */ React43.createElement(
4280
+ return /* @__PURE__ */ React45.createElement("div", { className: "flex flex-col max-w-3xl rounded-2xl p-6 bg-white gap-8 animate-in fade-in duration-300 min-h-full" }, /* @__PURE__ */ React45.createElement(ManagedToaster, null), /* @__PURE__ */ React45.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-3 sm:gap-4" }, /* @__PURE__ */ React45.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React45.createElement("h1", { className: " text-xl text-black mb-1 truncate tracking-tight" }, "Developer Settings"), /* @__PURE__ */ React45.createElement("p", { className: "text-xs text-neutral-500 truncate" }, "Manage your API credentials and webhook integrations.")), isReadOnly && /* @__PURE__ */ React45.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__ */ React45.createElement(HugeiconsIcon31, { icon: CircleLock02Icon5, size: 18, className: "text-current" }))), isLoading ? /* @__PURE__ */ React45.createElement(PageSpinner6, null) : /* @__PURE__ */ React45.createElement("div", { className: "w-full max-w-2xl flex flex-col gap-12" }, /* @__PURE__ */ React45.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React45.createElement("div", { className: "space-y-2 min-w-0" }, /* @__PURE__ */ React45.createElement(
4013
4281
  TextInput,
4014
4282
  {
4015
4283
  label: "Public Key",
@@ -4018,7 +4286,7 @@ SECRET_KEY="${secKey}"
4018
4286
  },
4019
4287
  disabled: true
4020
4288
  }
4021
- ), /* @__PURE__ */ React43.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__ */ React43.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React43.createElement(
4289
+ ), /* @__PURE__ */ React45.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__ */ React45.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React45.createElement(
4022
4290
  ThreeDActionButton,
4023
4291
  {
4024
4292
  onClick: () => {
@@ -4030,7 +4298,7 @@ SECRET_KEY="${secKey}"
4030
4298
  className: "w-fit"
4031
4299
  },
4032
4300
  publicKey ? "Roll API Keys" : "Generate Keys"
4033
- ))), /* @__PURE__ */ React43.createElement("form", { className: "flex flex-col gap-6 border-t border-neutral-100 pt-8", onSubmit: handleSaveWebhook, autoComplete: "off" }, /* @__PURE__ */ React43.createElement("div", { className: "space-y-2 min-w-0" }, /* @__PURE__ */ React43.createElement(
4301
+ ))), /* @__PURE__ */ React45.createElement("form", { className: "flex flex-col gap-6 border-t border-neutral-100 pt-8", onSubmit: handleSaveWebhook, autoComplete: "off" }, /* @__PURE__ */ React45.createElement("div", { className: "space-y-2 min-w-0" }, /* @__PURE__ */ React45.createElement(
4034
4302
  TextInput,
4035
4303
  {
4036
4304
  label: "Webhook URL",
@@ -4040,7 +4308,7 @@ SECRET_KEY="${secKey}"
4040
4308
  placeholder: "https://your-domain.com/webhook",
4041
4309
  type: "url"
4042
4310
  }
4043
- ), /* @__PURE__ */ React43.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__ */ React43.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between mt-2 gap-6 sm:gap-4" }, /* @__PURE__ */ React43.createElement("div", { className: "flex items-center gap-6 min-w-0" }, /* @__PURE__ */ React43.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React43.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block truncate uppercase" }, "Webhook Status"), /* @__PURE__ */ React43.createElement("span", { className: `text-xs block truncate ${webhookUrl ? "text-emerald-600" : "text-neutral-400"}` }, webhookUrl ? "Active" : "Inactive"))), /* @__PURE__ */ React43.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__ */ React43.createElement(
4311
+ ), /* @__PURE__ */ React45.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__ */ React45.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between mt-2 gap-6 sm:gap-4" }, /* @__PURE__ */ React45.createElement("div", { className: "flex items-center gap-6 min-w-0" }, /* @__PURE__ */ React45.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React45.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block truncate uppercase" }, "Webhook Status"), /* @__PURE__ */ React45.createElement("span", { className: `text-xs block truncate ${webhookUrl ? "text-emerald-600" : "text-neutral-400"}` }, webhookUrl ? "Active" : "Inactive"))), /* @__PURE__ */ React45.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__ */ React45.createElement(
4044
4312
  "button",
4045
4313
  {
4046
4314
  type: "button",
@@ -4048,7 +4316,7 @@ SECRET_KEY="${secKey}"
4048
4316
  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"
4049
4317
  },
4050
4318
  "Cancel"
4051
- ), /* @__PURE__ */ React43.createElement(
4319
+ ), /* @__PURE__ */ React45.createElement(
4052
4320
  ThreeDActionButton,
4053
4321
  {
4054
4322
  type: "submit",
@@ -4057,7 +4325,7 @@ SECRET_KEY="${secKey}"
4057
4325
  className: "min-w-32 w-full sm:w-auto"
4058
4326
  },
4059
4327
  "Save Webhook"
4060
- ))))), isRollModalOpen && !isReadOnly && /* @__PURE__ */ React43.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React43.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => !isGenerating && setIsRollModalOpen(false) }), /* @__PURE__ */ React43.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__ */ React43.createElement("div", { className: "p-6 text-center w-full" }, /* @__PURE__ */ React43.createElement("h3", { className: " text-[17px] text-black tracking-tight mb-1" }, "Roll API Keys"), /* @__PURE__ */ React43.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__ */ React43.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ React43.createElement(
4328
+ ))))), isRollModalOpen && !isReadOnly && /* @__PURE__ */ React45.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React45.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => !isGenerating && setIsRollModalOpen(false) }), /* @__PURE__ */ React45.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__ */ React45.createElement("div", { className: "p-6 text-center w-full" }, /* @__PURE__ */ React45.createElement("h3", { className: " text-[17px] text-black tracking-tight mb-1" }, "Roll API Keys"), /* @__PURE__ */ React45.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__ */ React45.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ React45.createElement(
4061
4329
  "button",
4062
4330
  {
4063
4331
  onClick: () => setIsRollModalOpen(false),
@@ -4065,19 +4333,19 @@ SECRET_KEY="${secKey}"
4065
4333
  className: "flex-1 py-3 text-[13px] text-neutral-600 hover:bg-neutral-50 transition-colors disabled:opacity-50 outline-none"
4066
4334
  },
4067
4335
  "Cancel"
4068
- ), /* @__PURE__ */ React43.createElement(
4336
+ ), /* @__PURE__ */ React45.createElement(
4069
4337
  "button",
4070
4338
  {
4071
4339
  onClick: handleGenerateKeys,
4072
4340
  disabled: isGenerating,
4073
4341
  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"
4074
4342
  },
4075
- isGenerating ? /* @__PURE__ */ React43.createElement(ButtonSpinner5, null) : "Roll Keys"
4343
+ isGenerating ? /* @__PURE__ */ React45.createElement(ButtonSpinner5, null) : "Roll Keys"
4076
4344
  )))));
4077
4345
  };
4078
4346
 
4079
4347
  // src/components/MedicalFeatureStatsBlock.tsx
4080
- import React44, { useState as useState27, useEffect as useEffect18, useRef as useRef12 } from "react";
4348
+ import React46, { useState as useState28, useEffect as useEffect18, useRef as useRef12 } from "react";
4081
4349
  import Image11 from "next/image";
4082
4350
  var MedicalFeatureStatsBlock = ({
4083
4351
  bottomHeadline,
@@ -4086,7 +4354,7 @@ var MedicalFeatureStatsBlock = ({
4086
4354
  trustText,
4087
4355
  stats
4088
4356
  }) => {
4089
- const [isAnimating, setIsAnimating] = useState27(false);
4357
+ const [isAnimating, setIsAnimating] = useState28(false);
4090
4358
  const titleRef = useRef12(null);
4091
4359
  useEffect18(() => {
4092
4360
  const observer = new IntersectionObserver(
@@ -4106,7 +4374,7 @@ var MedicalFeatureStatsBlock = ({
4106
4374
  }
4107
4375
  return () => observer.disconnect();
4108
4376
  }, []);
4109
- return /* @__PURE__ */ React44.createElement("section", { className: "py-24 w-full flex justify-center relative z-10" }, /* @__PURE__ */ React44.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-10 mb-12" }, /* @__PURE__ */ React44.createElement("div", { className: "max-w-xl" }, /* @__PURE__ */ React44.createElement(
4377
+ return /* @__PURE__ */ React46.createElement("section", { className: "py-24 w-full flex justify-center relative z-10" }, /* @__PURE__ */ React46.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-10 mb-12" }, /* @__PURE__ */ React46.createElement("div", { className: "max-w-xl" }, /* @__PURE__ */ React46.createElement(
4110
4378
  "h2",
4111
4379
  {
4112
4380
  ref: titleRef,
@@ -4114,7 +4382,7 @@ var MedicalFeatureStatsBlock = ({
4114
4382
  style: isAnimating ? { animationIterationCount: 1 } : {}
4115
4383
  },
4116
4384
  bottomHeadline
4117
- ), /* @__PURE__ */ React44.createElement("p", { className: "text-[14px] leading-relaxed text-neutral-500" }, bottomDescription)), /* @__PURE__ */ React44.createElement("div", { className: "flex items-center gap-4 shrink-0" }, /* @__PURE__ */ React44.createElement("div", { className: "flex -space-x-3" }, avatars.map((src, i) => /* @__PURE__ */ React44.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__ */ React44.createElement(
4385
+ ), /* @__PURE__ */ React46.createElement("p", { className: "text-[14px] leading-relaxed text-neutral-500" }, bottomDescription)), /* @__PURE__ */ React46.createElement("div", { className: "flex items-center gap-4 shrink-0" }, /* @__PURE__ */ React46.createElement("div", { className: "flex -space-x-3" }, avatars.map((src, i) => /* @__PURE__ */ React46.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__ */ React46.createElement(
4118
4386
  Image11,
4119
4387
  {
4120
4388
  src,
@@ -4123,17 +4391,17 @@ var MedicalFeatureStatsBlock = ({
4123
4391
  sizes: "48px",
4124
4392
  className: "object-cover"
4125
4393
  }
4126
- )))), /* @__PURE__ */ React44.createElement("p", { className: "text-[11px] text-neutral-800 leading-[1.4] max-w-55" }, trustText))), /* @__PURE__ */ React44.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6" }, stats.map((stat, idx) => /* @__PURE__ */ React44.createElement("div", { key: idx, className: "bg-white rounded-4xl p-8 md:p-10 flex flex-col h-70" }, /* @__PURE__ */ React44.createElement("div", { className: "flex pl-3 items-center border border-neutral-100 rounded-full p-0.5 mb-6" }, /* @__PURE__ */ React44.createElement("span", { className: "text-[14px] text-neutral-500 tracking-wide" }, stat.label)), /* @__PURE__ */ React44.createElement("div", { className: "text-6xl gradient-text md:text-[80px] font-light tracking-tighter text-black mt-auto leading-none" }, stat.value))))));
4394
+ )))), /* @__PURE__ */ React46.createElement("p", { className: "text-[11px] text-neutral-800 leading-[1.4] max-w-55" }, trustText))), /* @__PURE__ */ React46.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6" }, stats.map((stat, idx) => /* @__PURE__ */ React46.createElement("div", { key: idx, className: "bg-white rounded-4xl p-8 md:p-10 flex flex-col h-70" }, /* @__PURE__ */ React46.createElement("div", { className: "flex pl-3 items-center border border-neutral-100 rounded-full p-0.5 mb-6" }, /* @__PURE__ */ React46.createElement("span", { className: "text-[14px] text-neutral-500 tracking-wide" }, stat.label)), /* @__PURE__ */ React46.createElement("div", { className: "text-6xl gradient-text md:text-[80px] font-light tracking-tighter text-black mt-auto leading-none" }, stat.value))))));
4127
4395
  };
4128
4396
 
4129
4397
  // src/components/ConsultantShowcase.tsx
4130
- import React45, { useState as useState28 } from "react";
4398
+ import React47, { useState as useState29 } from "react";
4131
4399
  import Image12 from "next/image";
4132
- import { HugeiconsIcon as HugeiconsIcon30 } from "@hugeicons/react";
4400
+ import { HugeiconsIcon as HugeiconsIcon32 } from "@hugeicons/react";
4133
4401
  import { Loading03Icon as Loading03Icon15 } from "@hugeicons/core-free-icons";
4134
4402
  var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
4135
- const [isLoading, setIsLoading] = useState28(true);
4136
- return /* @__PURE__ */ React45.createElement("div", { className: `absolute inset-0 bg-neutral-800 ${className}` }, isLoading && /* @__PURE__ */ React45.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__ */ React45.createElement(HugeiconsIcon30, { icon: Loading03Icon15, size: 24, className: "animate-spin text-white/50" })), /* @__PURE__ */ React45.createElement(
4403
+ const [isLoading, setIsLoading] = useState29(true);
4404
+ return /* @__PURE__ */ React47.createElement("div", { className: `absolute inset-0 bg-neutral-800 ${className}` }, isLoading && /* @__PURE__ */ React47.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__ */ React47.createElement(HugeiconsIcon32, { icon: Loading03Icon15, size: 24, className: "animate-spin text-white/50" })), /* @__PURE__ */ React47.createElement(
4137
4405
  Image12,
4138
4406
  {
4139
4407
  src,
@@ -4152,9 +4420,9 @@ var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
4152
4420
  var ConsultantShowcase = ({
4153
4421
  profiles
4154
4422
  }) => {
4155
- const [currentIndex, setCurrentIndex] = useState28(0);
4156
- const [touchStart, setTouchStart] = useState28(null);
4157
- const [touchEnd, setTouchEnd] = useState28(null);
4423
+ const [currentIndex, setCurrentIndex] = useState29(0);
4424
+ const [touchStart, setTouchStart] = useState29(null);
4425
+ const [touchEnd, setTouchEnd] = useState29(null);
4158
4426
  const nextSlide = () => {
4159
4427
  setCurrentIndex((prev) => prev === profiles.length - 1 ? 0 : prev + 1);
4160
4428
  };
@@ -4179,7 +4447,7 @@ var ConsultantShowcase = ({
4179
4447
  }
4180
4448
  };
4181
4449
  if (!profiles || profiles.length === 0) return null;
4182
- return /* @__PURE__ */ React45.createElement("section", { className: "py-24 w-full flex justify-center px-4 md:px-8 z-10 relative" }, /* @__PURE__ */ React45.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ React45.createElement(
4450
+ return /* @__PURE__ */ React47.createElement("section", { className: "py-24 w-full flex justify-center px-4 md:px-8 z-10 relative" }, /* @__PURE__ */ React47.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ React47.createElement(
4183
4451
  "div",
4184
4452
  {
4185
4453
  className: "relative w-full h-100 md:h-112.5 rounded-4xl overflow-hidden bg-neutral-900 group select-none",
@@ -4189,13 +4457,13 @@ var ConsultantShowcase = ({
4189
4457
  },
4190
4458
  profiles.map((profile, idx) => {
4191
4459
  const isActive = idx === currentIndex;
4192
- return /* @__PURE__ */ React45.createElement(
4460
+ return /* @__PURE__ */ React47.createElement(
4193
4461
  "div",
4194
4462
  {
4195
4463
  key: profile.id,
4196
4464
  className: `absolute inset-0 transition-opacity duration-700 ease-in-out ${isActive ? "opacity-100 z-10" : "opacity-0 z-0 pointer-events-none"}`
4197
4465
  },
4198
- /* @__PURE__ */ React45.createElement(
4466
+ /* @__PURE__ */ React47.createElement(
4199
4467
  ImageWithLoader,
4200
4468
  {
4201
4469
  src: profile.imageSrc,
@@ -4203,14 +4471,14 @@ var ConsultantShowcase = ({
4203
4471
  priority: idx === 0
4204
4472
  }
4205
4473
  ),
4206
- /* @__PURE__ */ React45.createElement("div", { className: "absolute inset-0 bg-black/20 z-10 pointer-events-none" }),
4207
- /* @__PURE__ */ React45.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" }),
4208
- /* @__PURE__ */ React45.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__ */ React45.createElement("h2", { className: "text-[29px] tracking-tight mb-2 leading-none" }, profile.name), /* @__PURE__ */ React45.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ React45.createElement("p", { className: "text-[15px] text-white/80 font-light tracking-wide" }, profile.role), profile.description && /* @__PURE__ */ React45.createElement("p", { className: "text-[15px] text-white/80 font-light tracking-wide mt-1" }, profile.description)))
4474
+ /* @__PURE__ */ React47.createElement("div", { className: "absolute inset-0 bg-black/20 z-10 pointer-events-none" }),
4475
+ /* @__PURE__ */ React47.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" }),
4476
+ /* @__PURE__ */ React47.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__ */ React47.createElement("h2", { className: "text-[29px] tracking-tight mb-2 leading-none" }, profile.name), /* @__PURE__ */ React47.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ React47.createElement("p", { className: "text-[15px] text-white/80 font-light tracking-wide" }, profile.role), profile.description && /* @__PURE__ */ React47.createElement("p", { className: "text-[15px] text-white/80 font-light tracking-wide mt-1" }, profile.description)))
4209
4477
  );
4210
4478
  }),
4211
- /* @__PURE__ */ React45.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" }),
4212
- /* @__PURE__ */ React45.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" }),
4213
- /* @__PURE__ */ React45.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__ */ React45.createElement(
4479
+ /* @__PURE__ */ React47.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" }),
4480
+ /* @__PURE__ */ React47.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" }),
4481
+ /* @__PURE__ */ React47.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__ */ React47.createElement(
4214
4482
  "button",
4215
4483
  {
4216
4484
  key: idx,
@@ -4223,13 +4491,13 @@ var ConsultantShowcase = ({
4223
4491
  };
4224
4492
 
4225
4493
  // src/components/ContentGridBlock.tsx
4226
- import React46, { useState as useState29 } from "react";
4494
+ import React48, { useState as useState30 } from "react";
4227
4495
  import Image13 from "next/image";
4228
- import { HugeiconsIcon as HugeiconsIcon31 } from "@hugeicons/react";
4496
+ import { HugeiconsIcon as HugeiconsIcon33 } from "@hugeicons/react";
4229
4497
  import { Loading03Icon as Loading03Icon16 } from "@hugeicons/core-free-icons";
4230
4498
  var ImageWithLoader2 = ({ src, alt, className, sizes }) => {
4231
- const [isLoading, setIsLoading] = useState29(true);
4232
- return /* @__PURE__ */ React46.createElement("div", { className: `relative overflow-hidden bg-neutral-100 ${className}` }, isLoading && /* @__PURE__ */ React46.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-neutral-100/50 backdrop-blur-sm transition-opacity duration-300" }, /* @__PURE__ */ React46.createElement(HugeiconsIcon31, { icon: Loading03Icon16, size: 24, className: "animate-spin text-neutral-400" })), /* @__PURE__ */ React46.createElement(
4499
+ const [isLoading, setIsLoading] = useState30(true);
4500
+ return /* @__PURE__ */ React48.createElement("div", { className: `relative overflow-hidden bg-neutral-100 ${className}` }, isLoading && /* @__PURE__ */ React48.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-neutral-100/50 backdrop-blur-sm transition-opacity duration-300" }, /* @__PURE__ */ React48.createElement(HugeiconsIcon33, { icon: Loading03Icon16, size: 24, className: "animate-spin text-neutral-400" })), /* @__PURE__ */ React48.createElement(
4233
4501
  Image13,
4234
4502
  {
4235
4503
  src,
@@ -4251,14 +4519,14 @@ var ContentGridBlock = ({
4251
4519
  middleBottomCard,
4252
4520
  rightCards
4253
4521
  }) => {
4254
- return /* @__PURE__ */ React46.createElement("section", { className: " w-full flex justify-center z-10 relative" }, /* @__PURE__ */ React46.createElement("div", { className: "max-w-300 w-full px-4 md:px-8 flex flex-col gap-12" }, /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-6 w-full" }, /* @__PURE__ */ React46.createElement("h2", { className: "text-3xl tracking-tight text-black leading-[1.15] max-w-lg" }, header.titlePrefix, " ", /* @__PURE__ */ React46.createElement("span", { className: "gradient-text" }, header.highlightText))), /* @__PURE__ */ React46.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" }, /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col justify-end" }, /* @__PURE__ */ React46.createElement("div", { className: "border border-neutral-100 rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ React46.createElement("p", { className: "text-[17px] text-black leading-snug mb-4" }, leftCard.mainText), leftCard.tag && /* @__PURE__ */ React46.createElement("span", { className: "mb-auto text-[11px] text-neutral-400 uppercase tracking-widest" }, leftCard.tag), /* @__PURE__ */ React46.createElement("div", { className: "flex items-center justify-between mt-8" }, /* @__PURE__ */ React46.createElement("div", null, /* @__PURE__ */ React46.createElement("h4", { className: "text-[15px] text-black" }, leftCard.title), /* @__PURE__ */ React46.createElement("p", { className: "text-[13px] text-neutral-400" }, leftCard.subtitle)), /* @__PURE__ */ React46.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ React46.createElement(Image13, { src: leftCard.thumbnailSrc, alt: leftCard.title, fill: true, className: "object-cover" }))))), /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React46.createElement("div", { className: "border border-neutral-100 rounded-3xl p-8 flex flex-col relative h-75" }, /* @__PURE__ */ React46.createElement("div", { className: "absolute top-6 right-6 flex flex-col items-end gap-1" }, /* @__PURE__ */ React46.createElement("span", { className: "text-[11px] text-neutral-400 tracking-wide" }, middleTopCard.topRightLabel), /* @__PURE__ */ React46.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React46.createElement("div", { className: "flex -space-x-2" }, middleTopCard.topRightAvatars.map((src, i) => /* @__PURE__ */ React46.createElement("div", { key: i, className: "w-7 h-7 rounded-full border-2 border-white overflow-hidden relative z-10" }, /* @__PURE__ */ React46.createElement(Image13, { src, alt: "Avatar", fill: true, className: "object-cover", sizes: "28px" })))), /* @__PURE__ */ React46.createElement("span", { className: "text-sm text-neutral-500" }, middleTopCard.topRightCount))), /* @__PURE__ */ React46.createElement("div", { className: "grow flex flex-col justify-center items-center py-6" }, /* @__PURE__ */ React46.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__ */ React46.createElement("span", { className: " text-black" }, middleTopCard.badgeHighlight), middleTopCard.badgeSuffix)), /* @__PURE__ */ React46.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React46.createElement("p", { className: "text-[11px] text-neutral-400 tracking-wide mb-1" }, middleTopCard.title), /* @__PURE__ */ React46.createElement("p", { className: "text-[14px] text-black leading-snug pr-4" }, middleTopCard.description))), /* @__PURE__ */ React46.createElement("div", { className: "border border-neutral-100 rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ React46.createElement("div", { className: "flex justify-between items-start mb-6" }, /* @__PURE__ */ React46.createElement("div", null, /* @__PURE__ */ React46.createElement("h4", { className: "text-[15px] text-black leading-tight" }, middleBottomCard.title), /* @__PURE__ */ React46.createElement("p", { className: "text-[13px] text-neutral-400" }, middleBottomCard.subtitle)), /* @__PURE__ */ React46.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ React46.createElement(Image13, { src: middleBottomCard.thumbnailSrc, alt: middleBottomCard.title, fill: true, className: "object-cover" }))), /* @__PURE__ */ React46.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React46.createElement("p", { className: "text-[16px] text-black leading-snug mb-4" }, middleBottomCard.mainText), middleBottomCard.tag && /* @__PURE__ */ React46.createElement("span", { className: "text-[11px] text-neutral-400 uppercase tracking-widest" }, middleBottomCard.tag)))), /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col gap-6" }, rightCards.slice(0, 2).map((card, idx) => /* @__PURE__ */ React46.createElement("div", { key: idx, className: "relative w-full h-80 rounded-3xl overflow-hidden group" }, /* @__PURE__ */ React46.createElement(
4522
+ return /* @__PURE__ */ React48.createElement("section", { className: " w-full flex justify-center z-10 relative" }, /* @__PURE__ */ React48.createElement("div", { className: "max-w-300 w-full px-4 md:px-8 flex flex-col gap-12" }, /* @__PURE__ */ React48.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-6 w-full" }, /* @__PURE__ */ React48.createElement("h2", { className: "text-3xl tracking-tight text-black leading-[1.15] max-w-lg" }, header.titlePrefix, " ", /* @__PURE__ */ React48.createElement("span", { className: "gradient-text" }, header.highlightText))), /* @__PURE__ */ React48.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" }, /* @__PURE__ */ React48.createElement("div", { className: "flex flex-col justify-end" }, /* @__PURE__ */ React48.createElement("div", { className: "border border-neutral-100 rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ React48.createElement("p", { className: "text-[17px] text-black leading-snug mb-4" }, leftCard.mainText), leftCard.tag && /* @__PURE__ */ React48.createElement("span", { className: "mb-auto text-[11px] text-neutral-400 uppercase tracking-widest" }, leftCard.tag), /* @__PURE__ */ React48.createElement("div", { className: "flex items-center justify-between mt-8" }, /* @__PURE__ */ React48.createElement("div", null, /* @__PURE__ */ React48.createElement("h4", { className: "text-[15px] text-black" }, leftCard.title), /* @__PURE__ */ React48.createElement("p", { className: "text-[13px] text-neutral-400" }, leftCard.subtitle)), /* @__PURE__ */ React48.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ React48.createElement(Image13, { src: leftCard.thumbnailSrc, alt: leftCard.title, fill: true, className: "object-cover" }))))), /* @__PURE__ */ React48.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React48.createElement("div", { className: "border border-neutral-100 rounded-3xl p-8 flex flex-col relative h-75" }, /* @__PURE__ */ React48.createElement("div", { className: "absolute top-6 right-6 flex flex-col items-end gap-1" }, /* @__PURE__ */ React48.createElement("span", { className: "text-[11px] text-neutral-400 tracking-wide" }, middleTopCard.topRightLabel), /* @__PURE__ */ React48.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React48.createElement("div", { className: "flex -space-x-2" }, middleTopCard.topRightAvatars.map((src, i) => /* @__PURE__ */ React48.createElement("div", { key: i, className: "w-7 h-7 rounded-full border-2 border-white overflow-hidden relative z-10" }, /* @__PURE__ */ React48.createElement(Image13, { src, alt: "Avatar", fill: true, className: "object-cover", sizes: "28px" })))), /* @__PURE__ */ React48.createElement("span", { className: "text-sm text-neutral-500" }, middleTopCard.topRightCount))), /* @__PURE__ */ React48.createElement("div", { className: "grow flex flex-col justify-center items-center py-6" }, /* @__PURE__ */ React48.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__ */ React48.createElement("span", { className: " text-black" }, middleTopCard.badgeHighlight), middleTopCard.badgeSuffix)), /* @__PURE__ */ React48.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React48.createElement("p", { className: "text-[11px] text-neutral-400 tracking-wide mb-1" }, middleTopCard.title), /* @__PURE__ */ React48.createElement("p", { className: "text-[14px] text-black leading-snug pr-4" }, middleTopCard.description))), /* @__PURE__ */ React48.createElement("div", { className: "border border-neutral-100 rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ React48.createElement("div", { className: "flex justify-between items-start mb-6" }, /* @__PURE__ */ React48.createElement("div", null, /* @__PURE__ */ React48.createElement("h4", { className: "text-[15px] text-black leading-tight" }, middleBottomCard.title), /* @__PURE__ */ React48.createElement("p", { className: "text-[13px] text-neutral-400" }, middleBottomCard.subtitle)), /* @__PURE__ */ React48.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ React48.createElement(Image13, { src: middleBottomCard.thumbnailSrc, alt: middleBottomCard.title, fill: true, className: "object-cover" }))), /* @__PURE__ */ React48.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React48.createElement("p", { className: "text-[16px] text-black leading-snug mb-4" }, middleBottomCard.mainText), middleBottomCard.tag && /* @__PURE__ */ React48.createElement("span", { className: "text-[11px] text-neutral-400 uppercase tracking-widest" }, middleBottomCard.tag)))), /* @__PURE__ */ React48.createElement("div", { className: "flex flex-col gap-6" }, rightCards.slice(0, 2).map((card, idx) => /* @__PURE__ */ React48.createElement("div", { key: idx, className: "relative w-full h-80 rounded-3xl overflow-hidden group" }, /* @__PURE__ */ React48.createElement(
4255
4523
  ImageWithLoader2,
4256
4524
  {
4257
4525
  src: card.bgImageSrc,
4258
4526
  alt: card.title,
4259
4527
  className: "absolute inset-0 w-full h-full"
4260
4528
  }
4261
- ), /* @__PURE__ */ React46.createElement("div", { className: "absolute inset-0 bg-black/20 z-20 pointer-events-none" }), /* @__PURE__ */ React46.createElement("div", { className: "absolute inset-0 z-30 p-6 flex flex-col justify-end text-white" }, /* @__PURE__ */ React46.createElement("p", { className: "text-[14px] leading-snug mb-3 pr-2 text-white/90" }, card.mainText), card.tag && /* @__PURE__ */ React46.createElement("span", { className: "mb-4 text-[11px] text-white/50 uppercase tracking-widest" }, card.tag), /* @__PURE__ */ React46.createElement("div", { className: "pt-3" }, /* @__PURE__ */ React46.createElement("h4", { className: "text-[15px] tracking-wide" }, card.title), /* @__PURE__ */ React46.createElement("p", { className: "text-[13px] text-white/60" }, card.subtitle)))))))));
4529
+ ), /* @__PURE__ */ React48.createElement("div", { className: "absolute inset-0 bg-black/20 z-20 pointer-events-none" }), /* @__PURE__ */ React48.createElement("div", { className: "absolute inset-0 z-30 p-6 flex flex-col justify-end text-white" }, /* @__PURE__ */ React48.createElement("p", { className: "text-[14px] leading-snug mb-3 pr-2 text-white/90" }, card.mainText), card.tag && /* @__PURE__ */ React48.createElement("span", { className: "mb-4 text-[11px] text-white/50 uppercase tracking-widest" }, card.tag), /* @__PURE__ */ React48.createElement("div", { className: "pt-3" }, /* @__PURE__ */ React48.createElement("h4", { className: "text-[15px] tracking-wide" }, card.title), /* @__PURE__ */ React48.createElement("p", { className: "text-[13px] text-white/60" }, card.subtitle)))))))));
4262
4530
  };
4263
4531
  export {
4264
4532
  AITranscriptionFeature,
@@ -4270,6 +4538,7 @@ export {
4270
4538
  ContentGridBlock,
4271
4539
  Faq,
4272
4540
  FeatureScroll,
4541
+ FileIconMapper,
4273
4542
  Footer,
4274
4543
  GifFeatureCard,
4275
4544
  Header,
@@ -4298,6 +4567,7 @@ export {
4298
4567
  UniversalDashboardPage,
4299
4568
  UniversalDeveloperSettings,
4300
4569
  UniversalDirectoryPage,
4570
+ UniversalDriveView,
4301
4571
  UniversalErrorView,
4302
4572
  UniversalIdentityPage,
4303
4573
  UniversalLookupPage,