braid-ui 1.0.45 → 1.0.47
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 +474 -471
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -1
- package/dist/index.d.ts +11 -1
- package/dist/index.js +474 -472
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -5840,6 +5840,7 @@ var CounterpartyProfileCard = ({
|
|
|
5840
5840
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5841
5841
|
FormSelect,
|
|
5842
5842
|
{
|
|
5843
|
+
disabled: true,
|
|
5843
5844
|
name: "idType",
|
|
5844
5845
|
label: "Associated with",
|
|
5845
5846
|
placeholder: "Select association type",
|
|
@@ -5854,6 +5855,7 @@ var CounterpartyProfileCard = ({
|
|
|
5854
5855
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5855
5856
|
FormInput,
|
|
5856
5857
|
{
|
|
5858
|
+
disabled: true,
|
|
5857
5859
|
name: "idValue",
|
|
5858
5860
|
label: form.watch("idType") === "product_id" ? "Product ID" : form.watch("idType") === "business_id" ? "Business ID" : form.watch("idType") === "individual_id" ? "Individual ID" : "Account Number",
|
|
5859
5861
|
placeholder: "Enter ID value"
|
|
@@ -6305,6 +6307,447 @@ var CounterpartyDetailView = ({
|
|
|
6305
6307
|
}
|
|
6306
6308
|
);
|
|
6307
6309
|
};
|
|
6310
|
+
var SimpleACHForm = () => {
|
|
6311
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
|
|
6312
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6313
|
+
EnhancedInput,
|
|
6314
|
+
{
|
|
6315
|
+
label: "Routing Number",
|
|
6316
|
+
placeholder: "Enter 9-digit routing number",
|
|
6317
|
+
pattern: "[0-9]{9}",
|
|
6318
|
+
maxLength: 9,
|
|
6319
|
+
hint: "9-digit routing number",
|
|
6320
|
+
required: true
|
|
6321
|
+
}
|
|
6322
|
+
),
|
|
6323
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6324
|
+
EnhancedInput,
|
|
6325
|
+
{
|
|
6326
|
+
label: "Account Number",
|
|
6327
|
+
placeholder: "Enter account number",
|
|
6328
|
+
required: true
|
|
6329
|
+
}
|
|
6330
|
+
),
|
|
6331
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6332
|
+
EnhancedSelect,
|
|
6333
|
+
{
|
|
6334
|
+
label: "Account Type",
|
|
6335
|
+
placeholder: "Select account type",
|
|
6336
|
+
options: [
|
|
6337
|
+
{ value: "checking", label: "Checking" },
|
|
6338
|
+
{ value: "savings", label: "Savings" }
|
|
6339
|
+
]
|
|
6340
|
+
}
|
|
6341
|
+
)
|
|
6342
|
+
] });
|
|
6343
|
+
};
|
|
6344
|
+
var SimpleWireForm = () => {
|
|
6345
|
+
const [wireType, setWireType] = React15.useState("domestic");
|
|
6346
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
|
|
6347
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6348
|
+
EnhancedSelect,
|
|
6349
|
+
{
|
|
6350
|
+
label: "Wire Type",
|
|
6351
|
+
placeholder: "Select wire type",
|
|
6352
|
+
value: wireType,
|
|
6353
|
+
onValueChange: setWireType,
|
|
6354
|
+
options: [
|
|
6355
|
+
{ value: "domestic", label: "Domestic" },
|
|
6356
|
+
{ value: "international", label: "International" }
|
|
6357
|
+
]
|
|
6358
|
+
}
|
|
6359
|
+
),
|
|
6360
|
+
wireType === "domestic" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
6361
|
+
EnhancedInput,
|
|
6362
|
+
{
|
|
6363
|
+
label: "Routing Number",
|
|
6364
|
+
placeholder: "Enter 9-digit routing number",
|
|
6365
|
+
pattern: "[0-9]{9}",
|
|
6366
|
+
maxLength: 9,
|
|
6367
|
+
hint: "9-digit routing number",
|
|
6368
|
+
required: true
|
|
6369
|
+
}
|
|
6370
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
6371
|
+
EnhancedInput,
|
|
6372
|
+
{
|
|
6373
|
+
label: "BIC Number",
|
|
6374
|
+
placeholder: "Enter BIC/SWIFT code",
|
|
6375
|
+
hint: "Bank Identifier Code",
|
|
6376
|
+
required: true
|
|
6377
|
+
}
|
|
6378
|
+
),
|
|
6379
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6380
|
+
EnhancedInput,
|
|
6381
|
+
{
|
|
6382
|
+
label: "Account Number",
|
|
6383
|
+
placeholder: "Enter account number",
|
|
6384
|
+
required: true
|
|
6385
|
+
}
|
|
6386
|
+
)
|
|
6387
|
+
] }) });
|
|
6388
|
+
};
|
|
6389
|
+
var PaymentInformationSection = ({ onPaymentMethodsChange } = {}) => {
|
|
6390
|
+
const [paymentMethods, setPaymentMethods] = React15.useState([]);
|
|
6391
|
+
const [showAddMenu, setShowAddMenu] = React15.useState(false);
|
|
6392
|
+
const addPaymentMethod = (type) => {
|
|
6393
|
+
const newMethod = {
|
|
6394
|
+
id: `${type}-${Date.now()}`,
|
|
6395
|
+
type,
|
|
6396
|
+
name: type === "ach" ? "ACH Payment" : "Wire Transfer",
|
|
6397
|
+
collapsed: false
|
|
6398
|
+
};
|
|
6399
|
+
const updatedMethods = [...paymentMethods, newMethod];
|
|
6400
|
+
setPaymentMethods(updatedMethods);
|
|
6401
|
+
onPaymentMethodsChange?.(updatedMethods);
|
|
6402
|
+
setShowAddMenu(false);
|
|
6403
|
+
};
|
|
6404
|
+
const removePaymentMethod = (id) => {
|
|
6405
|
+
const updatedMethods = paymentMethods.filter((method) => method.id !== id);
|
|
6406
|
+
setPaymentMethods(updatedMethods);
|
|
6407
|
+
onPaymentMethodsChange?.(updatedMethods);
|
|
6408
|
+
};
|
|
6409
|
+
const toggleCollapse = (id) => {
|
|
6410
|
+
setPaymentMethods(paymentMethods.map(
|
|
6411
|
+
(method) => method.id === id ? { ...method, collapsed: !method.collapsed } : method
|
|
6412
|
+
));
|
|
6413
|
+
};
|
|
6414
|
+
const renderPaymentMethodContent = (method) => {
|
|
6415
|
+
if (method.type === "ach") {
|
|
6416
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SimpleACHForm, {});
|
|
6417
|
+
} else {
|
|
6418
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SimpleWireForm, {});
|
|
6419
|
+
}
|
|
6420
|
+
};
|
|
6421
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
|
|
6422
|
+
paymentMethods.map((method) => /* @__PURE__ */ jsxRuntime.jsxs(Card, { className: "relative", children: [
|
|
6423
|
+
/* @__PURE__ */ jsxRuntime.jsx(CardHeader, { className: "pb-3", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
6424
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
6425
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6426
|
+
Button,
|
|
6427
|
+
{
|
|
6428
|
+
variant: "ghost",
|
|
6429
|
+
size: "icon",
|
|
6430
|
+
onClick: () => toggleCollapse(method.id),
|
|
6431
|
+
className: "h-6 w-6",
|
|
6432
|
+
children: method.collapsed ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUp, { className: "h-4 w-4" })
|
|
6433
|
+
}
|
|
6434
|
+
),
|
|
6435
|
+
/* @__PURE__ */ jsxRuntime.jsx(CardTitle, { className: "text-base", children: method.name }),
|
|
6436
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs bg-muted px-2 py-1 rounded-md uppercase font-medium", children: method.type })
|
|
6437
|
+
] }),
|
|
6438
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6439
|
+
Button,
|
|
6440
|
+
{
|
|
6441
|
+
variant: "ghost",
|
|
6442
|
+
size: "icon",
|
|
6443
|
+
onClick: () => removePaymentMethod(method.id),
|
|
6444
|
+
className: "h-6 w-6 text-destructive hover:text-destructive/80 hover:bg-destructive/10",
|
|
6445
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { className: "h-4 w-4" })
|
|
6446
|
+
}
|
|
6447
|
+
)
|
|
6448
|
+
] }) }),
|
|
6449
|
+
!method.collapsed && /* @__PURE__ */ jsxRuntime.jsx(CardContent, { children: renderPaymentMethodContent(method) })
|
|
6450
|
+
] }, method.id)),
|
|
6451
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
6452
|
+
paymentMethods.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground mb-2", children: "At least one payment method is required *" }),
|
|
6453
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6454
|
+
Button,
|
|
6455
|
+
{
|
|
6456
|
+
variant: "outline",
|
|
6457
|
+
onClick: () => setShowAddMenu(!showAddMenu),
|
|
6458
|
+
className: "w-full border-dashed",
|
|
6459
|
+
children: [
|
|
6460
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "h-4 w-4 mr-2" }),
|
|
6461
|
+
"Add Payment Information"
|
|
6462
|
+
]
|
|
6463
|
+
}
|
|
6464
|
+
),
|
|
6465
|
+
showAddMenu && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-full left-0 right-0 mt-2 bg-background border border-border rounded-md shadow-lg z-10", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-2 space-y-1", children: [
|
|
6466
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6467
|
+
Button,
|
|
6468
|
+
{
|
|
6469
|
+
variant: "ghost",
|
|
6470
|
+
onClick: () => addPaymentMethod("ach"),
|
|
6471
|
+
className: "w-full justify-start",
|
|
6472
|
+
children: "Add ACH Payment"
|
|
6473
|
+
}
|
|
6474
|
+
),
|
|
6475
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6476
|
+
Button,
|
|
6477
|
+
{
|
|
6478
|
+
variant: "ghost",
|
|
6479
|
+
onClick: () => addPaymentMethod("wire"),
|
|
6480
|
+
className: "w-full justify-start",
|
|
6481
|
+
children: "Add Wire Transfer"
|
|
6482
|
+
}
|
|
6483
|
+
)
|
|
6484
|
+
] }) })
|
|
6485
|
+
] })
|
|
6486
|
+
] });
|
|
6487
|
+
};
|
|
6488
|
+
var AddressForm = ({
|
|
6489
|
+
title,
|
|
6490
|
+
description,
|
|
6491
|
+
fieldPrefix = "",
|
|
6492
|
+
showAddressType = true,
|
|
6493
|
+
addressTypeOptions = ADDRESS_TYPE_OPTIONS.FI,
|
|
6494
|
+
fieldOverrides = {},
|
|
6495
|
+
showApartment = false
|
|
6496
|
+
}) => {
|
|
6497
|
+
const addressTypeLabel = fieldPrefix ? `${fieldPrefix} Address Type` : "Address Type";
|
|
6498
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-6", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
|
|
6499
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6500
|
+
EnhancedInput,
|
|
6501
|
+
{
|
|
6502
|
+
label: "Street Address",
|
|
6503
|
+
placeholder: "Enter street address",
|
|
6504
|
+
hint: fieldPrefix ? `${fieldPrefix} street address` : "Primary street address",
|
|
6505
|
+
...fieldOverrides.streetAddress
|
|
6506
|
+
}
|
|
6507
|
+
),
|
|
6508
|
+
showApartment && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6509
|
+
EnhancedInput,
|
|
6510
|
+
{
|
|
6511
|
+
label: "Apt, Building etc",
|
|
6512
|
+
placeholder: "Additional address information",
|
|
6513
|
+
hint: "Additional address information",
|
|
6514
|
+
...fieldOverrides.apartment
|
|
6515
|
+
}
|
|
6516
|
+
),
|
|
6517
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6518
|
+
EnhancedInput,
|
|
6519
|
+
{
|
|
6520
|
+
label: "City",
|
|
6521
|
+
placeholder: "Enter city",
|
|
6522
|
+
required: true,
|
|
6523
|
+
...fieldOverrides.city
|
|
6524
|
+
}
|
|
6525
|
+
),
|
|
6526
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6527
|
+
EnhancedInput,
|
|
6528
|
+
{
|
|
6529
|
+
label: "State",
|
|
6530
|
+
placeholder: "Enter state",
|
|
6531
|
+
hint: "State or province",
|
|
6532
|
+
...fieldOverrides.state
|
|
6533
|
+
}
|
|
6534
|
+
),
|
|
6535
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6536
|
+
EnhancedInput,
|
|
6537
|
+
{
|
|
6538
|
+
label: "Postal Code",
|
|
6539
|
+
placeholder: "12345",
|
|
6540
|
+
...fieldOverrides.postalCode
|
|
6541
|
+
}
|
|
6542
|
+
),
|
|
6543
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6544
|
+
EnhancedSelect,
|
|
6545
|
+
{
|
|
6546
|
+
label: "Country Code",
|
|
6547
|
+
placeholder: "Select country",
|
|
6548
|
+
options: COUNTRY_OPTIONS
|
|
6549
|
+
}
|
|
6550
|
+
),
|
|
6551
|
+
showAddressType && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6552
|
+
EnhancedSelect,
|
|
6553
|
+
{
|
|
6554
|
+
label: addressTypeLabel,
|
|
6555
|
+
placeholder: "Select type",
|
|
6556
|
+
options: addressTypeOptions
|
|
6557
|
+
}
|
|
6558
|
+
)
|
|
6559
|
+
] }) });
|
|
6560
|
+
};
|
|
6561
|
+
var labelVariants = classVarianceAuthority.cva(
|
|
6562
|
+
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
6563
|
+
);
|
|
6564
|
+
var Label = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
6565
|
+
LabelPrimitive__namespace.Root,
|
|
6566
|
+
{
|
|
6567
|
+
ref,
|
|
6568
|
+
className: cn(labelVariants(), className),
|
|
6569
|
+
...props
|
|
6570
|
+
}
|
|
6571
|
+
));
|
|
6572
|
+
Label.displayName = LabelPrimitive__namespace.Root.displayName;
|
|
6573
|
+
var CounterpartyBasicInfo = ({ value = {
|
|
6574
|
+
name: "",
|
|
6575
|
+
type: "business",
|
|
6576
|
+
email: "",
|
|
6577
|
+
phone: "",
|
|
6578
|
+
dateOfBirth: "",
|
|
6579
|
+
idNumber: "",
|
|
6580
|
+
idType: "product_id",
|
|
6581
|
+
idValue: ""
|
|
6582
|
+
}, onDataChange }) => {
|
|
6583
|
+
const handleInputChange = (field, newValue) => {
|
|
6584
|
+
const updatedData = { ...value, [field]: newValue };
|
|
6585
|
+
onDataChange?.(updatedData);
|
|
6586
|
+
};
|
|
6587
|
+
const handleTypeChange = (type) => {
|
|
6588
|
+
handleInputChange("type", type);
|
|
6589
|
+
};
|
|
6590
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
|
|
6591
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
|
|
6592
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6593
|
+
EnhancedInput,
|
|
6594
|
+
{
|
|
6595
|
+
label: "Counterparty Name",
|
|
6596
|
+
value: value.name,
|
|
6597
|
+
onChange: (e) => handleInputChange("name", e.target.value),
|
|
6598
|
+
placeholder: "Enter counterparty name",
|
|
6599
|
+
required: true
|
|
6600
|
+
}
|
|
6601
|
+
),
|
|
6602
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
6603
|
+
/* @__PURE__ */ jsxRuntime.jsx(Label, { className: "text-sm font-medium", children: "Counterparty Type" }),
|
|
6604
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-6 h-10 items-center", children: [
|
|
6605
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center space-x-2 cursor-pointer", children: [
|
|
6606
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6607
|
+
"input",
|
|
6608
|
+
{
|
|
6609
|
+
type: "radio",
|
|
6610
|
+
name: "counterpartyType",
|
|
6611
|
+
value: "business",
|
|
6612
|
+
checked: value.type === "business",
|
|
6613
|
+
onChange: () => handleTypeChange("business"),
|
|
6614
|
+
className: "w-4 h-4 text-primary border-border focus:ring-primary focus:ring-2"
|
|
6615
|
+
}
|
|
6616
|
+
),
|
|
6617
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-foreground", children: "Business" })
|
|
6618
|
+
] }),
|
|
6619
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center space-x-2 cursor-pointer", children: [
|
|
6620
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6621
|
+
"input",
|
|
6622
|
+
{
|
|
6623
|
+
type: "radio",
|
|
6624
|
+
name: "counterpartyType",
|
|
6625
|
+
value: "individual",
|
|
6626
|
+
checked: value.type === "individual",
|
|
6627
|
+
onChange: () => handleTypeChange("individual"),
|
|
6628
|
+
className: "w-4 h-4 text-primary border-border focus:ring-primary focus:ring-2"
|
|
6629
|
+
}
|
|
6630
|
+
),
|
|
6631
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-foreground", children: "Individual" })
|
|
6632
|
+
] })
|
|
6633
|
+
] })
|
|
6634
|
+
] }),
|
|
6635
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6636
|
+
EnhancedSelect,
|
|
6637
|
+
{
|
|
6638
|
+
label: "Associated with",
|
|
6639
|
+
value: value.idType,
|
|
6640
|
+
onValueChange: (val) => handleInputChange("idType", val),
|
|
6641
|
+
options: [
|
|
6642
|
+
{ value: "product_id", label: "Product ID" },
|
|
6643
|
+
{ value: "business_id", label: "Business ID" },
|
|
6644
|
+
{ value: "individual_id", label: "Individual ID" },
|
|
6645
|
+
{ value: "account_number", label: "Account Number" }
|
|
6646
|
+
]
|
|
6647
|
+
}
|
|
6648
|
+
),
|
|
6649
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6650
|
+
EnhancedInput,
|
|
6651
|
+
{
|
|
6652
|
+
label: value.idType === "product_id" ? "Product ID" : value.idType === "business_id" ? "Business ID" : value.idType === "individual_id" ? "Individual ID" : "Account Number",
|
|
6653
|
+
value: value.idValue,
|
|
6654
|
+
onChange: (e) => handleInputChange("idValue", e.target.value),
|
|
6655
|
+
placeholder: `Enter ${value.idType === "product_id" ? "product ID" : value.idType === "business_id" ? "business ID" : value.idType === "individual_id" ? "individual ID" : "account number"}`,
|
|
6656
|
+
required: true
|
|
6657
|
+
}
|
|
6658
|
+
)
|
|
6659
|
+
] }),
|
|
6660
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
|
|
6661
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6662
|
+
EnhancedInput,
|
|
6663
|
+
{
|
|
6664
|
+
label: "Email",
|
|
6665
|
+
type: "email",
|
|
6666
|
+
value: value.email,
|
|
6667
|
+
onChange: (e) => handleInputChange("email", e.target.value),
|
|
6668
|
+
placeholder: "Enter email address"
|
|
6669
|
+
}
|
|
6670
|
+
),
|
|
6671
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6672
|
+
EnhancedInput,
|
|
6673
|
+
{
|
|
6674
|
+
label: "Phone Number",
|
|
6675
|
+
type: "tel",
|
|
6676
|
+
value: value.phone,
|
|
6677
|
+
onChange: (e) => handleInputChange("phone", e.target.value),
|
|
6678
|
+
placeholder: "Enter phone number"
|
|
6679
|
+
}
|
|
6680
|
+
),
|
|
6681
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6682
|
+
EnhancedInput,
|
|
6683
|
+
{
|
|
6684
|
+
label: "Date of Birth",
|
|
6685
|
+
type: "date",
|
|
6686
|
+
value: value.dateOfBirth,
|
|
6687
|
+
onChange: (e) => handleInputChange("dateOfBirth", e.target.value),
|
|
6688
|
+
placeholder: "Select date of birth"
|
|
6689
|
+
}
|
|
6690
|
+
),
|
|
6691
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6692
|
+
EnhancedInput,
|
|
6693
|
+
{
|
|
6694
|
+
label: "ID Number",
|
|
6695
|
+
value: value.idNumber,
|
|
6696
|
+
onChange: (e) => handleInputChange("idNumber", e.target.value),
|
|
6697
|
+
placeholder: "Enter ID number"
|
|
6698
|
+
}
|
|
6699
|
+
)
|
|
6700
|
+
] })
|
|
6701
|
+
] });
|
|
6702
|
+
};
|
|
6703
|
+
var CreateCounterpartyView = ({
|
|
6704
|
+
counterpartyData,
|
|
6705
|
+
paymentMethods,
|
|
6706
|
+
onPaymentMethodsChange,
|
|
6707
|
+
onBasicInfoChange,
|
|
6708
|
+
onCancel,
|
|
6709
|
+
onSubmit
|
|
6710
|
+
}) => {
|
|
6711
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6712
|
+
PageLayout,
|
|
6713
|
+
{
|
|
6714
|
+
title: "Create Counterparty",
|
|
6715
|
+
description: "Create a new counterparty with all required information",
|
|
6716
|
+
actions: [
|
|
6717
|
+
{ label: "Cancel", variant: "outline", onClick: onCancel },
|
|
6718
|
+
{ label: "Create Counterparty", variant: "default", onClick: onSubmit }
|
|
6719
|
+
],
|
|
6720
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
|
|
6721
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Card, { children: [
|
|
6722
|
+
/* @__PURE__ */ jsxRuntime.jsx(CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(CardTitle, { children: "Basic Information" }) }),
|
|
6723
|
+
/* @__PURE__ */ jsxRuntime.jsx(CardContent, { children: /* @__PURE__ */ jsxRuntime.jsx(CounterpartyBasicInfo, { value: counterpartyData, onDataChange: onBasicInfoChange }) })
|
|
6724
|
+
] }),
|
|
6725
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Card, { children: [
|
|
6726
|
+
/* @__PURE__ */ jsxRuntime.jsx(CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(CardTitle, { children: [
|
|
6727
|
+
"Address",
|
|
6728
|
+
paymentMethods.some((m) => m.type === "wire") && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-destructive ml-1", children: "*" })
|
|
6729
|
+
] }) }),
|
|
6730
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CardContent, { children: [
|
|
6731
|
+
paymentMethods.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground mb-4", children: "Optional for ACH payments, required for wire transfers" }),
|
|
6732
|
+
paymentMethods.some((m) => m.type === "wire") && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground mb-4", children: "Required because you have wire payment methods" }),
|
|
6733
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6734
|
+
AddressForm,
|
|
6735
|
+
{
|
|
6736
|
+
title: "",
|
|
6737
|
+
description: "",
|
|
6738
|
+
showApartment: true
|
|
6739
|
+
}
|
|
6740
|
+
)
|
|
6741
|
+
] })
|
|
6742
|
+
] }),
|
|
6743
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Card, { children: [
|
|
6744
|
+
/* @__PURE__ */ jsxRuntime.jsx(CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(CardTitle, { children: "Payment Configuration" }) }),
|
|
6745
|
+
/* @__PURE__ */ jsxRuntime.jsx(CardContent, { children: /* @__PURE__ */ jsxRuntime.jsx(PaymentInformationSection, { onPaymentMethodsChange }) })
|
|
6746
|
+
] })
|
|
6747
|
+
] })
|
|
6748
|
+
}
|
|
6749
|
+
);
|
|
6750
|
+
};
|
|
6308
6751
|
|
|
6309
6752
|
// src/lib/mock-data/banking-data.ts
|
|
6310
6753
|
var defaultACHBankDetails = {
|
|
@@ -6590,79 +7033,6 @@ var ACHTransferSection = ({ isEditing, onToggleEdit, className, hideActions }) =
|
|
|
6590
7033
|
}
|
|
6591
7034
|
);
|
|
6592
7035
|
};
|
|
6593
|
-
var AddressForm = ({
|
|
6594
|
-
title,
|
|
6595
|
-
description,
|
|
6596
|
-
fieldPrefix = "",
|
|
6597
|
-
showAddressType = true,
|
|
6598
|
-
addressTypeOptions = ADDRESS_TYPE_OPTIONS.FI,
|
|
6599
|
-
fieldOverrides = {},
|
|
6600
|
-
showApartment = false
|
|
6601
|
-
}) => {
|
|
6602
|
-
const addressTypeLabel = fieldPrefix ? `${fieldPrefix} Address Type` : "Address Type";
|
|
6603
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-6", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
|
|
6604
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6605
|
-
EnhancedInput,
|
|
6606
|
-
{
|
|
6607
|
-
label: "Street Address",
|
|
6608
|
-
placeholder: "Enter street address",
|
|
6609
|
-
hint: fieldPrefix ? `${fieldPrefix} street address` : "Primary street address",
|
|
6610
|
-
...fieldOverrides.streetAddress
|
|
6611
|
-
}
|
|
6612
|
-
),
|
|
6613
|
-
showApartment && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6614
|
-
EnhancedInput,
|
|
6615
|
-
{
|
|
6616
|
-
label: "Apt, Building etc",
|
|
6617
|
-
placeholder: "Additional address information",
|
|
6618
|
-
hint: "Additional address information",
|
|
6619
|
-
...fieldOverrides.apartment
|
|
6620
|
-
}
|
|
6621
|
-
),
|
|
6622
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6623
|
-
EnhancedInput,
|
|
6624
|
-
{
|
|
6625
|
-
label: "City",
|
|
6626
|
-
placeholder: "Enter city",
|
|
6627
|
-
required: true,
|
|
6628
|
-
...fieldOverrides.city
|
|
6629
|
-
}
|
|
6630
|
-
),
|
|
6631
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6632
|
-
EnhancedInput,
|
|
6633
|
-
{
|
|
6634
|
-
label: "State",
|
|
6635
|
-
placeholder: "Enter state",
|
|
6636
|
-
hint: "State or province",
|
|
6637
|
-
...fieldOverrides.state
|
|
6638
|
-
}
|
|
6639
|
-
),
|
|
6640
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6641
|
-
EnhancedInput,
|
|
6642
|
-
{
|
|
6643
|
-
label: "Postal Code",
|
|
6644
|
-
placeholder: "12345",
|
|
6645
|
-
...fieldOverrides.postalCode
|
|
6646
|
-
}
|
|
6647
|
-
),
|
|
6648
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6649
|
-
EnhancedSelect,
|
|
6650
|
-
{
|
|
6651
|
-
label: "Country Code",
|
|
6652
|
-
placeholder: "Select country",
|
|
6653
|
-
options: COUNTRY_OPTIONS
|
|
6654
|
-
}
|
|
6655
|
-
),
|
|
6656
|
-
showAddressType && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6657
|
-
EnhancedSelect,
|
|
6658
|
-
{
|
|
6659
|
-
label: addressTypeLabel,
|
|
6660
|
-
placeholder: "Select type",
|
|
6661
|
-
options: addressTypeOptions
|
|
6662
|
-
}
|
|
6663
|
-
)
|
|
6664
|
-
] }) });
|
|
6665
|
-
};
|
|
6666
7036
|
var BankingDetailsCard = ({ isEditing, onToggleEdit, className }) => {
|
|
6667
7037
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6668
7038
|
FormCard,
|
|
@@ -6951,178 +7321,36 @@ var ContactInfoCard = ({ isEditing, onToggleEdit, className }) => {
|
|
|
6951
7321
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
6952
7322
|
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "First Name", value: "", layout: "horizontal" }),
|
|
6953
7323
|
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "Last Name", value: "", layout: "horizontal" })
|
|
6954
|
-
] }),
|
|
6955
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
6956
|
-
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "Email", value: "", layout: "horizontal" }),
|
|
6957
|
-
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "Phone Number", value: "", layout: "horizontal" })
|
|
6958
|
-
] }),
|
|
6959
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-medium text-muted-foreground mt-6", children: "Mailing Address" }),
|
|
6960
|
-
isEditing ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
6961
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3", children: [
|
|
6962
|
-
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "Street Address", value: "", layout: "horizontal" }),
|
|
6963
|
-
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "Apartment, suite, or floor", value: "", layout: "horizontal" })
|
|
6964
|
-
] }),
|
|
6965
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
6966
|
-
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "City", value: "", layout: "horizontal" }),
|
|
6967
|
-
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "State", value: "Alabama", layout: "horizontal" })
|
|
6968
|
-
] }),
|
|
6969
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
6970
|
-
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "Postal Code", value: "", layout: "horizontal" }),
|
|
6971
|
-
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "Country Code", value: "US", layout: "horizontal" })
|
|
6972
|
-
] })
|
|
6973
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
6974
|
-
InfoField,
|
|
6975
|
-
{
|
|
6976
|
-
label: "Address",
|
|
6977
|
-
value: "123 Business Avenue, Suite 100, New York, NY 10001, US",
|
|
6978
|
-
layout: "horizontal"
|
|
6979
|
-
}
|
|
6980
|
-
)
|
|
6981
|
-
] })
|
|
6982
|
-
}
|
|
6983
|
-
);
|
|
6984
|
-
};
|
|
6985
|
-
var labelVariants = classVarianceAuthority.cva(
|
|
6986
|
-
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
6987
|
-
);
|
|
6988
|
-
var Label = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
6989
|
-
LabelPrimitive__namespace.Root,
|
|
6990
|
-
{
|
|
6991
|
-
ref,
|
|
6992
|
-
className: cn(labelVariants(), className),
|
|
6993
|
-
...props
|
|
6994
|
-
}
|
|
6995
|
-
));
|
|
6996
|
-
Label.displayName = LabelPrimitive__namespace.Root.displayName;
|
|
6997
|
-
var CounterpartyBasicInfo = ({ value = {
|
|
6998
|
-
name: "",
|
|
6999
|
-
type: "business",
|
|
7000
|
-
email: "",
|
|
7001
|
-
phone: "",
|
|
7002
|
-
dateOfBirth: "",
|
|
7003
|
-
idNumber: "",
|
|
7004
|
-
idType: "product_id",
|
|
7005
|
-
idValue: ""
|
|
7006
|
-
}, onDataChange }) => {
|
|
7007
|
-
const handleInputChange = (field, newValue) => {
|
|
7008
|
-
const updatedData = { ...value, [field]: newValue };
|
|
7009
|
-
onDataChange?.(updatedData);
|
|
7010
|
-
};
|
|
7011
|
-
const handleTypeChange = (type) => {
|
|
7012
|
-
handleInputChange("type", type);
|
|
7013
|
-
};
|
|
7014
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
|
|
7015
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
|
|
7016
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7017
|
-
EnhancedInput,
|
|
7018
|
-
{
|
|
7019
|
-
label: "Counterparty Name",
|
|
7020
|
-
value: value.name,
|
|
7021
|
-
onChange: (e) => handleInputChange("name", e.target.value),
|
|
7022
|
-
placeholder: "Enter counterparty name",
|
|
7023
|
-
required: true
|
|
7024
|
-
}
|
|
7025
|
-
),
|
|
7026
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
7027
|
-
/* @__PURE__ */ jsxRuntime.jsx(Label, { className: "text-sm font-medium", children: "Counterparty Type" }),
|
|
7028
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-6 h-10 items-center", children: [
|
|
7029
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center space-x-2 cursor-pointer", children: [
|
|
7030
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7031
|
-
"input",
|
|
7032
|
-
{
|
|
7033
|
-
type: "radio",
|
|
7034
|
-
name: "counterpartyType",
|
|
7035
|
-
value: "business",
|
|
7036
|
-
checked: value.type === "business",
|
|
7037
|
-
onChange: () => handleTypeChange("business"),
|
|
7038
|
-
className: "w-4 h-4 text-primary border-border focus:ring-primary focus:ring-2"
|
|
7039
|
-
}
|
|
7040
|
-
),
|
|
7041
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-foreground", children: "Business" })
|
|
7042
|
-
] }),
|
|
7043
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center space-x-2 cursor-pointer", children: [
|
|
7044
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7045
|
-
"input",
|
|
7046
|
-
{
|
|
7047
|
-
type: "radio",
|
|
7048
|
-
name: "counterpartyType",
|
|
7049
|
-
value: "individual",
|
|
7050
|
-
checked: value.type === "individual",
|
|
7051
|
-
onChange: () => handleTypeChange("individual"),
|
|
7052
|
-
className: "w-4 h-4 text-primary border-border focus:ring-primary focus:ring-2"
|
|
7053
|
-
}
|
|
7054
|
-
),
|
|
7055
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-foreground", children: "Individual" })
|
|
7056
|
-
] })
|
|
7057
|
-
] })
|
|
7058
|
-
] }),
|
|
7059
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7060
|
-
EnhancedSelect,
|
|
7061
|
-
{
|
|
7062
|
-
label: "Associated with",
|
|
7063
|
-
value: value.idType,
|
|
7064
|
-
onValueChange: (val) => handleInputChange("idType", val),
|
|
7065
|
-
options: [
|
|
7066
|
-
{ value: "product_id", label: "Product ID" },
|
|
7067
|
-
{ value: "business_id", label: "Business ID" },
|
|
7068
|
-
{ value: "individual_id", label: "Individual ID" },
|
|
7069
|
-
{ value: "account_number", label: "Account Number" }
|
|
7070
|
-
]
|
|
7071
|
-
}
|
|
7072
|
-
),
|
|
7073
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7074
|
-
EnhancedInput,
|
|
7075
|
-
{
|
|
7076
|
-
label: value.idType === "product_id" ? "Product ID" : value.idType === "business_id" ? "Business ID" : value.idType === "individual_id" ? "Individual ID" : "Account Number",
|
|
7077
|
-
value: value.idValue,
|
|
7078
|
-
onChange: (e) => handleInputChange("idValue", e.target.value),
|
|
7079
|
-
placeholder: `Enter ${value.idType === "product_id" ? "product ID" : value.idType === "business_id" ? "business ID" : value.idType === "individual_id" ? "individual ID" : "account number"}`,
|
|
7080
|
-
required: true
|
|
7081
|
-
}
|
|
7082
|
-
)
|
|
7083
|
-
] }),
|
|
7084
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
|
|
7085
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7086
|
-
EnhancedInput,
|
|
7087
|
-
{
|
|
7088
|
-
label: "Email",
|
|
7089
|
-
type: "email",
|
|
7090
|
-
value: value.email,
|
|
7091
|
-
onChange: (e) => handleInputChange("email", e.target.value),
|
|
7092
|
-
placeholder: "Enter email address"
|
|
7093
|
-
}
|
|
7094
|
-
),
|
|
7095
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7096
|
-
EnhancedInput,
|
|
7097
|
-
{
|
|
7098
|
-
label: "Phone Number",
|
|
7099
|
-
type: "tel",
|
|
7100
|
-
value: value.phone,
|
|
7101
|
-
onChange: (e) => handleInputChange("phone", e.target.value),
|
|
7102
|
-
placeholder: "Enter phone number"
|
|
7103
|
-
}
|
|
7104
|
-
),
|
|
7105
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7106
|
-
EnhancedInput,
|
|
7107
|
-
{
|
|
7108
|
-
label: "Date of Birth",
|
|
7109
|
-
type: "date",
|
|
7110
|
-
value: value.dateOfBirth,
|
|
7111
|
-
onChange: (e) => handleInputChange("dateOfBirth", e.target.value),
|
|
7112
|
-
placeholder: "Select date of birth"
|
|
7113
|
-
}
|
|
7114
|
-
),
|
|
7115
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7116
|
-
EnhancedInput,
|
|
7117
|
-
{
|
|
7118
|
-
label: "ID Number",
|
|
7119
|
-
value: value.idNumber,
|
|
7120
|
-
onChange: (e) => handleInputChange("idNumber", e.target.value),
|
|
7121
|
-
placeholder: "Enter ID number"
|
|
7122
|
-
}
|
|
7123
|
-
)
|
|
7124
|
-
] })
|
|
7125
|
-
] });
|
|
7324
|
+
] }),
|
|
7325
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
7326
|
+
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "Email", value: "", layout: "horizontal" }),
|
|
7327
|
+
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "Phone Number", value: "", layout: "horizontal" })
|
|
7328
|
+
] }),
|
|
7329
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-medium text-muted-foreground mt-6", children: "Mailing Address" }),
|
|
7330
|
+
isEditing ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7331
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3", children: [
|
|
7332
|
+
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "Street Address", value: "", layout: "horizontal" }),
|
|
7333
|
+
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "Apartment, suite, or floor", value: "", layout: "horizontal" })
|
|
7334
|
+
] }),
|
|
7335
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
7336
|
+
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "City", value: "", layout: "horizontal" }),
|
|
7337
|
+
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "State", value: "Alabama", layout: "horizontal" })
|
|
7338
|
+
] }),
|
|
7339
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
7340
|
+
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "Postal Code", value: "", layout: "horizontal" }),
|
|
7341
|
+
/* @__PURE__ */ jsxRuntime.jsx(InfoField, { label: "Country Code", value: "US", layout: "horizontal" })
|
|
7342
|
+
] })
|
|
7343
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
7344
|
+
InfoField,
|
|
7345
|
+
{
|
|
7346
|
+
label: "Address",
|
|
7347
|
+
value: "123 Business Avenue, Suite 100, New York, NY 10001, US",
|
|
7348
|
+
layout: "horizontal"
|
|
7349
|
+
}
|
|
7350
|
+
)
|
|
7351
|
+
] })
|
|
7352
|
+
}
|
|
7353
|
+
);
|
|
7126
7354
|
};
|
|
7127
7355
|
var IntermediaryFI = () => {
|
|
7128
7356
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
|
|
@@ -7336,184 +7564,6 @@ var OriginatorCard = ({ isEditing, onToggleEdit, className, hideActions }) => {
|
|
|
7336
7564
|
}
|
|
7337
7565
|
);
|
|
7338
7566
|
};
|
|
7339
|
-
var SimpleACHForm = () => {
|
|
7340
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
|
|
7341
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7342
|
-
EnhancedInput,
|
|
7343
|
-
{
|
|
7344
|
-
label: "Routing Number",
|
|
7345
|
-
placeholder: "Enter 9-digit routing number",
|
|
7346
|
-
pattern: "[0-9]{9}",
|
|
7347
|
-
maxLength: 9,
|
|
7348
|
-
hint: "9-digit routing number",
|
|
7349
|
-
required: true
|
|
7350
|
-
}
|
|
7351
|
-
),
|
|
7352
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7353
|
-
EnhancedInput,
|
|
7354
|
-
{
|
|
7355
|
-
label: "Account Number",
|
|
7356
|
-
placeholder: "Enter account number",
|
|
7357
|
-
required: true
|
|
7358
|
-
}
|
|
7359
|
-
),
|
|
7360
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7361
|
-
EnhancedSelect,
|
|
7362
|
-
{
|
|
7363
|
-
label: "Account Type",
|
|
7364
|
-
placeholder: "Select account type",
|
|
7365
|
-
options: [
|
|
7366
|
-
{ value: "checking", label: "Checking" },
|
|
7367
|
-
{ value: "savings", label: "Savings" }
|
|
7368
|
-
]
|
|
7369
|
-
}
|
|
7370
|
-
)
|
|
7371
|
-
] });
|
|
7372
|
-
};
|
|
7373
|
-
var SimpleWireForm = () => {
|
|
7374
|
-
const [wireType, setWireType] = React15.useState("domestic");
|
|
7375
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
|
|
7376
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7377
|
-
EnhancedSelect,
|
|
7378
|
-
{
|
|
7379
|
-
label: "Wire Type",
|
|
7380
|
-
placeholder: "Select wire type",
|
|
7381
|
-
value: wireType,
|
|
7382
|
-
onValueChange: setWireType,
|
|
7383
|
-
options: [
|
|
7384
|
-
{ value: "domestic", label: "Domestic" },
|
|
7385
|
-
{ value: "international", label: "International" }
|
|
7386
|
-
]
|
|
7387
|
-
}
|
|
7388
|
-
),
|
|
7389
|
-
wireType === "domestic" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
7390
|
-
EnhancedInput,
|
|
7391
|
-
{
|
|
7392
|
-
label: "Routing Number",
|
|
7393
|
-
placeholder: "Enter 9-digit routing number",
|
|
7394
|
-
pattern: "[0-9]{9}",
|
|
7395
|
-
maxLength: 9,
|
|
7396
|
-
hint: "9-digit routing number",
|
|
7397
|
-
required: true
|
|
7398
|
-
}
|
|
7399
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
7400
|
-
EnhancedInput,
|
|
7401
|
-
{
|
|
7402
|
-
label: "BIC Number",
|
|
7403
|
-
placeholder: "Enter BIC/SWIFT code",
|
|
7404
|
-
hint: "Bank Identifier Code",
|
|
7405
|
-
required: true
|
|
7406
|
-
}
|
|
7407
|
-
),
|
|
7408
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7409
|
-
EnhancedInput,
|
|
7410
|
-
{
|
|
7411
|
-
label: "Account Number",
|
|
7412
|
-
placeholder: "Enter account number",
|
|
7413
|
-
required: true
|
|
7414
|
-
}
|
|
7415
|
-
)
|
|
7416
|
-
] }) });
|
|
7417
|
-
};
|
|
7418
|
-
var PaymentInformationSection = ({ onPaymentMethodsChange } = {}) => {
|
|
7419
|
-
const [paymentMethods, setPaymentMethods] = React15.useState([]);
|
|
7420
|
-
const [showAddMenu, setShowAddMenu] = React15.useState(false);
|
|
7421
|
-
const addPaymentMethod = (type) => {
|
|
7422
|
-
const newMethod = {
|
|
7423
|
-
id: `${type}-${Date.now()}`,
|
|
7424
|
-
type,
|
|
7425
|
-
name: type === "ach" ? "ACH Payment" : "Wire Transfer",
|
|
7426
|
-
collapsed: false
|
|
7427
|
-
};
|
|
7428
|
-
const updatedMethods = [...paymentMethods, newMethod];
|
|
7429
|
-
setPaymentMethods(updatedMethods);
|
|
7430
|
-
onPaymentMethodsChange?.(updatedMethods);
|
|
7431
|
-
setShowAddMenu(false);
|
|
7432
|
-
};
|
|
7433
|
-
const removePaymentMethod = (id) => {
|
|
7434
|
-
const updatedMethods = paymentMethods.filter((method) => method.id !== id);
|
|
7435
|
-
setPaymentMethods(updatedMethods);
|
|
7436
|
-
onPaymentMethodsChange?.(updatedMethods);
|
|
7437
|
-
};
|
|
7438
|
-
const toggleCollapse = (id) => {
|
|
7439
|
-
setPaymentMethods(paymentMethods.map(
|
|
7440
|
-
(method) => method.id === id ? { ...method, collapsed: !method.collapsed } : method
|
|
7441
|
-
));
|
|
7442
|
-
};
|
|
7443
|
-
const renderPaymentMethodContent = (method) => {
|
|
7444
|
-
if (method.type === "ach") {
|
|
7445
|
-
return /* @__PURE__ */ jsxRuntime.jsx(SimpleACHForm, {});
|
|
7446
|
-
} else {
|
|
7447
|
-
return /* @__PURE__ */ jsxRuntime.jsx(SimpleWireForm, {});
|
|
7448
|
-
}
|
|
7449
|
-
};
|
|
7450
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
|
|
7451
|
-
paymentMethods.map((method) => /* @__PURE__ */ jsxRuntime.jsxs(Card, { className: "relative", children: [
|
|
7452
|
-
/* @__PURE__ */ jsxRuntime.jsx(CardHeader, { className: "pb-3", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
7453
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
7454
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7455
|
-
Button,
|
|
7456
|
-
{
|
|
7457
|
-
variant: "ghost",
|
|
7458
|
-
size: "icon",
|
|
7459
|
-
onClick: () => toggleCollapse(method.id),
|
|
7460
|
-
className: "h-6 w-6",
|
|
7461
|
-
children: method.collapsed ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUp, { className: "h-4 w-4" })
|
|
7462
|
-
}
|
|
7463
|
-
),
|
|
7464
|
-
/* @__PURE__ */ jsxRuntime.jsx(CardTitle, { className: "text-base", children: method.name }),
|
|
7465
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs bg-muted px-2 py-1 rounded-md uppercase font-medium", children: method.type })
|
|
7466
|
-
] }),
|
|
7467
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7468
|
-
Button,
|
|
7469
|
-
{
|
|
7470
|
-
variant: "ghost",
|
|
7471
|
-
size: "icon",
|
|
7472
|
-
onClick: () => removePaymentMethod(method.id),
|
|
7473
|
-
className: "h-6 w-6 text-destructive hover:text-destructive/80 hover:bg-destructive/10",
|
|
7474
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { className: "h-4 w-4" })
|
|
7475
|
-
}
|
|
7476
|
-
)
|
|
7477
|
-
] }) }),
|
|
7478
|
-
!method.collapsed && /* @__PURE__ */ jsxRuntime.jsx(CardContent, { children: renderPaymentMethodContent(method) })
|
|
7479
|
-
] }, method.id)),
|
|
7480
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
7481
|
-
paymentMethods.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground mb-2", children: "At least one payment method is required *" }),
|
|
7482
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7483
|
-
Button,
|
|
7484
|
-
{
|
|
7485
|
-
variant: "outline",
|
|
7486
|
-
onClick: () => setShowAddMenu(!showAddMenu),
|
|
7487
|
-
className: "w-full border-dashed",
|
|
7488
|
-
children: [
|
|
7489
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "h-4 w-4 mr-2" }),
|
|
7490
|
-
"Add Payment Information"
|
|
7491
|
-
]
|
|
7492
|
-
}
|
|
7493
|
-
),
|
|
7494
|
-
showAddMenu && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-full left-0 right-0 mt-2 bg-background border border-border rounded-md shadow-lg z-10", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-2 space-y-1", children: [
|
|
7495
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7496
|
-
Button,
|
|
7497
|
-
{
|
|
7498
|
-
variant: "ghost",
|
|
7499
|
-
onClick: () => addPaymentMethod("ach"),
|
|
7500
|
-
className: "w-full justify-start",
|
|
7501
|
-
children: "Add ACH Payment"
|
|
7502
|
-
}
|
|
7503
|
-
),
|
|
7504
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7505
|
-
Button,
|
|
7506
|
-
{
|
|
7507
|
-
variant: "ghost",
|
|
7508
|
-
onClick: () => addPaymentMethod("wire"),
|
|
7509
|
-
className: "w-full justify-start",
|
|
7510
|
-
children: "Add Wire Transfer"
|
|
7511
|
-
}
|
|
7512
|
-
)
|
|
7513
|
-
] }) })
|
|
7514
|
-
] })
|
|
7515
|
-
] });
|
|
7516
|
-
};
|
|
7517
7567
|
var receiverSchema = zod.z.object({
|
|
7518
7568
|
routingNumber: zod.z.string().min(9, "Routing number must be 9 digits").max(9, "Routing number must be 9 digits"),
|
|
7519
7569
|
bankShortName: zod.z.string().min(1, "Bank short name is required")
|
|
@@ -11702,54 +11752,6 @@ var CounterpartyDetail = () => {
|
|
|
11702
11752
|
);
|
|
11703
11753
|
};
|
|
11704
11754
|
var CounterpartyDetail_default = CounterpartyDetail;
|
|
11705
|
-
var CreateCounterpartyView = ({
|
|
11706
|
-
counterpartyData,
|
|
11707
|
-
paymentMethods,
|
|
11708
|
-
onPaymentMethodsChange,
|
|
11709
|
-
onBasicInfoChange,
|
|
11710
|
-
onCancel,
|
|
11711
|
-
onSubmit
|
|
11712
|
-
}) => {
|
|
11713
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
11714
|
-
PageLayout,
|
|
11715
|
-
{
|
|
11716
|
-
title: "Create Counterparty",
|
|
11717
|
-
description: "Create a new counterparty with all required information",
|
|
11718
|
-
actions: [
|
|
11719
|
-
{ label: "Cancel", variant: "outline", onClick: onCancel },
|
|
11720
|
-
{ label: "Create Counterparty", variant: "default", onClick: onSubmit }
|
|
11721
|
-
],
|
|
11722
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
|
|
11723
|
-
/* @__PURE__ */ jsxRuntime.jsxs(Card, { children: [
|
|
11724
|
-
/* @__PURE__ */ jsxRuntime.jsx(CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(CardTitle, { children: "Basic Information" }) }),
|
|
11725
|
-
/* @__PURE__ */ jsxRuntime.jsx(CardContent, { children: /* @__PURE__ */ jsxRuntime.jsx(CounterpartyBasicInfo, { value: counterpartyData, onDataChange: onBasicInfoChange }) })
|
|
11726
|
-
] }),
|
|
11727
|
-
/* @__PURE__ */ jsxRuntime.jsxs(Card, { children: [
|
|
11728
|
-
/* @__PURE__ */ jsxRuntime.jsx(CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(CardTitle, { children: [
|
|
11729
|
-
"Address",
|
|
11730
|
-
paymentMethods.some((m) => m.type === "wire") && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-destructive ml-1", children: "*" })
|
|
11731
|
-
] }) }),
|
|
11732
|
-
/* @__PURE__ */ jsxRuntime.jsxs(CardContent, { children: [
|
|
11733
|
-
paymentMethods.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground mb-4", children: "Optional for ACH payments, required for wire transfers" }),
|
|
11734
|
-
paymentMethods.some((m) => m.type === "wire") && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground mb-4", children: "Required because you have wire payment methods" }),
|
|
11735
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
11736
|
-
AddressForm,
|
|
11737
|
-
{
|
|
11738
|
-
title: "",
|
|
11739
|
-
description: "",
|
|
11740
|
-
showApartment: true
|
|
11741
|
-
}
|
|
11742
|
-
)
|
|
11743
|
-
] })
|
|
11744
|
-
] }),
|
|
11745
|
-
/* @__PURE__ */ jsxRuntime.jsxs(Card, { children: [
|
|
11746
|
-
/* @__PURE__ */ jsxRuntime.jsx(CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(CardTitle, { children: "Payment Configuration" }) }),
|
|
11747
|
-
/* @__PURE__ */ jsxRuntime.jsx(CardContent, { children: /* @__PURE__ */ jsxRuntime.jsx(PaymentInformationSection, { onPaymentMethodsChange }) })
|
|
11748
|
-
] })
|
|
11749
|
-
] })
|
|
11750
|
-
}
|
|
11751
|
-
);
|
|
11752
|
-
};
|
|
11753
11755
|
var CreateCounterparty = () => {
|
|
11754
11756
|
const navigate = reactRouterDom.useNavigate();
|
|
11755
11757
|
const [counterpartyData, setCounterpartyData] = React15.useState({
|
|
@@ -16435,6 +16437,7 @@ exports.CounterpartyTypeBadge = CounterpartyTypeBadge;
|
|
|
16435
16437
|
exports.CreateBusiness = Create_default;
|
|
16436
16438
|
exports.CreateBusinessView = CreateBusinessView;
|
|
16437
16439
|
exports.CreateCounterparty = Create_default2;
|
|
16440
|
+
exports.CreateCounterpartyView = CreateCounterpartyView;
|
|
16438
16441
|
exports.CreateIndividual = Create_default3;
|
|
16439
16442
|
exports.CreateVelocityLimit = CreateVelocityLimit;
|
|
16440
16443
|
exports.Dashboard = Dashboard_default;
|