braid-ui 1.0.47 → 1.0.49
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.cjs +388 -402
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +86 -1
- package/dist/index.d.ts +86 -1
- package/dist/index.js +386 -404
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { cva } from 'class-variance-authority';
|
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
|
-
import { ChevronDown, ChevronUp, Check, X, PanelLeft, Edit, Home, Globe, CreditCard, Building, MoreVertical, Minus, TrendingDown, TrendingUp, ChevronRight, Eye, Trash2, Plus, MessageSquare, Upload, FileText, Download, Copy, LayoutDashboard, Bell, Briefcase, FileCheck, Receipt,
|
|
7
|
+
import { ChevronDown, ChevronUp, Check, X, PanelLeft, Edit, Home, Globe, CreditCard, Building, MoreVertical, Minus, TrendingDown, TrendingUp, ChevronRight, Eye, Trash2, ArrowLeftRight, Settings, Building2, Zap, Plus, MessageSquare, Upload, FileText, Download, Copy, LayoutDashboard, Bell, Briefcase, FileCheck, Receipt, Users, Shield, AlertCircle, RefreshCw, Landmark, Search, Repeat, Box, BarChart3, Key, ChevronLeft, AlertTriangle, Clock, XCircle, CheckCircle, Ban, Circle, Wallet, Filter, User, Loader2, CheckCircle2, ArrowDownRight, ArrowUpRight, ArrowLeft, StickyNote, FileUp, RotateCcw, Send, PlayCircle, UserPlus, ChevronsUpDown, ArrowRightLeft, UserCheck, CalendarIcon, Package, File, FileJson, DollarSign } from 'lucide-react';
|
|
8
8
|
import { createPortal } from 'react-dom';
|
|
9
9
|
import { Slot } from '@radix-ui/react-slot';
|
|
10
10
|
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
@@ -4445,7 +4445,7 @@ function DatePicker({
|
|
|
4445
4445
|
) })
|
|
4446
4446
|
] });
|
|
4447
4447
|
if (label) {
|
|
4448
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("space-y-
|
|
4448
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("space-y-2", wrapperClassName), children: [
|
|
4449
4449
|
/* @__PURE__ */ jsx("label", { className: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", children: label }),
|
|
4450
4450
|
picker
|
|
4451
4451
|
] });
|
|
@@ -8344,6 +8344,370 @@ var WireDetailsSection = ({ data }) => {
|
|
|
8344
8344
|
) })
|
|
8345
8345
|
] });
|
|
8346
8346
|
};
|
|
8347
|
+
var Checkbox = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8348
|
+
CheckboxPrimitive.Root,
|
|
8349
|
+
{
|
|
8350
|
+
ref,
|
|
8351
|
+
className: cn(
|
|
8352
|
+
"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
|
|
8353
|
+
className
|
|
8354
|
+
),
|
|
8355
|
+
...props,
|
|
8356
|
+
children: /* @__PURE__ */ jsx(
|
|
8357
|
+
CheckboxPrimitive.Indicator,
|
|
8358
|
+
{
|
|
8359
|
+
className: cn("flex items-center justify-center text-current"),
|
|
8360
|
+
children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" })
|
|
8361
|
+
}
|
|
8362
|
+
)
|
|
8363
|
+
}
|
|
8364
|
+
));
|
|
8365
|
+
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
8366
|
+
var TRANSACTION_TYPES = [
|
|
8367
|
+
{ value: "transfer", label: "Transfer", icon: ArrowLeftRight },
|
|
8368
|
+
{ value: "adjustment", label: "Adjustment", icon: Settings },
|
|
8369
|
+
{ value: "ach", label: "ACH", icon: Building2 },
|
|
8370
|
+
{ value: "wire", label: "Wire", icon: Zap }
|
|
8371
|
+
];
|
|
8372
|
+
var CURRENCY_OPTIONS = [
|
|
8373
|
+
{ value: "USD", label: "USD - US Dollar" },
|
|
8374
|
+
{ value: "EUR", label: "EUR - Euro" },
|
|
8375
|
+
{ value: "GBP", label: "GBP - British Pound" },
|
|
8376
|
+
{ value: "JPY", label: "JPY - Japanese Yen" },
|
|
8377
|
+
{ value: "CAD", label: "CAD - Canadian Dollar" },
|
|
8378
|
+
{ value: "AUD", label: "AUD - Australian Dollar" },
|
|
8379
|
+
{ value: "CHF", label: "CHF - Swiss Franc" },
|
|
8380
|
+
{ value: "CNY", label: "CNY - Chinese Yuan" }
|
|
8381
|
+
];
|
|
8382
|
+
var NewTransactionView = ({
|
|
8383
|
+
form,
|
|
8384
|
+
accountLookedUp,
|
|
8385
|
+
accountData,
|
|
8386
|
+
counterpartyLookedUp,
|
|
8387
|
+
counterpartyData,
|
|
8388
|
+
confirmationOpen,
|
|
8389
|
+
submissionStatus,
|
|
8390
|
+
errorMessage,
|
|
8391
|
+
transactionId,
|
|
8392
|
+
onAccountLookup,
|
|
8393
|
+
onCounterpartyLookup,
|
|
8394
|
+
onEditAccount,
|
|
8395
|
+
onEditCounterparty,
|
|
8396
|
+
onSubmit,
|
|
8397
|
+
onCancel,
|
|
8398
|
+
onConfirmationClose,
|
|
8399
|
+
onConfirmationOpenChange
|
|
8400
|
+
}) => {
|
|
8401
|
+
const transactionType = form.watch("transactionType");
|
|
8402
|
+
const accountNumber = form.watch("accountNumber");
|
|
8403
|
+
const counterpartyName = form.watch("counterpartyName");
|
|
8404
|
+
const amount = form.watch("amount");
|
|
8405
|
+
const accountDataGrid = accountData ? [
|
|
8406
|
+
{
|
|
8407
|
+
title: "Account Information",
|
|
8408
|
+
items: [
|
|
8409
|
+
{ label: "Account Number", value: accountData.accountNumber },
|
|
8410
|
+
{ label: "Account Name", value: accountData.accountName },
|
|
8411
|
+
{ label: "Account Type", value: accountData.accountType },
|
|
8412
|
+
{ label: "Balance", value: accountData.balance },
|
|
8413
|
+
{ label: "Customer Name", value: accountData.customerName },
|
|
8414
|
+
{ label: "Customer ID", value: accountData.customerId }
|
|
8415
|
+
]
|
|
8416
|
+
}
|
|
8417
|
+
] : [];
|
|
8418
|
+
const counterpartyDataGrid = counterpartyData ? [
|
|
8419
|
+
{
|
|
8420
|
+
title: "Counterparty Information",
|
|
8421
|
+
items: [
|
|
8422
|
+
{ label: "Counterparty Name", value: counterpartyData.counterpartyName },
|
|
8423
|
+
{ label: "Counterparty ID", value: counterpartyData.counterpartyId },
|
|
8424
|
+
{ label: "Type", value: counterpartyData.counterpartyType },
|
|
8425
|
+
{ label: "Status", value: counterpartyData.status },
|
|
8426
|
+
{ label: "Tax ID", value: counterpartyData.taxId },
|
|
8427
|
+
{ label: "Primary Contact", value: counterpartyData.primaryContact },
|
|
8428
|
+
{ label: "Contact Email", value: counterpartyData.contactEmail },
|
|
8429
|
+
{ label: "Contact Phone", value: counterpartyData.contactPhone },
|
|
8430
|
+
{ label: "Address", value: counterpartyData.address }
|
|
8431
|
+
]
|
|
8432
|
+
}
|
|
8433
|
+
] : [];
|
|
8434
|
+
const reviewData = [
|
|
8435
|
+
{
|
|
8436
|
+
title: "Transaction Summary",
|
|
8437
|
+
items: [
|
|
8438
|
+
{ label: "Transaction Type", value: TRANSACTION_TYPES.find((t) => t.value === transactionType)?.label || "-" },
|
|
8439
|
+
{ label: "Account Number", value: accountNumber || "-" },
|
|
8440
|
+
{ label: "Counterparty", value: counterpartyName || "-" },
|
|
8441
|
+
{ label: "Amount", value: amount ? `$${amount}` : "-" },
|
|
8442
|
+
{ label: "Description", value: form.watch("description") || "N/A" }
|
|
8443
|
+
]
|
|
8444
|
+
}
|
|
8445
|
+
];
|
|
8446
|
+
return /* @__PURE__ */ jsx(PageLayout, { title: "New Transaction", children: /* @__PURE__ */ jsxs("div", { className: "max-w-4xl mx-auto space-y-6", children: [
|
|
8447
|
+
/* @__PURE__ */ jsx(FormProvider, { form, children: /* @__PURE__ */ jsxs("form", { onSubmit: (e) => e.preventDefault(), children: [
|
|
8448
|
+
!accountLookedUp ? /* @__PURE__ */ jsx(FormCard, { title: "Account Lookup", variant: "default", children: /* @__PURE__ */ jsxs("div", { className: "flex gap-3 items-start w-full", children: [
|
|
8449
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
|
|
8450
|
+
FormInput,
|
|
8451
|
+
{
|
|
8452
|
+
name: "accountNumber",
|
|
8453
|
+
placeholder: "Enter account number"
|
|
8454
|
+
}
|
|
8455
|
+
) }),
|
|
8456
|
+
/* @__PURE__ */ jsxs(
|
|
8457
|
+
Button,
|
|
8458
|
+
{
|
|
8459
|
+
onClick: onAccountLookup,
|
|
8460
|
+
disabled: !accountNumber,
|
|
8461
|
+
className: "shrink-0 mt-0 w-48",
|
|
8462
|
+
children: [
|
|
8463
|
+
/* @__PURE__ */ jsx(Search, { className: "h-4 w-4 mr-2" }),
|
|
8464
|
+
"Lookup Account"
|
|
8465
|
+
]
|
|
8466
|
+
}
|
|
8467
|
+
)
|
|
8468
|
+
] }) }) : /* @__PURE__ */ jsx(
|
|
8469
|
+
FormCard,
|
|
8470
|
+
{
|
|
8471
|
+
title: "Account Information",
|
|
8472
|
+
variant: "subtle",
|
|
8473
|
+
headerActions: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
8474
|
+
/* @__PURE__ */ jsx(CheckCircle2, { className: "h-5 w-5 text-success" }),
|
|
8475
|
+
/* @__PURE__ */ jsxs(Button, { variant: "ghost", size: "sm", onClick: onEditAccount, children: [
|
|
8476
|
+
/* @__PURE__ */ jsx(Edit, { className: "h-4 w-4 mr-1" }),
|
|
8477
|
+
"Edit"
|
|
8478
|
+
] })
|
|
8479
|
+
] }),
|
|
8480
|
+
children: /* @__PURE__ */ jsx(DataGrid, { data: accountDataGrid, columns: 2 })
|
|
8481
|
+
}
|
|
8482
|
+
),
|
|
8483
|
+
/* @__PURE__ */ jsx(
|
|
8484
|
+
FormCard,
|
|
8485
|
+
{
|
|
8486
|
+
title: "Transaction Type",
|
|
8487
|
+
variant: "default",
|
|
8488
|
+
className: cn(!accountLookedUp && "opacity-50 pointer-events-none"),
|
|
8489
|
+
children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 lg:grid-cols-4 gap-3 lg:gap-4", children: TRANSACTION_TYPES.map((type) => {
|
|
8490
|
+
const Icon2 = type.icon;
|
|
8491
|
+
const isSelected = transactionType === type.value;
|
|
8492
|
+
return /* @__PURE__ */ jsxs(
|
|
8493
|
+
"button",
|
|
8494
|
+
{
|
|
8495
|
+
type: "button",
|
|
8496
|
+
onClick: () => form.setValue("transactionType", type.value),
|
|
8497
|
+
disabled: !accountLookedUp,
|
|
8498
|
+
className: cn(
|
|
8499
|
+
"flex flex-col items-center justify-center p-4 lg:p-3 rounded-lg border-2 transition-all",
|
|
8500
|
+
"hover:border-primary/50 hover:shadow-md",
|
|
8501
|
+
isSelected ? "border-primary bg-primary/5 shadow-sm" : "border-border bg-card"
|
|
8502
|
+
),
|
|
8503
|
+
children: [
|
|
8504
|
+
/* @__PURE__ */ jsx(Icon2, { className: cn(
|
|
8505
|
+
"h-6 w-6 lg:h-5 lg:w-5 mb-2",
|
|
8506
|
+
isSelected ? "text-primary" : "text-muted-foreground"
|
|
8507
|
+
) }),
|
|
8508
|
+
/* @__PURE__ */ jsx("span", { className: cn(
|
|
8509
|
+
"text-sm font-medium",
|
|
8510
|
+
isSelected ? "text-primary" : "text-foreground"
|
|
8511
|
+
), children: type.label })
|
|
8512
|
+
]
|
|
8513
|
+
},
|
|
8514
|
+
type.value
|
|
8515
|
+
);
|
|
8516
|
+
}) })
|
|
8517
|
+
}
|
|
8518
|
+
),
|
|
8519
|
+
!counterpartyLookedUp ? /* @__PURE__ */ jsx(
|
|
8520
|
+
FormCard,
|
|
8521
|
+
{
|
|
8522
|
+
title: "Counterparty Lookup",
|
|
8523
|
+
variant: "default",
|
|
8524
|
+
className: cn(!transactionType && "opacity-50 pointer-events-none"),
|
|
8525
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex gap-3 items-start w-full", children: [
|
|
8526
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
|
|
8527
|
+
FormInput,
|
|
8528
|
+
{
|
|
8529
|
+
name: "counterpartyName",
|
|
8530
|
+
placeholder: "Enter counterparty name",
|
|
8531
|
+
disabled: !transactionType
|
|
8532
|
+
}
|
|
8533
|
+
) }),
|
|
8534
|
+
/* @__PURE__ */ jsxs(
|
|
8535
|
+
Button,
|
|
8536
|
+
{
|
|
8537
|
+
onClick: onCounterpartyLookup,
|
|
8538
|
+
disabled: !transactionType || !counterpartyName,
|
|
8539
|
+
className: "shrink-0 mt-0 w-48",
|
|
8540
|
+
children: [
|
|
8541
|
+
/* @__PURE__ */ jsx(Search, { className: "h-4 w-4 mr-2" }),
|
|
8542
|
+
"Lookup Counterparty"
|
|
8543
|
+
]
|
|
8544
|
+
}
|
|
8545
|
+
)
|
|
8546
|
+
] })
|
|
8547
|
+
}
|
|
8548
|
+
) : /* @__PURE__ */ jsx(
|
|
8549
|
+
FormCard,
|
|
8550
|
+
{
|
|
8551
|
+
title: "Counterparty Information",
|
|
8552
|
+
variant: "subtle",
|
|
8553
|
+
headerActions: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
8554
|
+
/* @__PURE__ */ jsx(CheckCircle2, { className: "h-5 w-5 text-success" }),
|
|
8555
|
+
/* @__PURE__ */ jsxs(Button, { variant: "ghost", size: "sm", onClick: onEditCounterparty, children: [
|
|
8556
|
+
/* @__PURE__ */ jsx(Edit, { className: "h-4 w-4 mr-1" }),
|
|
8557
|
+
"Edit"
|
|
8558
|
+
] })
|
|
8559
|
+
] }),
|
|
8560
|
+
children: /* @__PURE__ */ jsx(DataGrid, { data: counterpartyDataGrid, columns: 2 })
|
|
8561
|
+
}
|
|
8562
|
+
),
|
|
8563
|
+
/* @__PURE__ */ jsx(
|
|
8564
|
+
FormCard,
|
|
8565
|
+
{
|
|
8566
|
+
title: "Transaction Details",
|
|
8567
|
+
variant: "default",
|
|
8568
|
+
className: cn(!counterpartyLookedUp && "opacity-50 pointer-events-none"),
|
|
8569
|
+
children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
8570
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-[1fr_auto] gap-4", children: [
|
|
8571
|
+
/* @__PURE__ */ jsx(
|
|
8572
|
+
FormInput,
|
|
8573
|
+
{
|
|
8574
|
+
name: "amount",
|
|
8575
|
+
label: "Amount",
|
|
8576
|
+
placeholder: "0.00",
|
|
8577
|
+
type: "number",
|
|
8578
|
+
disabled: !counterpartyLookedUp
|
|
8579
|
+
}
|
|
8580
|
+
),
|
|
8581
|
+
/* @__PURE__ */ jsx(
|
|
8582
|
+
FormSelect,
|
|
8583
|
+
{
|
|
8584
|
+
name: "currency",
|
|
8585
|
+
label: "Currency",
|
|
8586
|
+
options: CURRENCY_OPTIONS,
|
|
8587
|
+
disabled: !counterpartyLookedUp,
|
|
8588
|
+
className: "w-48"
|
|
8589
|
+
}
|
|
8590
|
+
)
|
|
8591
|
+
] }),
|
|
8592
|
+
/* @__PURE__ */ jsx(
|
|
8593
|
+
FormInput,
|
|
8594
|
+
{
|
|
8595
|
+
name: "description",
|
|
8596
|
+
label: "Description (Optional)",
|
|
8597
|
+
placeholder: "Enter transaction description",
|
|
8598
|
+
disabled: !counterpartyLookedUp
|
|
8599
|
+
}
|
|
8600
|
+
)
|
|
8601
|
+
] })
|
|
8602
|
+
}
|
|
8603
|
+
),
|
|
8604
|
+
/* @__PURE__ */ jsx(FormCard, { title: "Review & Submit", variant: "default", children: /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
|
|
8605
|
+
/* @__PURE__ */ jsx(DataGrid, { data: reviewData, columns: 2 }),
|
|
8606
|
+
/* @__PURE__ */ jsx("div", { className: "bg-muted/30 rounded-lg p-4 border border-border/50", children: /* @__PURE__ */ jsx(
|
|
8607
|
+
Controller,
|
|
8608
|
+
{
|
|
8609
|
+
name: "certifyInformation",
|
|
8610
|
+
control: form.control,
|
|
8611
|
+
render: ({ field }) => /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
8612
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
8613
|
+
/* @__PURE__ */ jsx(
|
|
8614
|
+
Checkbox,
|
|
8615
|
+
{
|
|
8616
|
+
id: "certifyInformation",
|
|
8617
|
+
checked: field.value,
|
|
8618
|
+
onCheckedChange: field.onChange
|
|
8619
|
+
}
|
|
8620
|
+
),
|
|
8621
|
+
/* @__PURE__ */ jsx(
|
|
8622
|
+
"label",
|
|
8623
|
+
{
|
|
8624
|
+
htmlFor: "certifyInformation",
|
|
8625
|
+
className: "text-sm font-medium leading-relaxed cursor-pointer select-none",
|
|
8626
|
+
children: "I certify that all information entered is correct and accurate to the best of my knowledge"
|
|
8627
|
+
}
|
|
8628
|
+
)
|
|
8629
|
+
] }),
|
|
8630
|
+
form.formState.errors.certifyInformation && /* @__PURE__ */ jsx("p", { className: "text-xs text-destructive ml-7", children: form.formState.errors.certifyInformation.message })
|
|
8631
|
+
] })
|
|
8632
|
+
}
|
|
8633
|
+
) }),
|
|
8634
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-3 justify-end pt-4 border-t border-border", children: [
|
|
8635
|
+
/* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", onClick: onCancel, className: "w-32", children: "Cancel" }),
|
|
8636
|
+
/* @__PURE__ */ jsxs(
|
|
8637
|
+
Button,
|
|
8638
|
+
{
|
|
8639
|
+
type: "button",
|
|
8640
|
+
onClick: onSubmit,
|
|
8641
|
+
className: "w-48",
|
|
8642
|
+
disabled: !transactionType || !accountNumber || !counterpartyName || !amount || !form.watch("certifyInformation"),
|
|
8643
|
+
children: [
|
|
8644
|
+
/* @__PURE__ */ jsx(CheckCircle2, { className: "h-4 w-4 mr-2" }),
|
|
8645
|
+
"Submit Transaction"
|
|
8646
|
+
]
|
|
8647
|
+
}
|
|
8648
|
+
)
|
|
8649
|
+
] })
|
|
8650
|
+
] }) })
|
|
8651
|
+
] }) }),
|
|
8652
|
+
/* @__PURE__ */ jsx(Dialog, { open: confirmationOpen, onOpenChange: onConfirmationOpenChange, children: /* @__PURE__ */ jsxs(DialogContent, { className: "sm:max-w-md", children: [
|
|
8653
|
+
/* @__PURE__ */ jsxs(DialogHeader, { children: [
|
|
8654
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mb-2", children: [
|
|
8655
|
+
submissionStatus === "success" ? /* @__PURE__ */ jsx("div", { className: "h-12 w-12 rounded-full bg-success/10 flex items-center justify-center", children: /* @__PURE__ */ jsx(CheckCircle2, { className: "h-6 w-6 text-success" }) }) : /* @__PURE__ */ jsx("div", { className: "h-12 w-12 rounded-full bg-destructive/10 flex items-center justify-center", children: /* @__PURE__ */ jsx(XCircle, { className: "h-6 w-6 text-destructive" }) }),
|
|
8656
|
+
/* @__PURE__ */ jsx(DialogTitle, { className: "text-xl", children: submissionStatus === "success" ? "Transaction Successful" : "Transaction Failed" })
|
|
8657
|
+
] }),
|
|
8658
|
+
/* @__PURE__ */ jsx(DialogDescription, { className: "text-left", children: submissionStatus === "success" ? /* @__PURE__ */ jsxs("div", { className: "space-y-4 pt-2", children: [
|
|
8659
|
+
/* @__PURE__ */ jsx("p", { className: "text-foreground", children: "Your transaction has been successfully submitted and is being processed." }),
|
|
8660
|
+
/* @__PURE__ */ jsxs("div", { className: "bg-muted/50 rounded-lg p-4 space-y-2", children: [
|
|
8661
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
8662
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Transaction ID:" }),
|
|
8663
|
+
/* @__PURE__ */ jsx("span", { className: "font-mono font-medium", children: transactionId })
|
|
8664
|
+
] }),
|
|
8665
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
8666
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Amount:" }),
|
|
8667
|
+
/* @__PURE__ */ jsxs("span", { className: "font-medium", children: [
|
|
8668
|
+
"$",
|
|
8669
|
+
amount
|
|
8670
|
+
] })
|
|
8671
|
+
] }),
|
|
8672
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
8673
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Type:" }),
|
|
8674
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium", children: TRANSACTION_TYPES.find((t) => t.value === transactionType)?.label })
|
|
8675
|
+
] }),
|
|
8676
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
8677
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Counterparty:" }),
|
|
8678
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium", children: counterpartyName })
|
|
8679
|
+
] })
|
|
8680
|
+
] }),
|
|
8681
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 p-3 bg-blue-500/10 border border-blue-500/20 rounded-lg", children: [
|
|
8682
|
+
/* @__PURE__ */ jsx(AlertCircle, { className: "h-5 w-5 text-blue-500 mt-0.5 flex-shrink-0" }),
|
|
8683
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-blue-700 dark:text-blue-300", children: "You will receive a confirmation email once the transaction is completed." })
|
|
8684
|
+
] })
|
|
8685
|
+
] }) : /* @__PURE__ */ jsxs("div", { className: "space-y-4 pt-2", children: [
|
|
8686
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 p-4 bg-destructive/10 border border-destructive/20 rounded-lg", children: [
|
|
8687
|
+
/* @__PURE__ */ jsx(XCircle, { className: "h-5 w-5 text-destructive mt-0.5 flex-shrink-0" }),
|
|
8688
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
8689
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-destructive", children: "Error Processing Transaction" }),
|
|
8690
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: errorMessage })
|
|
8691
|
+
] })
|
|
8692
|
+
] }),
|
|
8693
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Please review the error message above and try again. If the problem persists, contact support." })
|
|
8694
|
+
] }) })
|
|
8695
|
+
] }),
|
|
8696
|
+
/* @__PURE__ */ jsxs(DialogFooter, { className: "sm:justify-end gap-2", children: [
|
|
8697
|
+
submissionStatus === "error" && /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", onClick: () => onConfirmationOpenChange(false), children: "Try Again" }),
|
|
8698
|
+
/* @__PURE__ */ jsx(
|
|
8699
|
+
Button,
|
|
8700
|
+
{
|
|
8701
|
+
type: "button",
|
|
8702
|
+
onClick: onConfirmationClose,
|
|
8703
|
+
variant: submissionStatus === "success" ? "default" : "outline",
|
|
8704
|
+
children: submissionStatus === "success" ? "View Transactions" : "Close"
|
|
8705
|
+
}
|
|
8706
|
+
)
|
|
8707
|
+
] })
|
|
8708
|
+
] }) })
|
|
8709
|
+
] }) });
|
|
8710
|
+
};
|
|
8347
8711
|
var typeIcons = {
|
|
8348
8712
|
checking: CreditCard,
|
|
8349
8713
|
savings: Building,
|
|
@@ -8418,25 +8782,6 @@ var BusinessTypeBadge = ({ type, className }) => {
|
|
|
8418
8782
|
config.label
|
|
8419
8783
|
] });
|
|
8420
8784
|
};
|
|
8421
|
-
var Checkbox = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8422
|
-
CheckboxPrimitive.Root,
|
|
8423
|
-
{
|
|
8424
|
-
ref,
|
|
8425
|
-
className: cn(
|
|
8426
|
-
"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
|
|
8427
|
-
className
|
|
8428
|
-
),
|
|
8429
|
-
...props,
|
|
8430
|
-
children: /* @__PURE__ */ jsx(
|
|
8431
|
-
CheckboxPrimitive.Indicator,
|
|
8432
|
-
{
|
|
8433
|
-
className: cn("flex items-center justify-center text-current"),
|
|
8434
|
-
children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" })
|
|
8435
|
-
}
|
|
8436
|
-
)
|
|
8437
|
-
}
|
|
8438
|
-
));
|
|
8439
|
-
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
8440
8785
|
var DetailPageLayout = ({
|
|
8441
8786
|
title,
|
|
8442
8787
|
description,
|
|
@@ -13818,22 +14163,6 @@ var newTransactionSchema = z.object({
|
|
|
13818
14163
|
message: "You must certify the information is correct"
|
|
13819
14164
|
})
|
|
13820
14165
|
});
|
|
13821
|
-
var TRANSACTION_TYPES = [
|
|
13822
|
-
{ value: "transfer", label: "Transfer", icon: ArrowLeftRight },
|
|
13823
|
-
{ value: "adjustment", label: "Adjustment", icon: Settings },
|
|
13824
|
-
{ value: "ach", label: "ACH", icon: Building2 },
|
|
13825
|
-
{ value: "wire", label: "Wire", icon: Zap }
|
|
13826
|
-
];
|
|
13827
|
-
var CURRENCY_OPTIONS = [
|
|
13828
|
-
{ value: "USD", label: "USD - US Dollar" },
|
|
13829
|
-
{ value: "EUR", label: "EUR - Euro" },
|
|
13830
|
-
{ value: "GBP", label: "GBP - British Pound" },
|
|
13831
|
-
{ value: "JPY", label: "JPY - Japanese Yen" },
|
|
13832
|
-
{ value: "CAD", label: "CAD - Canadian Dollar" },
|
|
13833
|
-
{ value: "AUD", label: "AUD - Australian Dollar" },
|
|
13834
|
-
{ value: "CHF", label: "CHF - Swiss Franc" },
|
|
13835
|
-
{ value: "CNY", label: "CNY - Chinese Yuan" }
|
|
13836
|
-
];
|
|
13837
14166
|
var mockAccountData = {
|
|
13838
14167
|
accountNumber: "****1234",
|
|
13839
14168
|
accountName: "Business Checking",
|
|
@@ -13876,10 +14205,6 @@ function NewTransaction() {
|
|
|
13876
14205
|
certifyInformation: false
|
|
13877
14206
|
}
|
|
13878
14207
|
});
|
|
13879
|
-
const transactionType = form.watch("transactionType");
|
|
13880
|
-
const accountNumber = form.watch("accountNumber");
|
|
13881
|
-
const counterpartyName = form.watch("counterpartyName");
|
|
13882
|
-
const amount = form.watch("amount");
|
|
13883
14208
|
const handleAccountLookup = () => {
|
|
13884
14209
|
const accNum = form.getValues("accountNumber");
|
|
13885
14210
|
if (!accNum) {
|
|
@@ -13926,11 +14251,10 @@ function NewTransaction() {
|
|
|
13926
14251
|
toast$1.error("Please lookup both account and counterparty");
|
|
13927
14252
|
return;
|
|
13928
14253
|
}
|
|
13929
|
-
const amount2 = parseFloat(data.amount);
|
|
13930
14254
|
const hasError = Math.random() > 0.7;
|
|
13931
14255
|
if (hasError) {
|
|
13932
14256
|
const errorScenarios = [
|
|
13933
|
-
"Insufficient funds. Current balance: $125,450.00, Required: $" +
|
|
14257
|
+
"Insufficient funds. Current balance: $125,450.00, Required: $" + parseFloat(data.amount).toFixed(2),
|
|
13934
14258
|
"Transaction limit exceeded. Daily limit: $50,000.00",
|
|
13935
14259
|
"Counterparty account is temporarily unavailable. Please try again later.",
|
|
13936
14260
|
"Invalid routing number for the selected transaction type."
|
|
@@ -13954,368 +14278,26 @@ function NewTransaction() {
|
|
|
13954
14278
|
const handleCancel = () => {
|
|
13955
14279
|
navigate("/dashboard");
|
|
13956
14280
|
};
|
|
13957
|
-
const accountDataGrid = accountData ? [
|
|
13958
|
-
{
|
|
13959
|
-
title: "Account Information",
|
|
13960
|
-
items: [
|
|
13961
|
-
{ label: "Account Number", value: accountData.accountNumber },
|
|
13962
|
-
{ label: "Account Name", value: accountData.accountName },
|
|
13963
|
-
{ label: "Account Type", value: accountData.accountType },
|
|
13964
|
-
{ label: "Balance", value: accountData.balance },
|
|
13965
|
-
{ label: "Customer Name", value: accountData.customerName },
|
|
13966
|
-
{ label: "Customer ID", value: accountData.customerId }
|
|
13967
|
-
]
|
|
13968
|
-
}
|
|
13969
|
-
] : [];
|
|
13970
|
-
const counterpartyDataGrid = counterpartyData ? [
|
|
13971
|
-
{
|
|
13972
|
-
title: "Counterparty Information",
|
|
13973
|
-
items: [
|
|
13974
|
-
{ label: "Counterparty Name", value: counterpartyData.counterpartyName },
|
|
13975
|
-
{ label: "Counterparty ID", value: counterpartyData.counterpartyId },
|
|
13976
|
-
{ label: "Type", value: counterpartyData.counterpartyType },
|
|
13977
|
-
{ label: "Status", value: counterpartyData.status },
|
|
13978
|
-
{ label: "Tax ID", value: counterpartyData.taxId },
|
|
13979
|
-
{ label: "Primary Contact", value: counterpartyData.primaryContact },
|
|
13980
|
-
{ label: "Contact Email", value: counterpartyData.contactEmail },
|
|
13981
|
-
{ label: "Contact Phone", value: counterpartyData.contactPhone },
|
|
13982
|
-
{ label: "Address", value: counterpartyData.address }
|
|
13983
|
-
]
|
|
13984
|
-
}
|
|
13985
|
-
] : [];
|
|
13986
|
-
const reviewData = [
|
|
13987
|
-
{
|
|
13988
|
-
title: "Transaction Summary",
|
|
13989
|
-
items: [
|
|
13990
|
-
{ label: "Transaction Type", value: TRANSACTION_TYPES.find((t) => t.value === transactionType)?.label || "-" },
|
|
13991
|
-
{ label: "Account Number", value: accountNumber || "-" },
|
|
13992
|
-
{ label: "Counterparty", value: counterpartyName || "-" },
|
|
13993
|
-
{ label: "Amount", value: amount ? `$${amount}` : "-" },
|
|
13994
|
-
{ label: "Description", value: form.watch("description") || "N/A" }
|
|
13995
|
-
]
|
|
13996
|
-
}
|
|
13997
|
-
];
|
|
13998
14281
|
return /* @__PURE__ */ jsx(
|
|
13999
|
-
|
|
14282
|
+
NewTransactionView,
|
|
14000
14283
|
{
|
|
14001
|
-
|
|
14002
|
-
|
|
14003
|
-
|
|
14004
|
-
|
|
14005
|
-
|
|
14006
|
-
|
|
14007
|
-
|
|
14008
|
-
|
|
14009
|
-
|
|
14010
|
-
|
|
14011
|
-
|
|
14012
|
-
|
|
14013
|
-
|
|
14014
|
-
|
|
14015
|
-
|
|
14016
|
-
|
|
14017
|
-
|
|
14018
|
-
Button,
|
|
14019
|
-
{
|
|
14020
|
-
onClick: handleAccountLookup,
|
|
14021
|
-
disabled: !accountNumber,
|
|
14022
|
-
className: "shrink-0 mt-0 w-48",
|
|
14023
|
-
children: [
|
|
14024
|
-
/* @__PURE__ */ jsx(Search, { className: "h-4 w-4 mr-2" }),
|
|
14025
|
-
"Lookup Account"
|
|
14026
|
-
]
|
|
14027
|
-
}
|
|
14028
|
-
)
|
|
14029
|
-
] })
|
|
14030
|
-
}
|
|
14031
|
-
) : (
|
|
14032
|
-
/* Account Information (Read-only) */
|
|
14033
|
-
/* @__PURE__ */ jsx(
|
|
14034
|
-
FormCard,
|
|
14035
|
-
{
|
|
14036
|
-
title: "Account Information",
|
|
14037
|
-
variant: "subtle",
|
|
14038
|
-
headerActions: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
14039
|
-
/* @__PURE__ */ jsx(CheckCircle2, { className: "h-5 w-5 text-success" }),
|
|
14040
|
-
/* @__PURE__ */ jsxs(
|
|
14041
|
-
Button,
|
|
14042
|
-
{
|
|
14043
|
-
variant: "ghost",
|
|
14044
|
-
size: "sm",
|
|
14045
|
-
onClick: handleEditAccount,
|
|
14046
|
-
children: [
|
|
14047
|
-
/* @__PURE__ */ jsx(Edit, { className: "h-4 w-4 mr-1" }),
|
|
14048
|
-
"Edit"
|
|
14049
|
-
]
|
|
14050
|
-
}
|
|
14051
|
-
)
|
|
14052
|
-
] }),
|
|
14053
|
-
children: /* @__PURE__ */ jsx(DataGrid, { data: accountDataGrid, columns: 2 })
|
|
14054
|
-
}
|
|
14055
|
-
)
|
|
14056
|
-
),
|
|
14057
|
-
/* @__PURE__ */ jsx(
|
|
14058
|
-
FormCard,
|
|
14059
|
-
{
|
|
14060
|
-
title: "Transaction Type",
|
|
14061
|
-
variant: "default",
|
|
14062
|
-
className: cn(!accountLookedUp && "opacity-50 pointer-events-none"),
|
|
14063
|
-
children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 lg:grid-cols-4 gap-3 lg:gap-4", children: TRANSACTION_TYPES.map((type) => {
|
|
14064
|
-
const Icon2 = type.icon;
|
|
14065
|
-
const isSelected = transactionType === type.value;
|
|
14066
|
-
return /* @__PURE__ */ jsxs(
|
|
14067
|
-
"button",
|
|
14068
|
-
{
|
|
14069
|
-
type: "button",
|
|
14070
|
-
onClick: () => form.setValue("transactionType", type.value),
|
|
14071
|
-
disabled: !accountLookedUp,
|
|
14072
|
-
className: cn(
|
|
14073
|
-
"flex flex-col items-center justify-center p-4 lg:p-3 rounded-lg border-2 transition-all",
|
|
14074
|
-
"hover:border-primary/50 hover:shadow-md",
|
|
14075
|
-
isSelected ? "border-primary bg-primary/5 shadow-sm" : "border-border bg-card"
|
|
14076
|
-
),
|
|
14077
|
-
children: [
|
|
14078
|
-
/* @__PURE__ */ jsx(Icon2, { className: cn(
|
|
14079
|
-
"h-6 w-6 lg:h-5 lg:w-5 mb-2",
|
|
14080
|
-
isSelected ? "text-primary" : "text-muted-foreground"
|
|
14081
|
-
) }),
|
|
14082
|
-
/* @__PURE__ */ jsx("span", { className: cn(
|
|
14083
|
-
"text-sm font-medium",
|
|
14084
|
-
isSelected ? "text-primary" : "text-foreground"
|
|
14085
|
-
), children: type.label })
|
|
14086
|
-
]
|
|
14087
|
-
},
|
|
14088
|
-
type.value
|
|
14089
|
-
);
|
|
14090
|
-
}) })
|
|
14091
|
-
}
|
|
14092
|
-
),
|
|
14093
|
-
!counterpartyLookedUp ? /* @__PURE__ */ jsx(
|
|
14094
|
-
FormCard,
|
|
14095
|
-
{
|
|
14096
|
-
title: "Counterparty Lookup",
|
|
14097
|
-
variant: "default",
|
|
14098
|
-
className: cn(!transactionType && "opacity-50 pointer-events-none"),
|
|
14099
|
-
children: /* @__PURE__ */ jsxs("div", { className: "flex gap-3 items-start w-full", children: [
|
|
14100
|
-
/* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
|
|
14101
|
-
FormInput,
|
|
14102
|
-
{
|
|
14103
|
-
name: "counterpartyName",
|
|
14104
|
-
placeholder: "Enter counterparty name",
|
|
14105
|
-
disabled: !transactionType
|
|
14106
|
-
}
|
|
14107
|
-
) }),
|
|
14108
|
-
/* @__PURE__ */ jsxs(
|
|
14109
|
-
Button,
|
|
14110
|
-
{
|
|
14111
|
-
onClick: handleCounterpartyLookup,
|
|
14112
|
-
disabled: !transactionType || !counterpartyName,
|
|
14113
|
-
className: "shrink-0 mt-0 w-48",
|
|
14114
|
-
children: [
|
|
14115
|
-
/* @__PURE__ */ jsx(Search, { className: "h-4 w-4 mr-2" }),
|
|
14116
|
-
"Lookup Counterparty"
|
|
14117
|
-
]
|
|
14118
|
-
}
|
|
14119
|
-
)
|
|
14120
|
-
] })
|
|
14121
|
-
}
|
|
14122
|
-
) : (
|
|
14123
|
-
/* Counterparty Information (Read-only) */
|
|
14124
|
-
/* @__PURE__ */ jsx(
|
|
14125
|
-
FormCard,
|
|
14126
|
-
{
|
|
14127
|
-
title: "Counterparty Information",
|
|
14128
|
-
variant: "subtle",
|
|
14129
|
-
headerActions: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
14130
|
-
/* @__PURE__ */ jsx(CheckCircle2, { className: "h-5 w-5 text-success" }),
|
|
14131
|
-
/* @__PURE__ */ jsxs(
|
|
14132
|
-
Button,
|
|
14133
|
-
{
|
|
14134
|
-
variant: "ghost",
|
|
14135
|
-
size: "sm",
|
|
14136
|
-
onClick: handleEditCounterparty,
|
|
14137
|
-
children: [
|
|
14138
|
-
/* @__PURE__ */ jsx(Edit, { className: "h-4 w-4 mr-1" }),
|
|
14139
|
-
"Edit"
|
|
14140
|
-
]
|
|
14141
|
-
}
|
|
14142
|
-
)
|
|
14143
|
-
] }),
|
|
14144
|
-
children: /* @__PURE__ */ jsx(DataGrid, { data: counterpartyDataGrid, columns: 2 })
|
|
14145
|
-
}
|
|
14146
|
-
)
|
|
14147
|
-
),
|
|
14148
|
-
/* @__PURE__ */ jsx(
|
|
14149
|
-
FormCard,
|
|
14150
|
-
{
|
|
14151
|
-
title: "Transaction Details",
|
|
14152
|
-
variant: "default",
|
|
14153
|
-
className: cn(!counterpartyLookedUp && "opacity-50 pointer-events-none"),
|
|
14154
|
-
children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
14155
|
-
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-[1fr_auto] gap-4", children: [
|
|
14156
|
-
/* @__PURE__ */ jsx(
|
|
14157
|
-
FormInput,
|
|
14158
|
-
{
|
|
14159
|
-
name: "amount",
|
|
14160
|
-
label: "Amount",
|
|
14161
|
-
placeholder: "0.00",
|
|
14162
|
-
type: "number",
|
|
14163
|
-
disabled: !counterpartyLookedUp
|
|
14164
|
-
}
|
|
14165
|
-
),
|
|
14166
|
-
/* @__PURE__ */ jsx(
|
|
14167
|
-
FormSelect,
|
|
14168
|
-
{
|
|
14169
|
-
name: "currency",
|
|
14170
|
-
label: "Currency",
|
|
14171
|
-
options: CURRENCY_OPTIONS,
|
|
14172
|
-
disabled: !counterpartyLookedUp,
|
|
14173
|
-
className: "w-48"
|
|
14174
|
-
}
|
|
14175
|
-
)
|
|
14176
|
-
] }),
|
|
14177
|
-
/* @__PURE__ */ jsx(
|
|
14178
|
-
FormInput,
|
|
14179
|
-
{
|
|
14180
|
-
name: "description",
|
|
14181
|
-
label: "Description (Optional)",
|
|
14182
|
-
placeholder: "Enter transaction description",
|
|
14183
|
-
disabled: !counterpartyLookedUp
|
|
14184
|
-
}
|
|
14185
|
-
)
|
|
14186
|
-
] })
|
|
14187
|
-
}
|
|
14188
|
-
),
|
|
14189
|
-
/* @__PURE__ */ jsx(
|
|
14190
|
-
FormCard,
|
|
14191
|
-
{
|
|
14192
|
-
title: "Review & Submit",
|
|
14193
|
-
variant: "default",
|
|
14194
|
-
children: /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
|
|
14195
|
-
/* @__PURE__ */ jsx(DataGrid, { data: reviewData, columns: 2 }),
|
|
14196
|
-
/* @__PURE__ */ jsx("div", { className: "bg-muted/30 rounded-lg p-4 border border-border/50", children: /* @__PURE__ */ jsx(
|
|
14197
|
-
Controller,
|
|
14198
|
-
{
|
|
14199
|
-
name: "certifyInformation",
|
|
14200
|
-
control: form.control,
|
|
14201
|
-
render: ({ field }) => /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
14202
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
14203
|
-
/* @__PURE__ */ jsx(
|
|
14204
|
-
Checkbox,
|
|
14205
|
-
{
|
|
14206
|
-
id: "certifyInformation",
|
|
14207
|
-
checked: field.value,
|
|
14208
|
-
onCheckedChange: field.onChange
|
|
14209
|
-
}
|
|
14210
|
-
),
|
|
14211
|
-
/* @__PURE__ */ jsx(
|
|
14212
|
-
"label",
|
|
14213
|
-
{
|
|
14214
|
-
htmlFor: "certifyInformation",
|
|
14215
|
-
className: "text-sm font-medium leading-relaxed cursor-pointer select-none",
|
|
14216
|
-
children: "I certify that all information entered is correct and accurate to the best of my knowledge"
|
|
14217
|
-
}
|
|
14218
|
-
)
|
|
14219
|
-
] }),
|
|
14220
|
-
form.formState.errors.certifyInformation && /* @__PURE__ */ jsx("p", { className: "text-xs text-destructive ml-7", children: form.formState.errors.certifyInformation.message })
|
|
14221
|
-
] })
|
|
14222
|
-
}
|
|
14223
|
-
) }),
|
|
14224
|
-
/* @__PURE__ */ jsxs("div", { className: "flex gap-3 justify-end pt-4 border-t border-border", children: [
|
|
14225
|
-
/* @__PURE__ */ jsx(
|
|
14226
|
-
Button,
|
|
14227
|
-
{
|
|
14228
|
-
type: "button",
|
|
14229
|
-
variant: "outline",
|
|
14230
|
-
onClick: handleCancel,
|
|
14231
|
-
className: "w-32",
|
|
14232
|
-
children: "Cancel"
|
|
14233
|
-
}
|
|
14234
|
-
),
|
|
14235
|
-
/* @__PURE__ */ jsxs(
|
|
14236
|
-
Button,
|
|
14237
|
-
{
|
|
14238
|
-
type: "button",
|
|
14239
|
-
onClick: handleSubmit,
|
|
14240
|
-
className: "w-48",
|
|
14241
|
-
disabled: !transactionType || !accountNumber || !counterpartyName || !amount || !form.watch("certifyInformation"),
|
|
14242
|
-
children: [
|
|
14243
|
-
/* @__PURE__ */ jsx(CheckCircle2, { className: "h-4 w-4 mr-2" }),
|
|
14244
|
-
"Submit Transaction"
|
|
14245
|
-
]
|
|
14246
|
-
}
|
|
14247
|
-
)
|
|
14248
|
-
] })
|
|
14249
|
-
] })
|
|
14250
|
-
}
|
|
14251
|
-
)
|
|
14252
|
-
] }) }),
|
|
14253
|
-
/* @__PURE__ */ jsx(Dialog, { open: confirmationOpen, onOpenChange: setConfirmationOpen, children: /* @__PURE__ */ jsxs(DialogContent, { className: "sm:max-w-md", children: [
|
|
14254
|
-
/* @__PURE__ */ jsxs(DialogHeader, { children: [
|
|
14255
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mb-2", children: [
|
|
14256
|
-
submissionStatus === "success" ? /* @__PURE__ */ jsx("div", { className: "h-12 w-12 rounded-full bg-success/10 flex items-center justify-center", children: /* @__PURE__ */ jsx(CheckCircle2, { className: "h-6 w-6 text-success" }) }) : /* @__PURE__ */ jsx("div", { className: "h-12 w-12 rounded-full bg-destructive/10 flex items-center justify-center", children: /* @__PURE__ */ jsx(XCircle, { className: "h-6 w-6 text-destructive" }) }),
|
|
14257
|
-
/* @__PURE__ */ jsx(DialogTitle, { className: "text-xl", children: submissionStatus === "success" ? "Transaction Successful" : "Transaction Failed" })
|
|
14258
|
-
] }),
|
|
14259
|
-
/* @__PURE__ */ jsx(DialogDescription, { className: "text-left", children: submissionStatus === "success" ? /* @__PURE__ */ jsxs("div", { className: "space-y-4 pt-2", children: [
|
|
14260
|
-
/* @__PURE__ */ jsx("p", { className: "text-foreground", children: "Your transaction has been successfully submitted and is being processed." }),
|
|
14261
|
-
/* @__PURE__ */ jsxs("div", { className: "bg-muted/50 rounded-lg p-4 space-y-2", children: [
|
|
14262
|
-
/* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
14263
|
-
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Transaction ID:" }),
|
|
14264
|
-
/* @__PURE__ */ jsx("span", { className: "font-mono font-medium", children: transactionId })
|
|
14265
|
-
] }),
|
|
14266
|
-
/* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
14267
|
-
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Amount:" }),
|
|
14268
|
-
/* @__PURE__ */ jsxs("span", { className: "font-medium", children: [
|
|
14269
|
-
"$",
|
|
14270
|
-
amount
|
|
14271
|
-
] })
|
|
14272
|
-
] }),
|
|
14273
|
-
/* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
14274
|
-
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Type:" }),
|
|
14275
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium", children: TRANSACTION_TYPES.find((t) => t.value === transactionType)?.label })
|
|
14276
|
-
] }),
|
|
14277
|
-
/* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
14278
|
-
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Counterparty:" }),
|
|
14279
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium", children: counterpartyName })
|
|
14280
|
-
] })
|
|
14281
|
-
] }),
|
|
14282
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 p-3 bg-blue-500/10 border border-blue-500/20 rounded-lg", children: [
|
|
14283
|
-
/* @__PURE__ */ jsx(AlertCircle, { className: "h-5 w-5 text-blue-500 mt-0.5 flex-shrink-0" }),
|
|
14284
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-blue-700 dark:text-blue-300", children: "You will receive a confirmation email once the transaction is completed." })
|
|
14285
|
-
] })
|
|
14286
|
-
] }) : /* @__PURE__ */ jsxs("div", { className: "space-y-4 pt-2", children: [
|
|
14287
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 p-4 bg-destructive/10 border border-destructive/20 rounded-lg", children: [
|
|
14288
|
-
/* @__PURE__ */ jsx(XCircle, { className: "h-5 w-5 text-destructive mt-0.5 flex-shrink-0" }),
|
|
14289
|
-
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
14290
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-destructive", children: "Error Processing Transaction" }),
|
|
14291
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: errorMessage })
|
|
14292
|
-
] })
|
|
14293
|
-
] }),
|
|
14294
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Please review the error message above and try again. If the problem persists, contact support." })
|
|
14295
|
-
] }) })
|
|
14296
|
-
] }),
|
|
14297
|
-
/* @__PURE__ */ jsxs(DialogFooter, { className: "sm:justify-end gap-2", children: [
|
|
14298
|
-
submissionStatus === "error" && /* @__PURE__ */ jsx(
|
|
14299
|
-
Button,
|
|
14300
|
-
{
|
|
14301
|
-
type: "button",
|
|
14302
|
-
variant: "outline",
|
|
14303
|
-
onClick: () => setConfirmationOpen(false),
|
|
14304
|
-
children: "Try Again"
|
|
14305
|
-
}
|
|
14306
|
-
),
|
|
14307
|
-
/* @__PURE__ */ jsx(
|
|
14308
|
-
Button,
|
|
14309
|
-
{
|
|
14310
|
-
type: "button",
|
|
14311
|
-
onClick: handleConfirmationClose,
|
|
14312
|
-
variant: submissionStatus === "success" ? "default" : "outline",
|
|
14313
|
-
children: submissionStatus === "success" ? "View Transactions" : "Close"
|
|
14314
|
-
}
|
|
14315
|
-
)
|
|
14316
|
-
] })
|
|
14317
|
-
] }) })
|
|
14318
|
-
] })
|
|
14284
|
+
form,
|
|
14285
|
+
accountLookedUp,
|
|
14286
|
+
accountData,
|
|
14287
|
+
counterpartyLookedUp,
|
|
14288
|
+
counterpartyData,
|
|
14289
|
+
confirmationOpen,
|
|
14290
|
+
submissionStatus,
|
|
14291
|
+
errorMessage,
|
|
14292
|
+
transactionId,
|
|
14293
|
+
onAccountLookup: handleAccountLookup,
|
|
14294
|
+
onCounterpartyLookup: handleCounterpartyLookup,
|
|
14295
|
+
onEditAccount: handleEditAccount,
|
|
14296
|
+
onEditCounterparty: handleEditCounterparty,
|
|
14297
|
+
onSubmit: handleSubmit,
|
|
14298
|
+
onCancel: handleCancel,
|
|
14299
|
+
onConfirmationClose: handleConfirmationClose,
|
|
14300
|
+
onConfirmationOpenChange: setConfirmationOpen
|
|
14319
14301
|
}
|
|
14320
14302
|
);
|
|
14321
14303
|
}
|
|
@@ -16348,6 +16330,6 @@ function ReconExceptions() {
|
|
|
16348
16330
|
] }) });
|
|
16349
16331
|
}
|
|
16350
16332
|
|
|
16351
|
-
export { ACHBankCard, ACHBasicInfoCard, ACHDetailsSection, ACHTransferSection, AccountCard, AccountDetail_default as AccountDetail, Accounts_default as Accounts, AddressForm, AlertDetail_default as AlertDetail, AlertDetailRouter, AlertDocuments, AlertHeaderControls, AlertNotes, AlertTimeline, Alerts_default as Alerts, AppSidebar, Badge, BankAddressCard, BankingDetailsCard, BasicInfoCard, BasicInfoSection, BeneficiaryAddress, BeneficiaryCard, BeneficiaryDomesticWire, Breadcrumb, BusinessDetail_default as BusinessDetail, BusinessDetailView, BusinessFiltersSheet, BusinessProfileCard, BusinessStatusCard, BusinessTypeBadge, Businesses_default as Businesses, Button, CIPStatusBadge, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Cases_default as Cases, Checkbox, ContactInfoCard, Container, ContextSection, Counterparties_default as Counterparties, CounterpartiesView, CounterpartyBasicInfo, CounterpartyDetail_default as CounterpartyDetail, CounterpartyDetailView, CounterpartyProfileCard, CounterpartyRecordsCard, CounterpartyTypeBadge, Create_default as CreateBusiness, CreateBusinessView, Create_default2 as CreateCounterparty, CreateCounterpartyView, Create_default3 as CreateIndividual, CreateVelocityLimit, Dashboard_default as Dashboard, DashboardDemo, DataGrid, DataTable, DetailPageLayout, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, EditableFormCard, EditableInfoField, EnhancedInput, EnhancedSelect, EnhancedTextarea, EntityCard, FormCard, FormField, FormInput, FormProvider, FormSection, FormSelect, IndividualDetail_default as IndividualDetail, Individuals_default as Individuals, InfoField, IntermediaryCard, IntermediaryFI, IntermediaryFIAddress, JsonViewer, Label, ListPage, MainLayout, MetricCard, NewTransaction, NotFound_default as NotFound, OFACAlertView, OriginatorCard, OriginatorFI, OriginatorFIAddress, PageLayout, PatternLibrary, PaymentInformationSection, Popover, PopoverContent, PopoverTrigger, ReceiverCard, ReconExceptions, ReconUpload, ResolveAlertDialog, ResponsiveGrid, ScrollArea, ScrollBar, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Stack, Statement, StatementHeader, StatementView, StatusBadge, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, Toaster, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TransactionDetail_default as TransactionDetail, TransactionHistory_default as TransactionHistory, TransactionTypeBadge, UIKit, UIKitShowcase, VelocityLimitDetail, VelocityLimits, WireDetailsSection, WireTransferSection, badgeVariants, buttonVariants, cardVariants, downloadCSV, generateStatementCSV, inputVariants, reducer, textareaVariants, toast, useAlertDetail, useCounterpartyEntity, useEditState, useFormWithEditState, useIsMobile, useSidebar, useToast };
|
|
16333
|
+
export { ACHBankCard, ACHBasicInfoCard, ACHDetailsSection, ACHTransferSection, AccountCard, AccountDetail_default as AccountDetail, Accounts_default as Accounts, AddressForm, AlertDetail_default as AlertDetail, AlertDetailRouter, AlertDocuments, AlertHeaderControls, AlertNotes, AlertTimeline, Alerts_default as Alerts, AppSidebar, Badge, BankAddressCard, BankingDetailsCard, BasicInfoCard, BasicInfoSection, BeneficiaryAddress, BeneficiaryCard, BeneficiaryDomesticWire, Breadcrumb, BusinessDetail_default as BusinessDetail, BusinessDetailView, BusinessFiltersSheet, BusinessProfileCard, BusinessStatusCard, BusinessTypeBadge, Businesses_default as Businesses, Button, CIPStatusBadge, CURRENCY_OPTIONS, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Cases_default as Cases, Checkbox, ContactInfoCard, Container, ContextSection, Counterparties_default as Counterparties, CounterpartiesView, CounterpartyBasicInfo, CounterpartyDetail_default as CounterpartyDetail, CounterpartyDetailView, CounterpartyProfileCard, CounterpartyRecordsCard, CounterpartyTypeBadge, Create_default as CreateBusiness, CreateBusinessView, Create_default2 as CreateCounterparty, CreateCounterpartyView, Create_default3 as CreateIndividual, CreateVelocityLimit, Dashboard_default as Dashboard, DashboardDemo, DataGrid, DataTable, DetailPageLayout, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, EditableFormCard, EditableInfoField, EnhancedInput, EnhancedSelect, EnhancedTextarea, EntityCard, FormCard, FormField, FormInput, FormProvider, FormSection, FormSelect, IndividualDetail_default as IndividualDetail, Individuals_default as Individuals, InfoField, IntermediaryCard, IntermediaryFI, IntermediaryFIAddress, JsonViewer, Label, ListPage, MainLayout, MetricCard, NewTransaction, NewTransactionView, NotFound_default as NotFound, OFACAlertView, OriginatorCard, OriginatorFI, OriginatorFIAddress, PageLayout, PatternLibrary, PaymentInformationSection, Popover, PopoverContent, PopoverTrigger, ReceiverCard, ReconExceptions, ReconUpload, ResolveAlertDialog, ResponsiveGrid, ScrollArea, ScrollBar, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Stack, Statement, StatementHeader, StatementView, StatusBadge, TRANSACTION_TYPES, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, Toaster, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TransactionDetail_default as TransactionDetail, TransactionHistory_default as TransactionHistory, TransactionTypeBadge, UIKit, UIKitShowcase, VelocityLimitDetail, VelocityLimits, WireDetailsSection, WireTransferSection, badgeVariants, buttonVariants, cardVariants, downloadCSV, generateStatementCSV, inputVariants, newTransactionSchema, reducer, textareaVariants, toast, useAlertDetail, useCounterpartyEntity, useEditState, useFormWithEditState, useIsMobile, useSidebar, useToast };
|
|
16352
16334
|
//# sourceMappingURL=index.js.map
|
|
16353
16335
|
//# sourceMappingURL=index.js.map
|