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 CHANGED
@@ -4477,7 +4477,7 @@ function DatePicker({
4477
4477
  ) })
4478
4478
  ] });
4479
4479
  if (label) {
4480
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-4", wrapperClassName), children: [
4480
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-2", wrapperClassName), children: [
4481
4481
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", children: label }),
4482
4482
  picker
4483
4483
  ] });
@@ -8376,6 +8376,370 @@ var WireDetailsSection = ({ data }) => {
8376
8376
  ) })
8377
8377
  ] });
8378
8378
  };
8379
+ var Checkbox = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
8380
+ CheckboxPrimitive__namespace.Root,
8381
+ {
8382
+ ref,
8383
+ className: cn(
8384
+ "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",
8385
+ className
8386
+ ),
8387
+ ...props,
8388
+ children: /* @__PURE__ */ jsxRuntime.jsx(
8389
+ CheckboxPrimitive__namespace.Indicator,
8390
+ {
8391
+ className: cn("flex items-center justify-center text-current"),
8392
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-4 w-4" })
8393
+ }
8394
+ )
8395
+ }
8396
+ ));
8397
+ Checkbox.displayName = CheckboxPrimitive__namespace.Root.displayName;
8398
+ var TRANSACTION_TYPES = [
8399
+ { value: "transfer", label: "Transfer", icon: lucideReact.ArrowLeftRight },
8400
+ { value: "adjustment", label: "Adjustment", icon: lucideReact.Settings },
8401
+ { value: "ach", label: "ACH", icon: lucideReact.Building2 },
8402
+ { value: "wire", label: "Wire", icon: lucideReact.Zap }
8403
+ ];
8404
+ var CURRENCY_OPTIONS = [
8405
+ { value: "USD", label: "USD - US Dollar" },
8406
+ { value: "EUR", label: "EUR - Euro" },
8407
+ { value: "GBP", label: "GBP - British Pound" },
8408
+ { value: "JPY", label: "JPY - Japanese Yen" },
8409
+ { value: "CAD", label: "CAD - Canadian Dollar" },
8410
+ { value: "AUD", label: "AUD - Australian Dollar" },
8411
+ { value: "CHF", label: "CHF - Swiss Franc" },
8412
+ { value: "CNY", label: "CNY - Chinese Yuan" }
8413
+ ];
8414
+ var NewTransactionView = ({
8415
+ form,
8416
+ accountLookedUp,
8417
+ accountData,
8418
+ counterpartyLookedUp,
8419
+ counterpartyData,
8420
+ confirmationOpen,
8421
+ submissionStatus,
8422
+ errorMessage,
8423
+ transactionId,
8424
+ onAccountLookup,
8425
+ onCounterpartyLookup,
8426
+ onEditAccount,
8427
+ onEditCounterparty,
8428
+ onSubmit,
8429
+ onCancel,
8430
+ onConfirmationClose,
8431
+ onConfirmationOpenChange
8432
+ }) => {
8433
+ const transactionType = form.watch("transactionType");
8434
+ const accountNumber = form.watch("accountNumber");
8435
+ const counterpartyName = form.watch("counterpartyName");
8436
+ const amount = form.watch("amount");
8437
+ const accountDataGrid = accountData ? [
8438
+ {
8439
+ title: "Account Information",
8440
+ items: [
8441
+ { label: "Account Number", value: accountData.accountNumber },
8442
+ { label: "Account Name", value: accountData.accountName },
8443
+ { label: "Account Type", value: accountData.accountType },
8444
+ { label: "Balance", value: accountData.balance },
8445
+ { label: "Customer Name", value: accountData.customerName },
8446
+ { label: "Customer ID", value: accountData.customerId }
8447
+ ]
8448
+ }
8449
+ ] : [];
8450
+ const counterpartyDataGrid = counterpartyData ? [
8451
+ {
8452
+ title: "Counterparty Information",
8453
+ items: [
8454
+ { label: "Counterparty Name", value: counterpartyData.counterpartyName },
8455
+ { label: "Counterparty ID", value: counterpartyData.counterpartyId },
8456
+ { label: "Type", value: counterpartyData.counterpartyType },
8457
+ { label: "Status", value: counterpartyData.status },
8458
+ { label: "Tax ID", value: counterpartyData.taxId },
8459
+ { label: "Primary Contact", value: counterpartyData.primaryContact },
8460
+ { label: "Contact Email", value: counterpartyData.contactEmail },
8461
+ { label: "Contact Phone", value: counterpartyData.contactPhone },
8462
+ { label: "Address", value: counterpartyData.address }
8463
+ ]
8464
+ }
8465
+ ] : [];
8466
+ const reviewData = [
8467
+ {
8468
+ title: "Transaction Summary",
8469
+ items: [
8470
+ { label: "Transaction Type", value: TRANSACTION_TYPES.find((t) => t.value === transactionType)?.label || "-" },
8471
+ { label: "Account Number", value: accountNumber || "-" },
8472
+ { label: "Counterparty", value: counterpartyName || "-" },
8473
+ { label: "Amount", value: amount ? `$${amount}` : "-" },
8474
+ { label: "Description", value: form.watch("description") || "N/A" }
8475
+ ]
8476
+ }
8477
+ ];
8478
+ return /* @__PURE__ */ jsxRuntime.jsx(PageLayout, { title: "New Transaction", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-4xl mx-auto space-y-6", children: [
8479
+ /* @__PURE__ */ jsxRuntime.jsx(FormProvider, { form, children: /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: (e) => e.preventDefault(), children: [
8480
+ !accountLookedUp ? /* @__PURE__ */ jsxRuntime.jsx(FormCard, { title: "Account Lookup", variant: "default", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-3 items-start w-full", children: [
8481
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
8482
+ FormInput,
8483
+ {
8484
+ name: "accountNumber",
8485
+ placeholder: "Enter account number"
8486
+ }
8487
+ ) }),
8488
+ /* @__PURE__ */ jsxRuntime.jsxs(
8489
+ Button,
8490
+ {
8491
+ onClick: onAccountLookup,
8492
+ disabled: !accountNumber,
8493
+ className: "shrink-0 mt-0 w-48",
8494
+ children: [
8495
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "h-4 w-4 mr-2" }),
8496
+ "Lookup Account"
8497
+ ]
8498
+ }
8499
+ )
8500
+ ] }) }) : /* @__PURE__ */ jsxRuntime.jsx(
8501
+ FormCard,
8502
+ {
8503
+ title: "Account Information",
8504
+ variant: "subtle",
8505
+ headerActions: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
8506
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5 text-success" }),
8507
+ /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "ghost", size: "sm", onClick: onEditAccount, children: [
8508
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Edit, { className: "h-4 w-4 mr-1" }),
8509
+ "Edit"
8510
+ ] })
8511
+ ] }),
8512
+ children: /* @__PURE__ */ jsxRuntime.jsx(DataGrid, { data: accountDataGrid, columns: 2 })
8513
+ }
8514
+ ),
8515
+ /* @__PURE__ */ jsxRuntime.jsx(
8516
+ FormCard,
8517
+ {
8518
+ title: "Transaction Type",
8519
+ variant: "default",
8520
+ className: cn(!accountLookedUp && "opacity-50 pointer-events-none"),
8521
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 lg:grid-cols-4 gap-3 lg:gap-4", children: TRANSACTION_TYPES.map((type) => {
8522
+ const Icon2 = type.icon;
8523
+ const isSelected = transactionType === type.value;
8524
+ return /* @__PURE__ */ jsxRuntime.jsxs(
8525
+ "button",
8526
+ {
8527
+ type: "button",
8528
+ onClick: () => form.setValue("transactionType", type.value),
8529
+ disabled: !accountLookedUp,
8530
+ className: cn(
8531
+ "flex flex-col items-center justify-center p-4 lg:p-3 rounded-lg border-2 transition-all",
8532
+ "hover:border-primary/50 hover:shadow-md",
8533
+ isSelected ? "border-primary bg-primary/5 shadow-sm" : "border-border bg-card"
8534
+ ),
8535
+ children: [
8536
+ /* @__PURE__ */ jsxRuntime.jsx(Icon2, { className: cn(
8537
+ "h-6 w-6 lg:h-5 lg:w-5 mb-2",
8538
+ isSelected ? "text-primary" : "text-muted-foreground"
8539
+ ) }),
8540
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(
8541
+ "text-sm font-medium",
8542
+ isSelected ? "text-primary" : "text-foreground"
8543
+ ), children: type.label })
8544
+ ]
8545
+ },
8546
+ type.value
8547
+ );
8548
+ }) })
8549
+ }
8550
+ ),
8551
+ !counterpartyLookedUp ? /* @__PURE__ */ jsxRuntime.jsx(
8552
+ FormCard,
8553
+ {
8554
+ title: "Counterparty Lookup",
8555
+ variant: "default",
8556
+ className: cn(!transactionType && "opacity-50 pointer-events-none"),
8557
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-3 items-start w-full", children: [
8558
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
8559
+ FormInput,
8560
+ {
8561
+ name: "counterpartyName",
8562
+ placeholder: "Enter counterparty name",
8563
+ disabled: !transactionType
8564
+ }
8565
+ ) }),
8566
+ /* @__PURE__ */ jsxRuntime.jsxs(
8567
+ Button,
8568
+ {
8569
+ onClick: onCounterpartyLookup,
8570
+ disabled: !transactionType || !counterpartyName,
8571
+ className: "shrink-0 mt-0 w-48",
8572
+ children: [
8573
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "h-4 w-4 mr-2" }),
8574
+ "Lookup Counterparty"
8575
+ ]
8576
+ }
8577
+ )
8578
+ ] })
8579
+ }
8580
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
8581
+ FormCard,
8582
+ {
8583
+ title: "Counterparty Information",
8584
+ variant: "subtle",
8585
+ headerActions: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
8586
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5 text-success" }),
8587
+ /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "ghost", size: "sm", onClick: onEditCounterparty, children: [
8588
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Edit, { className: "h-4 w-4 mr-1" }),
8589
+ "Edit"
8590
+ ] })
8591
+ ] }),
8592
+ children: /* @__PURE__ */ jsxRuntime.jsx(DataGrid, { data: counterpartyDataGrid, columns: 2 })
8593
+ }
8594
+ ),
8595
+ /* @__PURE__ */ jsxRuntime.jsx(
8596
+ FormCard,
8597
+ {
8598
+ title: "Transaction Details",
8599
+ variant: "default",
8600
+ className: cn(!counterpartyLookedUp && "opacity-50 pointer-events-none"),
8601
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
8602
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-[1fr_auto] gap-4", children: [
8603
+ /* @__PURE__ */ jsxRuntime.jsx(
8604
+ FormInput,
8605
+ {
8606
+ name: "amount",
8607
+ label: "Amount",
8608
+ placeholder: "0.00",
8609
+ type: "number",
8610
+ disabled: !counterpartyLookedUp
8611
+ }
8612
+ ),
8613
+ /* @__PURE__ */ jsxRuntime.jsx(
8614
+ FormSelect,
8615
+ {
8616
+ name: "currency",
8617
+ label: "Currency",
8618
+ options: CURRENCY_OPTIONS,
8619
+ disabled: !counterpartyLookedUp,
8620
+ className: "w-48"
8621
+ }
8622
+ )
8623
+ ] }),
8624
+ /* @__PURE__ */ jsxRuntime.jsx(
8625
+ FormInput,
8626
+ {
8627
+ name: "description",
8628
+ label: "Description (Optional)",
8629
+ placeholder: "Enter transaction description",
8630
+ disabled: !counterpartyLookedUp
8631
+ }
8632
+ )
8633
+ ] })
8634
+ }
8635
+ ),
8636
+ /* @__PURE__ */ jsxRuntime.jsx(FormCard, { title: "Review & Submit", variant: "default", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
8637
+ /* @__PURE__ */ jsxRuntime.jsx(DataGrid, { data: reviewData, columns: 2 }),
8638
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-muted/30 rounded-lg p-4 border border-border/50", children: /* @__PURE__ */ jsxRuntime.jsx(
8639
+ reactHookForm.Controller,
8640
+ {
8641
+ name: "certifyInformation",
8642
+ control: form.control,
8643
+ render: ({ field }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
8644
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
8645
+ /* @__PURE__ */ jsxRuntime.jsx(
8646
+ Checkbox,
8647
+ {
8648
+ id: "certifyInformation",
8649
+ checked: field.value,
8650
+ onCheckedChange: field.onChange
8651
+ }
8652
+ ),
8653
+ /* @__PURE__ */ jsxRuntime.jsx(
8654
+ "label",
8655
+ {
8656
+ htmlFor: "certifyInformation",
8657
+ className: "text-sm font-medium leading-relaxed cursor-pointer select-none",
8658
+ children: "I certify that all information entered is correct and accurate to the best of my knowledge"
8659
+ }
8660
+ )
8661
+ ] }),
8662
+ form.formState.errors.certifyInformation && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-destructive ml-7", children: form.formState.errors.certifyInformation.message })
8663
+ ] })
8664
+ }
8665
+ ) }),
8666
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-3 justify-end pt-4 border-t border-border", children: [
8667
+ /* @__PURE__ */ jsxRuntime.jsx(Button, { type: "button", variant: "outline", onClick: onCancel, className: "w-32", children: "Cancel" }),
8668
+ /* @__PURE__ */ jsxRuntime.jsxs(
8669
+ Button,
8670
+ {
8671
+ type: "button",
8672
+ onClick: onSubmit,
8673
+ className: "w-48",
8674
+ disabled: !transactionType || !accountNumber || !counterpartyName || !amount || !form.watch("certifyInformation"),
8675
+ children: [
8676
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-4 w-4 mr-2" }),
8677
+ "Submit Transaction"
8678
+ ]
8679
+ }
8680
+ )
8681
+ ] })
8682
+ ] }) })
8683
+ ] }) }),
8684
+ /* @__PURE__ */ jsxRuntime.jsx(Dialog, { open: confirmationOpen, onOpenChange: onConfirmationOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(DialogContent, { className: "sm:max-w-md", children: [
8685
+ /* @__PURE__ */ jsxRuntime.jsxs(DialogHeader, { children: [
8686
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 mb-2", children: [
8687
+ submissionStatus === "success" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-12 w-12 rounded-full bg-success/10 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-6 w-6 text-success" }) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-12 w-12 rounded-full bg-destructive/10 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XCircle, { className: "h-6 w-6 text-destructive" }) }),
8688
+ /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: "text-xl", children: submissionStatus === "success" ? "Transaction Successful" : "Transaction Failed" })
8689
+ ] }),
8690
+ /* @__PURE__ */ jsxRuntime.jsx(DialogDescription, { className: "text-left", children: submissionStatus === "success" ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4 pt-2", children: [
8691
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-foreground", children: "Your transaction has been successfully submitted and is being processed." }),
8692
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-muted/50 rounded-lg p-4 space-y-2", children: [
8693
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between text-sm", children: [
8694
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Transaction ID:" }),
8695
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono font-medium", children: transactionId })
8696
+ ] }),
8697
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between text-sm", children: [
8698
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Amount:" }),
8699
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-medium", children: [
8700
+ "$",
8701
+ amount
8702
+ ] })
8703
+ ] }),
8704
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between text-sm", children: [
8705
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Type:" }),
8706
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: TRANSACTION_TYPES.find((t) => t.value === transactionType)?.label })
8707
+ ] }),
8708
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between text-sm", children: [
8709
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Counterparty:" }),
8710
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: counterpartyName })
8711
+ ] })
8712
+ ] }),
8713
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 p-3 bg-blue-500/10 border border-blue-500/20 rounded-lg", children: [
8714
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "h-5 w-5 text-blue-500 mt-0.5 flex-shrink-0" }),
8715
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-blue-700 dark:text-blue-300", children: "You will receive a confirmation email once the transaction is completed." })
8716
+ ] })
8717
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4 pt-2", children: [
8718
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 p-4 bg-destructive/10 border border-destructive/20 rounded-lg", children: [
8719
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XCircle, { className: "h-5 w-5 text-destructive mt-0.5 flex-shrink-0" }),
8720
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
8721
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-destructive", children: "Error Processing Transaction" }),
8722
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: errorMessage })
8723
+ ] })
8724
+ ] }),
8725
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "Please review the error message above and try again. If the problem persists, contact support." })
8726
+ ] }) })
8727
+ ] }),
8728
+ /* @__PURE__ */ jsxRuntime.jsxs(DialogFooter, { className: "sm:justify-end gap-2", children: [
8729
+ submissionStatus === "error" && /* @__PURE__ */ jsxRuntime.jsx(Button, { type: "button", variant: "outline", onClick: () => onConfirmationOpenChange(false), children: "Try Again" }),
8730
+ /* @__PURE__ */ jsxRuntime.jsx(
8731
+ Button,
8732
+ {
8733
+ type: "button",
8734
+ onClick: onConfirmationClose,
8735
+ variant: submissionStatus === "success" ? "default" : "outline",
8736
+ children: submissionStatus === "success" ? "View Transactions" : "Close"
8737
+ }
8738
+ )
8739
+ ] })
8740
+ ] }) })
8741
+ ] }) });
8742
+ };
8379
8743
  var typeIcons = {
8380
8744
  checking: lucideReact.CreditCard,
8381
8745
  savings: lucideReact.Building,
@@ -8450,25 +8814,6 @@ var BusinessTypeBadge = ({ type, className }) => {
8450
8814
  config.label
8451
8815
  ] });
8452
8816
  };
8453
- var Checkbox = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
8454
- CheckboxPrimitive__namespace.Root,
8455
- {
8456
- ref,
8457
- className: cn(
8458
- "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",
8459
- className
8460
- ),
8461
- ...props,
8462
- children: /* @__PURE__ */ jsxRuntime.jsx(
8463
- CheckboxPrimitive__namespace.Indicator,
8464
- {
8465
- className: cn("flex items-center justify-center text-current"),
8466
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-4 w-4" })
8467
- }
8468
- )
8469
- }
8470
- ));
8471
- Checkbox.displayName = CheckboxPrimitive__namespace.Root.displayName;
8472
8817
  var DetailPageLayout = ({
8473
8818
  title,
8474
8819
  description,
@@ -13850,22 +14195,6 @@ var newTransactionSchema = zod.z.object({
13850
14195
  message: "You must certify the information is correct"
13851
14196
  })
13852
14197
  });
13853
- var TRANSACTION_TYPES = [
13854
- { value: "transfer", label: "Transfer", icon: lucideReact.ArrowLeftRight },
13855
- { value: "adjustment", label: "Adjustment", icon: lucideReact.Settings },
13856
- { value: "ach", label: "ACH", icon: lucideReact.Building2 },
13857
- { value: "wire", label: "Wire", icon: lucideReact.Zap }
13858
- ];
13859
- var CURRENCY_OPTIONS = [
13860
- { value: "USD", label: "USD - US Dollar" },
13861
- { value: "EUR", label: "EUR - Euro" },
13862
- { value: "GBP", label: "GBP - British Pound" },
13863
- { value: "JPY", label: "JPY - Japanese Yen" },
13864
- { value: "CAD", label: "CAD - Canadian Dollar" },
13865
- { value: "AUD", label: "AUD - Australian Dollar" },
13866
- { value: "CHF", label: "CHF - Swiss Franc" },
13867
- { value: "CNY", label: "CNY - Chinese Yuan" }
13868
- ];
13869
14198
  var mockAccountData = {
13870
14199
  accountNumber: "****1234",
13871
14200
  accountName: "Business Checking",
@@ -13908,10 +14237,6 @@ function NewTransaction() {
13908
14237
  certifyInformation: false
13909
14238
  }
13910
14239
  });
13911
- const transactionType = form.watch("transactionType");
13912
- const accountNumber = form.watch("accountNumber");
13913
- const counterpartyName = form.watch("counterpartyName");
13914
- const amount = form.watch("amount");
13915
14240
  const handleAccountLookup = () => {
13916
14241
  const accNum = form.getValues("accountNumber");
13917
14242
  if (!accNum) {
@@ -13958,11 +14283,10 @@ function NewTransaction() {
13958
14283
  sonner.toast.error("Please lookup both account and counterparty");
13959
14284
  return;
13960
14285
  }
13961
- const amount2 = parseFloat(data.amount);
13962
14286
  const hasError = Math.random() > 0.7;
13963
14287
  if (hasError) {
13964
14288
  const errorScenarios = [
13965
- "Insufficient funds. Current balance: $125,450.00, Required: $" + amount2.toFixed(2),
14289
+ "Insufficient funds. Current balance: $125,450.00, Required: $" + parseFloat(data.amount).toFixed(2),
13966
14290
  "Transaction limit exceeded. Daily limit: $50,000.00",
13967
14291
  "Counterparty account is temporarily unavailable. Please try again later.",
13968
14292
  "Invalid routing number for the selected transaction type."
@@ -13986,368 +14310,26 @@ function NewTransaction() {
13986
14310
  const handleCancel = () => {
13987
14311
  navigate("/dashboard");
13988
14312
  };
13989
- const accountDataGrid = accountData ? [
13990
- {
13991
- title: "Account Information",
13992
- items: [
13993
- { label: "Account Number", value: accountData.accountNumber },
13994
- { label: "Account Name", value: accountData.accountName },
13995
- { label: "Account Type", value: accountData.accountType },
13996
- { label: "Balance", value: accountData.balance },
13997
- { label: "Customer Name", value: accountData.customerName },
13998
- { label: "Customer ID", value: accountData.customerId }
13999
- ]
14000
- }
14001
- ] : [];
14002
- const counterpartyDataGrid = counterpartyData ? [
14003
- {
14004
- title: "Counterparty Information",
14005
- items: [
14006
- { label: "Counterparty Name", value: counterpartyData.counterpartyName },
14007
- { label: "Counterparty ID", value: counterpartyData.counterpartyId },
14008
- { label: "Type", value: counterpartyData.counterpartyType },
14009
- { label: "Status", value: counterpartyData.status },
14010
- { label: "Tax ID", value: counterpartyData.taxId },
14011
- { label: "Primary Contact", value: counterpartyData.primaryContact },
14012
- { label: "Contact Email", value: counterpartyData.contactEmail },
14013
- { label: "Contact Phone", value: counterpartyData.contactPhone },
14014
- { label: "Address", value: counterpartyData.address }
14015
- ]
14016
- }
14017
- ] : [];
14018
- const reviewData = [
14019
- {
14020
- title: "Transaction Summary",
14021
- items: [
14022
- { label: "Transaction Type", value: TRANSACTION_TYPES.find((t) => t.value === transactionType)?.label || "-" },
14023
- { label: "Account Number", value: accountNumber || "-" },
14024
- { label: "Counterparty", value: counterpartyName || "-" },
14025
- { label: "Amount", value: amount ? `$${amount}` : "-" },
14026
- { label: "Description", value: form.watch("description") || "N/A" }
14027
- ]
14028
- }
14029
- ];
14030
14313
  return /* @__PURE__ */ jsxRuntime.jsx(
14031
- PageLayout,
14314
+ NewTransactionView,
14032
14315
  {
14033
- title: "New Transaction",
14034
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-4xl mx-auto space-y-6", children: [
14035
- /* @__PURE__ */ jsxRuntime.jsx(FormProvider, { form, children: /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: (e) => e.preventDefault(), children: [
14036
- !accountLookedUp ? /* @__PURE__ */ jsxRuntime.jsx(
14037
- FormCard,
14038
- {
14039
- title: "Account Lookup",
14040
- variant: "default",
14041
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-3 items-start w-full", children: [
14042
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
14043
- FormInput,
14044
- {
14045
- name: "accountNumber",
14046
- placeholder: "Enter account number"
14047
- }
14048
- ) }),
14049
- /* @__PURE__ */ jsxRuntime.jsxs(
14050
- Button,
14051
- {
14052
- onClick: handleAccountLookup,
14053
- disabled: !accountNumber,
14054
- className: "shrink-0 mt-0 w-48",
14055
- children: [
14056
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "h-4 w-4 mr-2" }),
14057
- "Lookup Account"
14058
- ]
14059
- }
14060
- )
14061
- ] })
14062
- }
14063
- ) : (
14064
- /* Account Information (Read-only) */
14065
- /* @__PURE__ */ jsxRuntime.jsx(
14066
- FormCard,
14067
- {
14068
- title: "Account Information",
14069
- variant: "subtle",
14070
- headerActions: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
14071
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5 text-success" }),
14072
- /* @__PURE__ */ jsxRuntime.jsxs(
14073
- Button,
14074
- {
14075
- variant: "ghost",
14076
- size: "sm",
14077
- onClick: handleEditAccount,
14078
- children: [
14079
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Edit, { className: "h-4 w-4 mr-1" }),
14080
- "Edit"
14081
- ]
14082
- }
14083
- )
14084
- ] }),
14085
- children: /* @__PURE__ */ jsxRuntime.jsx(DataGrid, { data: accountDataGrid, columns: 2 })
14086
- }
14087
- )
14088
- ),
14089
- /* @__PURE__ */ jsxRuntime.jsx(
14090
- FormCard,
14091
- {
14092
- title: "Transaction Type",
14093
- variant: "default",
14094
- className: cn(!accountLookedUp && "opacity-50 pointer-events-none"),
14095
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 lg:grid-cols-4 gap-3 lg:gap-4", children: TRANSACTION_TYPES.map((type) => {
14096
- const Icon2 = type.icon;
14097
- const isSelected = transactionType === type.value;
14098
- return /* @__PURE__ */ jsxRuntime.jsxs(
14099
- "button",
14100
- {
14101
- type: "button",
14102
- onClick: () => form.setValue("transactionType", type.value),
14103
- disabled: !accountLookedUp,
14104
- className: cn(
14105
- "flex flex-col items-center justify-center p-4 lg:p-3 rounded-lg border-2 transition-all",
14106
- "hover:border-primary/50 hover:shadow-md",
14107
- isSelected ? "border-primary bg-primary/5 shadow-sm" : "border-border bg-card"
14108
- ),
14109
- children: [
14110
- /* @__PURE__ */ jsxRuntime.jsx(Icon2, { className: cn(
14111
- "h-6 w-6 lg:h-5 lg:w-5 mb-2",
14112
- isSelected ? "text-primary" : "text-muted-foreground"
14113
- ) }),
14114
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(
14115
- "text-sm font-medium",
14116
- isSelected ? "text-primary" : "text-foreground"
14117
- ), children: type.label })
14118
- ]
14119
- },
14120
- type.value
14121
- );
14122
- }) })
14123
- }
14124
- ),
14125
- !counterpartyLookedUp ? /* @__PURE__ */ jsxRuntime.jsx(
14126
- FormCard,
14127
- {
14128
- title: "Counterparty Lookup",
14129
- variant: "default",
14130
- className: cn(!transactionType && "opacity-50 pointer-events-none"),
14131
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-3 items-start w-full", children: [
14132
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
14133
- FormInput,
14134
- {
14135
- name: "counterpartyName",
14136
- placeholder: "Enter counterparty name",
14137
- disabled: !transactionType
14138
- }
14139
- ) }),
14140
- /* @__PURE__ */ jsxRuntime.jsxs(
14141
- Button,
14142
- {
14143
- onClick: handleCounterpartyLookup,
14144
- disabled: !transactionType || !counterpartyName,
14145
- className: "shrink-0 mt-0 w-48",
14146
- children: [
14147
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "h-4 w-4 mr-2" }),
14148
- "Lookup Counterparty"
14149
- ]
14150
- }
14151
- )
14152
- ] })
14153
- }
14154
- ) : (
14155
- /* Counterparty Information (Read-only) */
14156
- /* @__PURE__ */ jsxRuntime.jsx(
14157
- FormCard,
14158
- {
14159
- title: "Counterparty Information",
14160
- variant: "subtle",
14161
- headerActions: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
14162
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5 text-success" }),
14163
- /* @__PURE__ */ jsxRuntime.jsxs(
14164
- Button,
14165
- {
14166
- variant: "ghost",
14167
- size: "sm",
14168
- onClick: handleEditCounterparty,
14169
- children: [
14170
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Edit, { className: "h-4 w-4 mr-1" }),
14171
- "Edit"
14172
- ]
14173
- }
14174
- )
14175
- ] }),
14176
- children: /* @__PURE__ */ jsxRuntime.jsx(DataGrid, { data: counterpartyDataGrid, columns: 2 })
14177
- }
14178
- )
14179
- ),
14180
- /* @__PURE__ */ jsxRuntime.jsx(
14181
- FormCard,
14182
- {
14183
- title: "Transaction Details",
14184
- variant: "default",
14185
- className: cn(!counterpartyLookedUp && "opacity-50 pointer-events-none"),
14186
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
14187
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-[1fr_auto] gap-4", children: [
14188
- /* @__PURE__ */ jsxRuntime.jsx(
14189
- FormInput,
14190
- {
14191
- name: "amount",
14192
- label: "Amount",
14193
- placeholder: "0.00",
14194
- type: "number",
14195
- disabled: !counterpartyLookedUp
14196
- }
14197
- ),
14198
- /* @__PURE__ */ jsxRuntime.jsx(
14199
- FormSelect,
14200
- {
14201
- name: "currency",
14202
- label: "Currency",
14203
- options: CURRENCY_OPTIONS,
14204
- disabled: !counterpartyLookedUp,
14205
- className: "w-48"
14206
- }
14207
- )
14208
- ] }),
14209
- /* @__PURE__ */ jsxRuntime.jsx(
14210
- FormInput,
14211
- {
14212
- name: "description",
14213
- label: "Description (Optional)",
14214
- placeholder: "Enter transaction description",
14215
- disabled: !counterpartyLookedUp
14216
- }
14217
- )
14218
- ] })
14219
- }
14220
- ),
14221
- /* @__PURE__ */ jsxRuntime.jsx(
14222
- FormCard,
14223
- {
14224
- title: "Review & Submit",
14225
- variant: "default",
14226
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
14227
- /* @__PURE__ */ jsxRuntime.jsx(DataGrid, { data: reviewData, columns: 2 }),
14228
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-muted/30 rounded-lg p-4 border border-border/50", children: /* @__PURE__ */ jsxRuntime.jsx(
14229
- reactHookForm.Controller,
14230
- {
14231
- name: "certifyInformation",
14232
- control: form.control,
14233
- render: ({ field }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
14234
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
14235
- /* @__PURE__ */ jsxRuntime.jsx(
14236
- Checkbox,
14237
- {
14238
- id: "certifyInformation",
14239
- checked: field.value,
14240
- onCheckedChange: field.onChange
14241
- }
14242
- ),
14243
- /* @__PURE__ */ jsxRuntime.jsx(
14244
- "label",
14245
- {
14246
- htmlFor: "certifyInformation",
14247
- className: "text-sm font-medium leading-relaxed cursor-pointer select-none",
14248
- children: "I certify that all information entered is correct and accurate to the best of my knowledge"
14249
- }
14250
- )
14251
- ] }),
14252
- form.formState.errors.certifyInformation && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-destructive ml-7", children: form.formState.errors.certifyInformation.message })
14253
- ] })
14254
- }
14255
- ) }),
14256
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-3 justify-end pt-4 border-t border-border", children: [
14257
- /* @__PURE__ */ jsxRuntime.jsx(
14258
- Button,
14259
- {
14260
- type: "button",
14261
- variant: "outline",
14262
- onClick: handleCancel,
14263
- className: "w-32",
14264
- children: "Cancel"
14265
- }
14266
- ),
14267
- /* @__PURE__ */ jsxRuntime.jsxs(
14268
- Button,
14269
- {
14270
- type: "button",
14271
- onClick: handleSubmit,
14272
- className: "w-48",
14273
- disabled: !transactionType || !accountNumber || !counterpartyName || !amount || !form.watch("certifyInformation"),
14274
- children: [
14275
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-4 w-4 mr-2" }),
14276
- "Submit Transaction"
14277
- ]
14278
- }
14279
- )
14280
- ] })
14281
- ] })
14282
- }
14283
- )
14284
- ] }) }),
14285
- /* @__PURE__ */ jsxRuntime.jsx(Dialog, { open: confirmationOpen, onOpenChange: setConfirmationOpen, children: /* @__PURE__ */ jsxRuntime.jsxs(DialogContent, { className: "sm:max-w-md", children: [
14286
- /* @__PURE__ */ jsxRuntime.jsxs(DialogHeader, { children: [
14287
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 mb-2", children: [
14288
- submissionStatus === "success" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-12 w-12 rounded-full bg-success/10 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-6 w-6 text-success" }) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-12 w-12 rounded-full bg-destructive/10 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XCircle, { className: "h-6 w-6 text-destructive" }) }),
14289
- /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: "text-xl", children: submissionStatus === "success" ? "Transaction Successful" : "Transaction Failed" })
14290
- ] }),
14291
- /* @__PURE__ */ jsxRuntime.jsx(DialogDescription, { className: "text-left", children: submissionStatus === "success" ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4 pt-2", children: [
14292
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-foreground", children: "Your transaction has been successfully submitted and is being processed." }),
14293
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-muted/50 rounded-lg p-4 space-y-2", children: [
14294
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between text-sm", children: [
14295
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Transaction ID:" }),
14296
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono font-medium", children: transactionId })
14297
- ] }),
14298
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between text-sm", children: [
14299
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Amount:" }),
14300
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-medium", children: [
14301
- "$",
14302
- amount
14303
- ] })
14304
- ] }),
14305
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between text-sm", children: [
14306
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Type:" }),
14307
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: TRANSACTION_TYPES.find((t) => t.value === transactionType)?.label })
14308
- ] }),
14309
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between text-sm", children: [
14310
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Counterparty:" }),
14311
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: counterpartyName })
14312
- ] })
14313
- ] }),
14314
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 p-3 bg-blue-500/10 border border-blue-500/20 rounded-lg", children: [
14315
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "h-5 w-5 text-blue-500 mt-0.5 flex-shrink-0" }),
14316
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-blue-700 dark:text-blue-300", children: "You will receive a confirmation email once the transaction is completed." })
14317
- ] })
14318
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4 pt-2", children: [
14319
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 p-4 bg-destructive/10 border border-destructive/20 rounded-lg", children: [
14320
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XCircle, { className: "h-5 w-5 text-destructive mt-0.5 flex-shrink-0" }),
14321
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
14322
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-destructive", children: "Error Processing Transaction" }),
14323
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: errorMessage })
14324
- ] })
14325
- ] }),
14326
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "Please review the error message above and try again. If the problem persists, contact support." })
14327
- ] }) })
14328
- ] }),
14329
- /* @__PURE__ */ jsxRuntime.jsxs(DialogFooter, { className: "sm:justify-end gap-2", children: [
14330
- submissionStatus === "error" && /* @__PURE__ */ jsxRuntime.jsx(
14331
- Button,
14332
- {
14333
- type: "button",
14334
- variant: "outline",
14335
- onClick: () => setConfirmationOpen(false),
14336
- children: "Try Again"
14337
- }
14338
- ),
14339
- /* @__PURE__ */ jsxRuntime.jsx(
14340
- Button,
14341
- {
14342
- type: "button",
14343
- onClick: handleConfirmationClose,
14344
- variant: submissionStatus === "success" ? "default" : "outline",
14345
- children: submissionStatus === "success" ? "View Transactions" : "Close"
14346
- }
14347
- )
14348
- ] })
14349
- ] }) })
14350
- ] })
14316
+ form,
14317
+ accountLookedUp,
14318
+ accountData,
14319
+ counterpartyLookedUp,
14320
+ counterpartyData,
14321
+ confirmationOpen,
14322
+ submissionStatus,
14323
+ errorMessage,
14324
+ transactionId,
14325
+ onAccountLookup: handleAccountLookup,
14326
+ onCounterpartyLookup: handleCounterpartyLookup,
14327
+ onEditAccount: handleEditAccount,
14328
+ onEditCounterparty: handleEditCounterparty,
14329
+ onSubmit: handleSubmit,
14330
+ onCancel: handleCancel,
14331
+ onConfirmationClose: handleConfirmationClose,
14332
+ onConfirmationOpenChange: setConfirmationOpen
14351
14333
  }
14352
14334
  );
14353
14335
  }
@@ -16414,6 +16396,7 @@ exports.BusinessTypeBadge = BusinessTypeBadge;
16414
16396
  exports.Businesses = Businesses_default;
16415
16397
  exports.Button = Button;
16416
16398
  exports.CIPStatusBadge = CIPStatusBadge;
16399
+ exports.CURRENCY_OPTIONS = CURRENCY_OPTIONS;
16417
16400
  exports.Calendar = Calendar;
16418
16401
  exports.Card = Card;
16419
16402
  exports.CardContent = CardContent;
@@ -16485,6 +16468,7 @@ exports.ListPage = ListPage;
16485
16468
  exports.MainLayout = MainLayout;
16486
16469
  exports.MetricCard = MetricCard;
16487
16470
  exports.NewTransaction = NewTransaction;
16471
+ exports.NewTransactionView = NewTransactionView;
16488
16472
  exports.NotFound = NotFound_default;
16489
16473
  exports.OFACAlertView = OFACAlertView;
16490
16474
  exports.OriginatorCard = OriginatorCard;
@@ -16542,6 +16526,7 @@ exports.Statement = Statement;
16542
16526
  exports.StatementHeader = StatementHeader;
16543
16527
  exports.StatementView = StatementView;
16544
16528
  exports.StatusBadge = StatusBadge;
16529
+ exports.TRANSACTION_TYPES = TRANSACTION_TYPES;
16545
16530
  exports.Table = Table;
16546
16531
  exports.TableBody = TableBody;
16547
16532
  exports.TableCaption = TableCaption;
@@ -16581,6 +16566,7 @@ exports.cardVariants = cardVariants;
16581
16566
  exports.downloadCSV = downloadCSV;
16582
16567
  exports.generateStatementCSV = generateStatementCSV;
16583
16568
  exports.inputVariants = inputVariants;
16569
+ exports.newTransactionSchema = newTransactionSchema;
16584
16570
  exports.reducer = reducer;
16585
16571
  exports.textareaVariants = textareaVariants;
16586
16572
  exports.toast = toast;