braid-ui 1.0.62 → 1.0.63

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.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, ArrowLeftRight, Users, Building2, Shield, AlertCircle, RefreshCw, Landmark, Search, Repeat, Zap, Box, Settings, 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';
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, ArrowLeftRight, Users, Building2, Shield, AlertCircle, RefreshCw, Landmark, Search, Repeat, Zap, Box, Settings, 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, CircleDollarSign, PiggyBank, 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';
@@ -33,6 +33,14 @@ import * as ToastPrimitives from '@radix-ui/react-toast';
33
33
  function cn(...inputs) {
34
34
  return twMerge(clsx(inputs));
35
35
  }
36
+ function formatCurrency(value, currency = "USD") {
37
+ return new Intl.NumberFormat("en-US", {
38
+ style: "currency",
39
+ currency,
40
+ minimumFractionDigits: 2,
41
+ maximumFractionDigits: 2
42
+ }).format(value);
43
+ }
36
44
  var cardVariants = cva(
37
45
  "rounded-lg border bg-card text-card-foreground transition-all duration-200",
38
46
  {
@@ -278,7 +286,12 @@ var badgeVariants = cva(
278
286
  "alert-ofac": "border-red-200 bg-red-50 text-red-700 hover:bg-red-100 dark:border-red-800 dark:bg-red-950 dark:text-red-300 font-medium",
279
287
  "alert-dual": "border-emerald-200 bg-emerald-50 text-emerald-700 hover:bg-emerald-100 dark:border-emerald-800 dark:bg-emerald-950 dark:text-emerald-300 font-medium",
280
288
  "alert-monitoring": "border-amber-200 bg-amber-50 text-amber-700 hover:bg-amber-100 dark:border-amber-800 dark:bg-amber-950 dark:text-amber-300 font-medium",
281
- "alert-error": "border-rose-200 bg-rose-50 text-rose-700 hover:bg-rose-100 dark:border-rose-800 dark:bg-rose-950 dark:text-rose-300 font-medium"
289
+ "alert-error": "border-rose-200 bg-rose-50 text-rose-700 hover:bg-rose-100 dark:border-rose-800 dark:bg-rose-950 dark:text-rose-300 font-medium",
290
+ // Account type variants
291
+ checking: "border-blue-200 bg-blue-50 text-blue-700 hover:bg-blue-100 dark:border-blue-800 dark:bg-blue-950 dark:text-blue-300",
292
+ savings: "border-emerald-200 bg-emerald-50 text-emerald-700 hover:bg-emerald-100 dark:border-emerald-800 dark:bg-emerald-950 dark:text-emerald-300",
293
+ "zero-balance": "border-slate-200 bg-slate-50 text-slate-700 hover:bg-slate-100 dark:border-slate-700 dark:bg-slate-900 dark:text-slate-300",
294
+ funding: "border-violet-200 bg-violet-50 text-violet-700 hover:bg-violet-100 dark:border-violet-800 dark:bg-violet-950 dark:text-violet-300"
282
295
  }
283
296
  },
284
297
  defaultVariants: {
@@ -8028,7 +8041,7 @@ var columns = [
8028
8041
  title: "Amount",
8029
8042
  sortable: true,
8030
8043
  align: "right",
8031
- render: (value) => `$${value.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`
8044
+ render: (value) => formatCurrency(value)
8032
8045
  },
8033
8046
  {
8034
8047
  key: "count",
@@ -8225,7 +8238,7 @@ var StatementView = ({
8225
8238
  ] });
8226
8239
  };
8227
8240
  var ACHDetailsSection = ({ data }) => {
8228
- const formatCurrency4 = (value) => {
8241
+ const formatCurrency5 = (value) => {
8229
8242
  return new Intl.NumberFormat("en-US", {
8230
8243
  style: "currency",
8231
8244
  currency: "USD",
@@ -8261,7 +8274,7 @@ var ACHDetailsSection = ({ data }) => {
8261
8274
  layout: "horizontal"
8262
8275
  }
8263
8276
  ),
8264
- /* @__PURE__ */ jsx(InfoField, { label: "Amount", value: formatCurrency4(data.amount), layout: "horizontal" }),
8277
+ /* @__PURE__ */ jsx(InfoField, { label: "Amount", value: formatCurrency5(data.amount), layout: "horizontal" }),
8265
8278
  /* @__PURE__ */ jsx(InfoField, { label: "SEC Code", value: data.secCode, layout: "horizontal" }),
8266
8279
  /* @__PURE__ */ jsx(InfoField, { label: "Company Entry Description", value: data.companyEntryDescription, layout: "horizontal" }),
8267
8280
  data.companyDiscretionaryData && /* @__PURE__ */ jsx(InfoField, { label: "Company Discretionary Data", value: data.companyDiscretionaryData, layout: "horizontal" }),
@@ -8344,7 +8357,7 @@ var WireDetailsSection = ({ data }) => {
8344
8357
  ) })
8345
8358
  ] });
8346
8359
  };
8347
- var formatCurrency = (value) => {
8360
+ var formatCurrency2 = (value) => {
8348
8361
  const numValue = typeof value === "string" ? parseFloat(value) : value;
8349
8362
  if (isNaN(numValue)) return "";
8350
8363
  return new Intl.NumberFormat("en-US", {
@@ -8355,7 +8368,7 @@ var formatCurrency = (value) => {
8355
8368
  };
8356
8369
  var CurrencyInput = ({ value, onChange, ...props }) => {
8357
8370
  const [isFocused, setIsFocused] = React15.useState(false);
8358
- const displayValue = value ? isFocused ? value : formatCurrency(value) : "";
8371
+ const displayValue = value ? isFocused ? value : formatCurrency2(value) : "";
8359
8372
  const handleChange = (e) => {
8360
8373
  const rawValue = e.target.value.replace(/[^0-9.]/g, "");
8361
8374
  const parts = rawValue.split(".");
@@ -8394,7 +8407,7 @@ var Checkbox = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__
8394
8407
  }
8395
8408
  ));
8396
8409
  Checkbox.displayName = CheckboxPrimitive.Root.displayName;
8397
- var formatCurrency2 = (value) => {
8410
+ var formatCurrency3 = (value) => {
8398
8411
  const numValue = typeof value === "string" ? parseFloat(value) : value;
8399
8412
  if (isNaN(numValue)) return "-";
8400
8413
  return new Intl.NumberFormat("en-US", {
@@ -8506,7 +8519,7 @@ var NewTransactionView = ({
8506
8519
  ] : [],
8507
8520
  ...isTransfer ? [{ label: "Receiver Account", value: receiverAccountNumber || "-" }] : [],
8508
8521
  ...requiresCounterparty ? [{ label: "Counterparty", value: counterpartyName || "-" }] : [],
8509
- { label: "Amount", value: amount ? formatCurrency2(amount) : "-" },
8522
+ { label: "Amount", value: amount ? formatCurrency3(amount) : "-" },
8510
8523
  { label: "Description", value: form.watch("description") || "N/A" }
8511
8524
  ];
8512
8525
  const reviewData = [
@@ -8872,7 +8885,7 @@ var NewTransactionView = ({
8872
8885
  ] }),
8873
8886
  /* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
8874
8887
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Amount:" }),
8875
- /* @__PURE__ */ jsx("span", { className: "font-medium", children: formatCurrency2(amount) })
8888
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: formatCurrency3(amount) })
8876
8889
  ] }),
8877
8890
  /* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
8878
8891
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Description:" }),
@@ -8903,6 +8916,115 @@ var NewTransactionView = ({
8903
8916
  ] }) })
8904
8917
  ] });
8905
8918
  };
8919
+ var EnhancedMultiSelect = ({
8920
+ label,
8921
+ value = [],
8922
+ onValueChange,
8923
+ options,
8924
+ placeholder = "Select options",
8925
+ className,
8926
+ disabled = false
8927
+ }) => {
8928
+ const [open, setOpen] = React15.useState(false);
8929
+ const handleSelect = (optionValue) => {
8930
+ if (value.includes(optionValue)) {
8931
+ onValueChange(value.filter((v) => v !== optionValue));
8932
+ } else {
8933
+ onValueChange([...value, optionValue]);
8934
+ }
8935
+ };
8936
+ const handleRemove = (optionValue, e) => {
8937
+ e.stopPropagation();
8938
+ onValueChange(value.filter((v) => v !== optionValue));
8939
+ };
8940
+ const selectedLabels = value.map((v) => options.find((opt) => opt.value === v)?.label).filter(Boolean);
8941
+ return /* @__PURE__ */ jsxs("div", { className: cn("space-y-2", className), children: [
8942
+ label && /* @__PURE__ */ jsx("label", { className: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", children: label }),
8943
+ /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
8944
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
8945
+ Button,
8946
+ {
8947
+ variant: "outline",
8948
+ role: "combobox",
8949
+ "aria-expanded": open,
8950
+ disabled,
8951
+ className: "w-full justify-between font-normal h-auto min-h-10",
8952
+ children: [
8953
+ /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1 flex-1 text-left", children: selectedLabels.length > 0 ? selectedLabels.map((label2, index) => /* @__PURE__ */ jsxs(
8954
+ Badge,
8955
+ {
8956
+ variant: "secondary",
8957
+ className: "text-xs",
8958
+ children: [
8959
+ label2,
8960
+ /* @__PURE__ */ jsx(
8961
+ X,
8962
+ {
8963
+ className: "ml-1 h-3 w-3 cursor-pointer",
8964
+ onClick: (e) => handleRemove(value[index], e)
8965
+ }
8966
+ )
8967
+ ]
8968
+ },
8969
+ value[index]
8970
+ )) : /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: placeholder }) }),
8971
+ /* @__PURE__ */ jsx(ChevronDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
8972
+ ]
8973
+ }
8974
+ ) }),
8975
+ /* @__PURE__ */ jsx(PopoverContent, { className: "w-full min-w-[200px] p-0", align: "start", children: /* @__PURE__ */ jsx("div", { className: "max-h-60 overflow-auto p-1", children: options.map((option) => /* @__PURE__ */ jsxs(
8976
+ "div",
8977
+ {
8978
+ className: cn(
8979
+ "flex items-center gap-2 rounded-sm px-2 py-1.5 text-sm cursor-pointer hover:bg-accent hover:text-accent-foreground",
8980
+ value.includes(option.value) && "bg-accent"
8981
+ ),
8982
+ onClick: () => handleSelect(option.value),
8983
+ children: [
8984
+ /* @__PURE__ */ jsx(
8985
+ "div",
8986
+ {
8987
+ className: cn(
8988
+ "flex h-4 w-4 items-center justify-center rounded-sm border border-primary",
8989
+ value.includes(option.value) ? "bg-primary text-primary-foreground" : "opacity-50"
8990
+ ),
8991
+ children: value.includes(option.value) && /* @__PURE__ */ jsx(Check, { className: "h-3 w-3" })
8992
+ }
8993
+ ),
8994
+ /* @__PURE__ */ jsx("span", { children: option.label })
8995
+ ]
8996
+ },
8997
+ option.value
8998
+ )) }) })
8999
+ ] })
9000
+ ] });
9001
+ };
9002
+ var defaultFilters = {
9003
+ originalFileName: "",
9004
+ requesterIpAddress: "",
9005
+ requesterUsername: "",
9006
+ showAchNoc: false,
9007
+ excludeWire: false,
9008
+ excludeAch: false,
9009
+ wireFileHandle: "",
9010
+ direction: "",
9011
+ counterpartyId: "",
9012
+ customerId: "",
9013
+ settlementFileName: "",
9014
+ isInbound: false,
9015
+ accountNumber: "",
9016
+ processingStatus: [],
9017
+ beginDate: void 0,
9018
+ endDate: void 0,
9019
+ postDateStart: void 0,
9020
+ postDateEnd: void 0,
9021
+ maxAmount: "",
9022
+ minAmount: "",
9023
+ productId: "",
9024
+ paymentId: "",
9025
+ transactionStatus: [],
9026
+ transactionType: []
9027
+ };
8906
9028
  var TransactionHistoryFiltersSheet = ({
8907
9029
  filters,
8908
9030
  onFilterChange,
@@ -8917,6 +9039,10 @@ var TransactionHistoryFiltersSheet = ({
8917
9039
  const handleLocalFilterChange = (field, value) => {
8918
9040
  setLocalFilters((prev) => ({ ...prev, [field]: value }));
8919
9041
  };
9042
+ const handleDateChange = (field, date) => {
9043
+ const isoString = date ? date.toISOString() : void 0;
9044
+ handleLocalFilterChange(field, isoString);
9045
+ };
8920
9046
  const handleApplyFilters = () => {
8921
9047
  Object.entries(localFilters).forEach(([key, value]) => {
8922
9048
  onFilterChange(key, value);
@@ -8925,32 +9051,15 @@ var TransactionHistoryFiltersSheet = ({
8925
9051
  setOpen(false);
8926
9052
  };
8927
9053
  const handleResetFilters = () => {
8928
- const resetFilters = {
8929
- accountNumber: "",
8930
- product: "",
8931
- customerId: "",
8932
- counterpartyId: "",
8933
- settlementFileName: "",
8934
- originalFileName: "",
8935
- requesterIpAddress: "",
8936
- requesterUsername: "",
8937
- wireFileHandle: "",
8938
- paymentId: "",
8939
- transactionType: "",
8940
- transactionStatus: "",
8941
- processingStatus: "",
8942
- direction: "",
8943
- minAmount: "",
8944
- maxAmount: "",
8945
- creationDateStart: void 0,
8946
- creationDateEnd: void 0,
8947
- postDateStart: void 0,
8948
- postDateEnd: void 0
8949
- };
8950
- setLocalFilters(resetFilters);
9054
+ setLocalFilters(defaultFilters);
8951
9055
  onResetFilters();
8952
9056
  setOpen(false);
8953
9057
  };
9058
+ const parseDate = (dateStr) => {
9059
+ if (!dateStr) return void 0;
9060
+ const date = new Date(dateStr);
9061
+ return isNaN(date.getTime()) ? void 0 : date;
9062
+ };
8954
9063
  return /* @__PURE__ */ jsxs(Sheet, { open, onOpenChange: setOpen, children: [
8955
9064
  /* @__PURE__ */ jsx(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { variant: "outline", className: "gap-2", children: [
8956
9065
  /* @__PURE__ */ jsx(Filter, { className: "h-4 w-4" }),
@@ -8959,12 +9068,61 @@ var TransactionHistoryFiltersSheet = ({
8959
9068
  /* @__PURE__ */ jsxs(SheetContent, { side: "right", className: "w-full sm:max-w-xl overflow-y-auto", children: [
8960
9069
  /* @__PURE__ */ jsx(SheetHeader, { children: /* @__PURE__ */ jsx(SheetTitle, { children: "Transaction Filters" }) }),
8961
9070
  /* @__PURE__ */ jsxs("div", { className: "space-y-6 py-6", children: [
9071
+ /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
9072
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-medium text-muted-foreground", children: "Options" }),
9073
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
9074
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
9075
+ /* @__PURE__ */ jsx(
9076
+ Checkbox,
9077
+ {
9078
+ id: "showAchNoc",
9079
+ checked: localFilters.showAchNoc || false,
9080
+ onCheckedChange: (checked) => handleLocalFilterChange("showAchNoc", checked === true)
9081
+ }
9082
+ ),
9083
+ /* @__PURE__ */ jsx(Label, { htmlFor: "showAchNoc", className: "text-sm font-normal", children: "Show ACH NOC" })
9084
+ ] }),
9085
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
9086
+ /* @__PURE__ */ jsx(
9087
+ Checkbox,
9088
+ {
9089
+ id: "isInbound",
9090
+ checked: localFilters.isInbound || false,
9091
+ onCheckedChange: (checked) => handleLocalFilterChange("isInbound", checked === true)
9092
+ }
9093
+ ),
9094
+ /* @__PURE__ */ jsx(Label, { htmlFor: "isInbound", className: "text-sm font-normal", children: "Is Inbound" })
9095
+ ] }),
9096
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
9097
+ /* @__PURE__ */ jsx(
9098
+ Checkbox,
9099
+ {
9100
+ id: "excludeWire",
9101
+ checked: localFilters.excludeWire || false,
9102
+ onCheckedChange: (checked) => handleLocalFilterChange("excludeWire", checked === true)
9103
+ }
9104
+ ),
9105
+ /* @__PURE__ */ jsx(Label, { htmlFor: "excludeWire", className: "text-sm font-normal", children: "Exclude Wire" })
9106
+ ] }),
9107
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
9108
+ /* @__PURE__ */ jsx(
9109
+ Checkbox,
9110
+ {
9111
+ id: "excludeAch",
9112
+ checked: localFilters.excludeAch || false,
9113
+ onCheckedChange: (checked) => handleLocalFilterChange("excludeAch", checked === true)
9114
+ }
9115
+ ),
9116
+ /* @__PURE__ */ jsx(Label, { htmlFor: "excludeAch", className: "text-sm font-normal", children: "Exclude ACH" })
9117
+ ] })
9118
+ ] })
9119
+ ] }),
8962
9120
  /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
8963
9121
  /* @__PURE__ */ jsx(
8964
9122
  EnhancedInput,
8965
9123
  {
8966
9124
  label: "Account Number",
8967
- value: localFilters.accountNumber,
9125
+ value: localFilters.accountNumber || "",
8968
9126
  onChange: (e) => handleLocalFilterChange("accountNumber", e.target.value),
8969
9127
  placeholder: "Enter account number"
8970
9128
  }
@@ -8972,9 +9130,9 @@ var TransactionHistoryFiltersSheet = ({
8972
9130
  /* @__PURE__ */ jsx(
8973
9131
  EnhancedSelect,
8974
9132
  {
8975
- label: "Product",
8976
- value: localFilters.product,
8977
- onValueChange: (value) => handleLocalFilterChange("product", value),
9133
+ label: "Product ID",
9134
+ value: localFilters.productId || "",
9135
+ onValueChange: (value) => handleLocalFilterChange("productId", value),
8978
9136
  placeholder: "Select product",
8979
9137
  options: [
8980
9138
  { value: "wire", label: "Wire" },
@@ -8989,7 +9147,7 @@ var TransactionHistoryFiltersSheet = ({
8989
9147
  EnhancedInput,
8990
9148
  {
8991
9149
  label: "Customer ID",
8992
- value: localFilters.customerId,
9150
+ value: localFilters.customerId || "",
8993
9151
  onChange: (e) => handleLocalFilterChange("customerId", e.target.value),
8994
9152
  placeholder: "Enter customer ID"
8995
9153
  }
@@ -8998,7 +9156,7 @@ var TransactionHistoryFiltersSheet = ({
8998
9156
  EnhancedInput,
8999
9157
  {
9000
9158
  label: "Counterparty ID",
9001
- value: localFilters.counterpartyId,
9159
+ value: localFilters.counterpartyId || "",
9002
9160
  onChange: (e) => handleLocalFilterChange("counterpartyId", e.target.value),
9003
9161
  placeholder: "Enter counterparty ID"
9004
9162
  }
@@ -9008,7 +9166,7 @@ var TransactionHistoryFiltersSheet = ({
9008
9166
  EnhancedInput,
9009
9167
  {
9010
9168
  label: "Settlement File Name",
9011
- value: localFilters.settlementFileName,
9169
+ value: localFilters.settlementFileName || "",
9012
9170
  onChange: (e) => handleLocalFilterChange("settlementFileName", e.target.value),
9013
9171
  placeholder: "Enter settlement file name"
9014
9172
  }
@@ -9017,7 +9175,7 @@ var TransactionHistoryFiltersSheet = ({
9017
9175
  EnhancedInput,
9018
9176
  {
9019
9177
  label: "Original File Name",
9020
- value: localFilters.originalFileName,
9178
+ value: localFilters.originalFileName || "",
9021
9179
  onChange: (e) => handleLocalFilterChange("originalFileName", e.target.value),
9022
9180
  placeholder: "Enter original file name"
9023
9181
  }
@@ -9026,7 +9184,7 @@ var TransactionHistoryFiltersSheet = ({
9026
9184
  EnhancedInput,
9027
9185
  {
9028
9186
  label: "Requester IP Address",
9029
- value: localFilters.requesterIpAddress,
9187
+ value: localFilters.requesterIpAddress || "",
9030
9188
  onChange: (e) => handleLocalFilterChange("requesterIpAddress", e.target.value),
9031
9189
  placeholder: "Enter IP address"
9032
9190
  }
@@ -9035,7 +9193,7 @@ var TransactionHistoryFiltersSheet = ({
9035
9193
  EnhancedInput,
9036
9194
  {
9037
9195
  label: "Requester Username",
9038
- value: localFilters.requesterUsername,
9196
+ value: localFilters.requesterUsername || "",
9039
9197
  onChange: (e) => handleLocalFilterChange("requesterUsername", e.target.value),
9040
9198
  placeholder: "Enter username"
9041
9199
  }
@@ -9044,7 +9202,7 @@ var TransactionHistoryFiltersSheet = ({
9044
9202
  EnhancedInput,
9045
9203
  {
9046
9204
  label: "Wire File Handle",
9047
- value: localFilters.wireFileHandle,
9205
+ value: localFilters.wireFileHandle || "",
9048
9206
  onChange: (e) => handleLocalFilterChange("wireFileHandle", e.target.value),
9049
9207
  placeholder: "Enter wire file handle"
9050
9208
  }
@@ -9053,18 +9211,18 @@ var TransactionHistoryFiltersSheet = ({
9053
9211
  EnhancedInput,
9054
9212
  {
9055
9213
  label: "Payment ID",
9056
- value: localFilters.paymentId,
9214
+ value: localFilters.paymentId || "",
9057
9215
  onChange: (e) => handleLocalFilterChange("paymentId", e.target.value),
9058
9216
  placeholder: "Enter payment ID"
9059
9217
  }
9060
9218
  ),
9061
9219
  /* @__PURE__ */ jsx(
9062
- EnhancedSelect,
9220
+ EnhancedMultiSelect,
9063
9221
  {
9064
9222
  label: "Transaction Type",
9065
- value: localFilters.transactionType,
9223
+ value: localFilters.transactionType || [],
9066
9224
  onValueChange: (value) => handleLocalFilterChange("transactionType", value),
9067
- placeholder: "Select transaction type",
9225
+ placeholder: "Select transaction types",
9068
9226
  options: [
9069
9227
  { value: "ach_credit", label: "ACH Credit" },
9070
9228
  { value: "ach_debit", label: "ACH Debit" },
@@ -9074,12 +9232,12 @@ var TransactionHistoryFiltersSheet = ({
9074
9232
  }
9075
9233
  ),
9076
9234
  /* @__PURE__ */ jsx(
9077
- EnhancedSelect,
9235
+ EnhancedMultiSelect,
9078
9236
  {
9079
9237
  label: "Transaction Status",
9080
- value: localFilters.transactionStatus,
9238
+ value: localFilters.transactionStatus || [],
9081
9239
  onValueChange: (value) => handleLocalFilterChange("transactionStatus", value),
9082
- placeholder: "Select transaction status",
9240
+ placeholder: "Select transaction statuses",
9083
9241
  options: [
9084
9242
  { value: "PENDING", label: "Pending" },
9085
9243
  { value: "POSTED", label: "Posted" },
@@ -9089,12 +9247,12 @@ var TransactionHistoryFiltersSheet = ({
9089
9247
  }
9090
9248
  ),
9091
9249
  /* @__PURE__ */ jsx(
9092
- EnhancedSelect,
9250
+ EnhancedMultiSelect,
9093
9251
  {
9094
9252
  label: "Processing Status",
9095
- value: localFilters.processingStatus,
9253
+ value: localFilters.processingStatus || [],
9096
9254
  onValueChange: (value) => handleLocalFilterChange("processingStatus", value),
9097
- placeholder: "Select processing status",
9255
+ placeholder: "Select processing statuses",
9098
9256
  options: [
9099
9257
  { value: "processing", label: "Processing" },
9100
9258
  { value: "completed", label: "Completed" },
@@ -9106,7 +9264,7 @@ var TransactionHistoryFiltersSheet = ({
9106
9264
  EnhancedSelect,
9107
9265
  {
9108
9266
  label: "Direction",
9109
- value: localFilters.direction,
9267
+ value: localFilters.direction || "",
9110
9268
  onValueChange: (value) => handleLocalFilterChange("direction", value),
9111
9269
  placeholder: "Select direction",
9112
9270
  options: [
@@ -9120,7 +9278,7 @@ var TransactionHistoryFiltersSheet = ({
9120
9278
  CurrencyInput,
9121
9279
  {
9122
9280
  label: "Min Amount",
9123
- value: localFilters.minAmount,
9281
+ value: localFilters.minAmount || "",
9124
9282
  onChange: (value) => handleLocalFilterChange("minAmount", value)
9125
9283
  }
9126
9284
  ),
@@ -9128,19 +9286,19 @@ var TransactionHistoryFiltersSheet = ({
9128
9286
  CurrencyInput,
9129
9287
  {
9130
9288
  label: "Max Amount",
9131
- value: localFilters.maxAmount,
9289
+ value: localFilters.maxAmount || "",
9132
9290
  onChange: (value) => handleLocalFilterChange("maxAmount", value)
9133
9291
  }
9134
9292
  )
9135
9293
  ] }),
9136
9294
  /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
9137
9295
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
9138
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium", children: "Creation Date Start" }),
9296
+ /* @__PURE__ */ jsx("label", { className: "text-sm font-medium", children: "Begin Date" }),
9139
9297
  /* @__PURE__ */ jsx(
9140
9298
  DatePicker,
9141
9299
  {
9142
- date: localFilters.creationDateStart,
9143
- onDateChange: (date) => handleLocalFilterChange("creationDateStart", date),
9300
+ date: parseDate(localFilters.beginDate),
9301
+ onDateChange: (date) => handleDateChange("beginDate", date),
9144
9302
  placeholder: "MM/DD/YYYY",
9145
9303
  buttonClassName: "w-full",
9146
9304
  className: "bg-background z-50"
@@ -9148,12 +9306,12 @@ var TransactionHistoryFiltersSheet = ({
9148
9306
  )
9149
9307
  ] }),
9150
9308
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
9151
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium", children: "Creation Date End" }),
9309
+ /* @__PURE__ */ jsx("label", { className: "text-sm font-medium", children: "End Date" }),
9152
9310
  /* @__PURE__ */ jsx(
9153
9311
  DatePicker,
9154
9312
  {
9155
- date: localFilters.creationDateEnd,
9156
- onDateChange: (date) => handleLocalFilterChange("creationDateEnd", date),
9313
+ date: parseDate(localFilters.endDate),
9314
+ onDateChange: (date) => handleDateChange("endDate", date),
9157
9315
  placeholder: "MM/DD/YYYY",
9158
9316
  buttonClassName: "w-full",
9159
9317
  className: "bg-background z-50"
@@ -9167,8 +9325,8 @@ var TransactionHistoryFiltersSheet = ({
9167
9325
  /* @__PURE__ */ jsx(
9168
9326
  DatePicker,
9169
9327
  {
9170
- date: localFilters.postDateStart,
9171
- onDateChange: (date) => handleLocalFilterChange("postDateStart", date),
9328
+ date: parseDate(localFilters.postDateStart),
9329
+ onDateChange: (date) => handleDateChange("postDateStart", date),
9172
9330
  placeholder: "MM/DD/YYYY",
9173
9331
  buttonClassName: "w-full",
9174
9332
  className: "bg-background z-50"
@@ -9180,8 +9338,8 @@ var TransactionHistoryFiltersSheet = ({
9180
9338
  /* @__PURE__ */ jsx(
9181
9339
  DatePicker,
9182
9340
  {
9183
- date: localFilters.postDateEnd,
9184
- onDateChange: (date) => handleLocalFilterChange("postDateEnd", date),
9341
+ date: parseDate(localFilters.postDateEnd),
9342
+ onDateChange: (date) => handleDateChange("postDateEnd", date),
9185
9343
  placeholder: "MM/DD/YYYY",
9186
9344
  buttonClassName: "w-full",
9187
9345
  className: "bg-background z-50"
@@ -9217,7 +9375,7 @@ var TransactionHistoryView = ({
9217
9375
  }
9218
9376
  )
9219
9377
  ] }) }) }),
9220
- /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "container mx-auto px-4 h-full max-w-none flex flex-col", children: /* @__PURE__ */ jsx("div", { className: "flex-1 mt-4 overflow-auto", children: table }) }) })
9378
+ /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "container mx-auto px-4 h-full max-w-none flex flex-col", children: /* @__PURE__ */ jsx("div", { className: "flex-1 mt-4 pb-6 overflow-auto", children: table }) }) })
9221
9379
  ] });
9222
9380
  };
9223
9381
  var TransactionTypeBadge = ({
@@ -9263,7 +9421,7 @@ var getProcessingStatusVariant = (status) => {
9263
9421
  return "outline";
9264
9422
  }
9265
9423
  };
9266
- var formatCurrency3 = (value) => {
9424
+ var formatCurrency4 = (value) => {
9267
9425
  return new Intl.NumberFormat("en-US", {
9268
9426
  style: "currency",
9269
9427
  currency: "USD",
@@ -9292,7 +9450,7 @@ var TransactionDetailView = ({
9292
9450
  /* @__PURE__ */ jsx("span", { className: cn(
9293
9451
  "font-semibold",
9294
9452
  transaction.amount < 0 ? "text-destructive" : "text-success"
9295
- ), children: formatCurrency3(transaction.amount) }),
9453
+ ), children: formatCurrency4(transaction.amount) }),
9296
9454
  /* @__PURE__ */ jsx(
9297
9455
  TransactionTypeBadge,
9298
9456
  {
@@ -9423,6 +9581,181 @@ var TransactionDetailView = ({
9423
9581
  }
9424
9582
  );
9425
9583
  };
9584
+ var cancelTransactionSchema = z.object({
9585
+ reason: z.string().min(1, "Reason is required").max(500, "Reason must be less than 500 characters")
9586
+ });
9587
+ var returnTransactionSchema = z.object({
9588
+ reasonCode: z.string().min(1, "Reason code is required")
9589
+ });
9590
+ var CancelTransactionDialog = ({
9591
+ transactionId,
9592
+ open,
9593
+ onOpenChange,
9594
+ onCancel
9595
+ }) => {
9596
+ const { toast: toast6 } = useToast();
9597
+ const {
9598
+ register,
9599
+ handleSubmit,
9600
+ formState: { errors, isSubmitting },
9601
+ reset
9602
+ } = useFormWithEditState({
9603
+ schema: cancelTransactionSchema,
9604
+ defaultValues: {
9605
+ reason: ""
9606
+ }
9607
+ });
9608
+ const onSubmit = async (data) => {
9609
+ try {
9610
+ await onCancel(data);
9611
+ toast6({
9612
+ title: "Transaction Cancelled",
9613
+ description: `Transaction ${transactionId} has been cancelled successfully.`
9614
+ });
9615
+ reset();
9616
+ onOpenChange(false);
9617
+ } catch (error) {
9618
+ toast6({
9619
+ title: "Error",
9620
+ description: "Failed to cancel the transaction. Please try again.",
9621
+ variant: "destructive"
9622
+ });
9623
+ }
9624
+ };
9625
+ const handleClose = () => {
9626
+ reset();
9627
+ onOpenChange(false);
9628
+ };
9629
+ return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: handleClose, children: /* @__PURE__ */ jsxs(DialogContent, { className: "sm:max-w-md", children: [
9630
+ /* @__PURE__ */ jsxs(DialogHeader, { children: [
9631
+ /* @__PURE__ */ jsx(DialogTitle, { children: "Cancel Transaction" }),
9632
+ /* @__PURE__ */ jsxs(DialogDescription, { children: [
9633
+ "Please provide a reason for cancelling transaction ",
9634
+ transactionId,
9635
+ "."
9636
+ ] })
9637
+ ] }),
9638
+ /* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit(onSubmit), className: "space-y-4", children: [
9639
+ /* @__PURE__ */ jsx(
9640
+ EnhancedTextarea,
9641
+ {
9642
+ label: "Cancellation Reason",
9643
+ placeholder: "Enter the reason for cancellation...",
9644
+ error: errors.reason?.message,
9645
+ ...register("reason")
9646
+ }
9647
+ ),
9648
+ /* @__PURE__ */ jsxs(DialogFooter, { className: "gap-2 sm:gap-0", children: [
9649
+ /* @__PURE__ */ jsx(
9650
+ Button,
9651
+ {
9652
+ type: "button",
9653
+ variant: "outline",
9654
+ onClick: handleClose,
9655
+ disabled: isSubmitting,
9656
+ children: "Close"
9657
+ }
9658
+ ),
9659
+ /* @__PURE__ */ jsx(
9660
+ Button,
9661
+ {
9662
+ type: "submit",
9663
+ variant: "destructive",
9664
+ disabled: isSubmitting,
9665
+ children: isSubmitting ? "Cancelling..." : "Cancel Transaction"
9666
+ }
9667
+ )
9668
+ ] })
9669
+ ] })
9670
+ ] }) });
9671
+ };
9672
+ function ReturnTransactionDialog({
9673
+ transactionId,
9674
+ open,
9675
+ onOpenChange,
9676
+ onReturn,
9677
+ reasonCodes
9678
+ }) {
9679
+ const {
9680
+ watch,
9681
+ setValue,
9682
+ handleSave,
9683
+ handleCancel,
9684
+ isLoading,
9685
+ formState: { errors }
9686
+ } = useFormWithEditState({
9687
+ schema: returnTransactionSchema,
9688
+ initialEditing: true,
9689
+ onSave: async (data) => {
9690
+ try {
9691
+ await onReturn(data);
9692
+ toast({
9693
+ title: "Transaction returned",
9694
+ description: `Transaction #${transactionId} has been returned successfully.`
9695
+ });
9696
+ onOpenChange(false);
9697
+ } catch (error) {
9698
+ toast({
9699
+ title: "Error",
9700
+ description: "Failed to return transaction. Please try again.",
9701
+ variant: "destructive"
9702
+ });
9703
+ throw error;
9704
+ }
9705
+ },
9706
+ onCancel: () => {
9707
+ onOpenChange(false);
9708
+ }
9709
+ });
9710
+ const reasonCode = watch("reasonCode");
9711
+ const selectOptions = reasonCodes.map((code) => ({
9712
+ value: code.value,
9713
+ label: code.label
9714
+ }));
9715
+ return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs(DialogContent, { className: "sm:max-w-[425px]", children: [
9716
+ /* @__PURE__ */ jsxs(DialogHeader, { children: [
9717
+ /* @__PURE__ */ jsx(DialogTitle, { children: "Return Transaction" }),
9718
+ /* @__PURE__ */ jsxs(DialogDescription, { children: [
9719
+ "Select a reason code to return transaction #",
9720
+ transactionId,
9721
+ "."
9722
+ ] })
9723
+ ] }),
9724
+ /* @__PURE__ */ jsx("div", { className: "py-4", children: /* @__PURE__ */ jsx(
9725
+ EnhancedSelect,
9726
+ {
9727
+ label: "Reason Code",
9728
+ placeholder: "Select a reason code",
9729
+ options: selectOptions,
9730
+ value: reasonCode || "",
9731
+ onValueChange: (value) => setValue("reasonCode", value),
9732
+ error: errors.reasonCode?.message
9733
+ }
9734
+ ) }),
9735
+ /* @__PURE__ */ jsxs(DialogFooter, { children: [
9736
+ /* @__PURE__ */ jsx(
9737
+ Button,
9738
+ {
9739
+ type: "button",
9740
+ variant: "outline",
9741
+ onClick: handleCancel,
9742
+ disabled: isLoading,
9743
+ children: "Cancel"
9744
+ }
9745
+ ),
9746
+ /* @__PURE__ */ jsx(
9747
+ Button,
9748
+ {
9749
+ type: "button",
9750
+ variant: "destructive",
9751
+ onClick: handleSave,
9752
+ disabled: isLoading || !reasonCode,
9753
+ children: isLoading ? "Returning..." : "Return Transaction"
9754
+ }
9755
+ )
9756
+ ] })
9757
+ ] }) });
9758
+ }
9426
9759
  var typeIcons = {
9427
9760
  checking: CreditCard,
9428
9761
  savings: Building,
@@ -10692,6 +11025,36 @@ var useCounterpartyEntity = (counterparties) => {
10692
11025
  }, [counterparties]);
10693
11026
  return { counterparties: enrichedCounterparties, loading };
10694
11027
  };
11028
+ var typeConfig4 = {
11029
+ checking: {
11030
+ variant: "checking",
11031
+ label: "Checking",
11032
+ icon: Wallet
11033
+ },
11034
+ savings: {
11035
+ variant: "savings",
11036
+ label: "Savings",
11037
+ icon: PiggyBank
11038
+ },
11039
+ "zero-balance": {
11040
+ variant: "zero-balance",
11041
+ label: "Zero Balance",
11042
+ icon: CircleDollarSign
11043
+ },
11044
+ funding: {
11045
+ variant: "funding",
11046
+ label: "Funding",
11047
+ icon: Landmark
11048
+ }
11049
+ };
11050
+ var AccountTypeBadge = ({ type, className }) => {
11051
+ const config = typeConfig4[type] || typeConfig4.checking;
11052
+ const Icon2 = config.icon;
11053
+ return /* @__PURE__ */ jsxs(Badge, { variant: config.variant, className, children: [
11054
+ /* @__PURE__ */ jsx(Icon2, { className: "w-3 h-3 mr-1" }),
11055
+ config.label
11056
+ ] });
11057
+ };
10695
11058
 
10696
11059
  // src/lib/mock-data/business-account-data.ts
10697
11060
  var mockBusinessAccounts = [
@@ -10701,8 +11064,12 @@ var mockBusinessAccounts = [
10701
11064
  number: "1234567890",
10702
11065
  type: "checking",
10703
11066
  status: "active",
10704
- balance: "$125,450.00",
10705
- availableBalance: "$123,450.00",
11067
+ settledBalance: 127450,
11068
+ pendingCredits: 0,
11069
+ pendingDebits: 2e3,
11070
+ fundsOnHold: 0,
11071
+ accountBalance: 125450,
11072
+ availableBalance: 123450,
10706
11073
  currency: "USD",
10707
11074
  institution: "Chase Bank",
10708
11075
  routingNumber: "021000021",
@@ -10719,8 +11086,12 @@ var mockBusinessAccounts = [
10719
11086
  number: "9876544567",
10720
11087
  type: "savings",
10721
11088
  status: "active",
10722
- balance: "$45,230.00",
10723
- availableBalance: "$45,230.00",
11089
+ settledBalance: 45230,
11090
+ pendingCredits: 0,
11091
+ pendingDebits: 0,
11092
+ fundsOnHold: 0,
11093
+ accountBalance: 45230,
11094
+ availableBalance: 45230,
10724
11095
  currency: "USD",
10725
11096
  institution: "Chase Bank",
10726
11097
  routingNumber: "021000021",
@@ -10737,8 +11108,12 @@ var mockBusinessAccounts = [
10737
11108
  number: "5555551234",
10738
11109
  type: "checking",
10739
11110
  status: "active",
10740
- balance: "$78,900.00",
10741
- availableBalance: "$75,900.00",
11111
+ settledBalance: 8e4,
11112
+ pendingCredits: 1900,
11113
+ pendingDebits: 3e3,
11114
+ fundsOnHold: 0,
11115
+ accountBalance: 78900,
11116
+ availableBalance: 75900,
10742
11117
  currency: "USD",
10743
11118
  institution: "Wells Fargo",
10744
11119
  routingNumber: "121000248",
@@ -10753,10 +11128,14 @@ var mockBusinessAccounts = [
10753
11128
  id: "acc-004",
10754
11129
  name: "Merchant Services Account",
10755
11130
  number: "4444445678",
10756
- type: "checking",
11131
+ type: "funding",
10757
11132
  status: "active",
10758
- balance: "$234,567.89",
10759
- availableBalance: "$230,000.00",
11133
+ settledBalance: 23e4,
11134
+ pendingCredits: 4567.89,
11135
+ pendingDebits: 0,
11136
+ fundsOnHold: 4567.89,
11137
+ accountBalance: 234567.89,
11138
+ availableBalance: 23e4,
10760
11139
  currency: "USD",
10761
11140
  institution: "Bank of America",
10762
11141
  routingNumber: "026009593",
@@ -10773,8 +11152,12 @@ var mockBusinessAccounts = [
10773
11152
  number: "7777779012",
10774
11153
  type: "savings",
10775
11154
  status: "active",
10776
- balance: "$500,000.00",
10777
- availableBalance: "$500,000.00",
11155
+ settledBalance: 5e5,
11156
+ pendingCredits: 0,
11157
+ pendingDebits: 0,
11158
+ fundsOnHold: 0,
11159
+ accountBalance: 5e5,
11160
+ availableBalance: 5e5,
10778
11161
  currency: "USD",
10779
11162
  institution: "Citibank",
10780
11163
  routingNumber: "021000089",
@@ -10789,10 +11172,14 @@ var mockBusinessAccounts = [
10789
11172
  id: "acc-006",
10790
11173
  name: "Operating Account",
10791
11174
  number: "3333333456",
10792
- type: "checking",
11175
+ type: "zero-balance",
10793
11176
  status: "inactive",
10794
- balance: "$0.00",
10795
- availableBalance: "$0.00",
11177
+ settledBalance: 0,
11178
+ pendingCredits: 0,
11179
+ pendingDebits: 0,
11180
+ fundsOnHold: 0,
11181
+ accountBalance: 0,
11182
+ availableBalance: 0,
10796
11183
  currency: "USD",
10797
11184
  institution: "Wells Fargo",
10798
11185
  routingNumber: "121000248",
@@ -10860,6 +11247,12 @@ var Accounts = () => {
10860
11247
  title: "Account Number",
10861
11248
  sortable: true
10862
11249
  },
11250
+ {
11251
+ key: "type",
11252
+ title: "Type",
11253
+ sortable: true,
11254
+ render: (value, row) => /* @__PURE__ */ jsx(AccountTypeBadge, { type: row.type })
11255
+ },
10863
11256
  {
10864
11257
  key: "name",
10865
11258
  title: "Account Name",
@@ -10883,16 +11276,18 @@ var Accounts = () => {
10883
11276
  }
10884
11277
  },
10885
11278
  {
10886
- key: "balance",
11279
+ key: "accountBalance",
10887
11280
  title: "Account Balance",
10888
11281
  sortable: true,
10889
- align: "right"
11282
+ align: "right",
11283
+ render: (value) => formatCurrency(value)
10890
11284
  },
10891
11285
  {
10892
11286
  key: "availableBalance",
10893
11287
  title: "Available Balance",
10894
11288
  sortable: true,
10895
- align: "right"
11289
+ align: "right",
11290
+ render: (value) => formatCurrency(value)
10896
11291
  },
10897
11292
  {
10898
11293
  key: "status",
@@ -10904,11 +11299,6 @@ var Accounts = () => {
10904
11299
  key: "created",
10905
11300
  title: "Create Date",
10906
11301
  sortable: true
10907
- },
10908
- {
10909
- key: "modified",
10910
- title: "Modify Date",
10911
- sortable: true
10912
11302
  }
10913
11303
  ];
10914
11304
  const startIndex = (currentPage - 1) * pageSize;
@@ -11068,7 +11458,8 @@ var AccountDetail = () => {
11068
11458
  PageLayout,
11069
11459
  {
11070
11460
  title: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
11071
- /* @__PURE__ */ jsx("span", { children: account.name }),
11461
+ /* @__PURE__ */ jsx("span", { children: account.number }),
11462
+ /* @__PURE__ */ jsx(AccountTypeBadge, { type: account.type }),
11072
11463
  /* @__PURE__ */ jsx(
11073
11464
  EditableInfoField,
11074
11465
  {
@@ -11112,7 +11503,7 @@ var AccountDetail = () => {
11112
11503
  /* @__PURE__ */ jsx(
11113
11504
  EditableFormCard,
11114
11505
  {
11115
- title: "Account Information",
11506
+ title: account.name,
11116
11507
  variant: "subtle",
11117
11508
  isEditing: form.isEditing,
11118
11509
  onToggleEdit: form.handleToggleEdit,
@@ -11120,20 +11511,42 @@ var AccountDetail = () => {
11120
11511
  onCancel: form.handleCancel,
11121
11512
  viewContent: /* @__PURE__ */ jsxs(Fragment, { children: [
11122
11513
  /* @__PURE__ */ jsxs("div", { className: "mb-6 p-6 rounded-lg bg-gradient-to-br from-primary/10 via-primary/5 to-background border border-primary/20", children: [
11123
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-4", children: [
11124
- /* @__PURE__ */ jsx(Wallet, { className: "h-4 w-4 text-primary" }),
11125
- /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: account.number }),
11126
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "\u2022" }),
11127
- /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground capitalize", children: account.type })
11128
- ] }),
11129
- /* @__PURE__ */ jsxs("div", { className: "flex items-end gap-8", children: [
11514
+ /* @__PURE__ */ jsxs("div", { className: "flex items-end gap-8 mb-6", children: [
11130
11515
  /* @__PURE__ */ jsxs("div", { children: [
11131
11516
  /* @__PURE__ */ jsx("p", { className: "text-xs font-medium text-muted-foreground mb-1", children: "Account Balance" }),
11132
- /* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: account.balance })
11517
+ /* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: formatCurrency(account.accountBalance) })
11133
11518
  ] }),
11134
11519
  /* @__PURE__ */ jsxs("div", { children: [
11135
11520
  /* @__PURE__ */ jsx("p", { className: "text-xs font-medium text-muted-foreground mb-1", children: "Available Balance" }),
11136
- /* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: account.balance })
11521
+ /* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: formatCurrency(account.availableBalance) })
11522
+ ] })
11523
+ ] }),
11524
+ /* @__PURE__ */ jsx("div", { className: "border-t border-border/50 mb-4" }),
11525
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4", children: [
11526
+ /* @__PURE__ */ jsxs("div", { children: [
11527
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Settled Balance" }),
11528
+ /* @__PURE__ */ jsx("p", { className: "text-lg font-semibold", children: formatCurrency(account.settledBalance) })
11529
+ ] }),
11530
+ /* @__PURE__ */ jsxs("div", { children: [
11531
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Pending Credits" }),
11532
+ /* @__PURE__ */ jsxs("p", { className: "text-lg font-semibold text-success", children: [
11533
+ "+",
11534
+ formatCurrency(account.pendingCredits)
11535
+ ] })
11536
+ ] }),
11537
+ /* @__PURE__ */ jsxs("div", { children: [
11538
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Pending Debits" }),
11539
+ /* @__PURE__ */ jsxs("p", { className: "text-lg font-semibold text-destructive", children: [
11540
+ "-",
11541
+ formatCurrency(account.pendingDebits)
11542
+ ] })
11543
+ ] }),
11544
+ /* @__PURE__ */ jsxs("div", { children: [
11545
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Funds on Hold" }),
11546
+ /* @__PURE__ */ jsx("p", { className: cn(
11547
+ "text-lg font-semibold",
11548
+ account.fundsOnHold > 0 && "text-warning"
11549
+ ), children: formatCurrency(account.fundsOnHold) })
11137
11550
  ] })
11138
11551
  ] })
11139
11552
  ] }),
@@ -11205,20 +11618,42 @@ var AccountDetail = () => {
11205
11618
  ] }),
11206
11619
  editContent: /* @__PURE__ */ jsx(FormProvider, { form, children: /* @__PURE__ */ jsxs(Fragment, { children: [
11207
11620
  /* @__PURE__ */ jsxs("div", { className: "mb-6 p-6 rounded-lg bg-gradient-to-br from-primary/10 via-primary/5 to-background border border-primary/20", children: [
11208
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-4", children: [
11209
- /* @__PURE__ */ jsx(Wallet, { className: "h-4 w-4 text-primary" }),
11210
- /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: account.number }),
11211
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "\u2022" }),
11212
- /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground capitalize", children: account.type })
11213
- ] }),
11214
- /* @__PURE__ */ jsxs("div", { className: "flex items-end gap-8", children: [
11621
+ /* @__PURE__ */ jsxs("div", { className: "flex items-end gap-8 mb-6", children: [
11215
11622
  /* @__PURE__ */ jsxs("div", { children: [
11216
11623
  /* @__PURE__ */ jsx("p", { className: "text-xs font-medium text-muted-foreground mb-1", children: "Account Balance" }),
11217
- /* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: account.balance })
11624
+ /* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: formatCurrency(account.accountBalance) })
11218
11625
  ] }),
11219
11626
  /* @__PURE__ */ jsxs("div", { children: [
11220
11627
  /* @__PURE__ */ jsx("p", { className: "text-xs font-medium text-muted-foreground mb-1", children: "Available Balance" }),
11221
- /* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: account.balance })
11628
+ /* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: formatCurrency(account.availableBalance) })
11629
+ ] })
11630
+ ] }),
11631
+ /* @__PURE__ */ jsx("div", { className: "border-t border-border/50 mb-4" }),
11632
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4", children: [
11633
+ /* @__PURE__ */ jsxs("div", { children: [
11634
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Settled Balance" }),
11635
+ /* @__PURE__ */ jsx("p", { className: "text-lg font-semibold", children: formatCurrency(account.settledBalance) })
11636
+ ] }),
11637
+ /* @__PURE__ */ jsxs("div", { children: [
11638
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Pending Credits" }),
11639
+ /* @__PURE__ */ jsxs("p", { className: "text-lg font-semibold text-success", children: [
11640
+ "+",
11641
+ formatCurrency(account.pendingCredits)
11642
+ ] })
11643
+ ] }),
11644
+ /* @__PURE__ */ jsxs("div", { children: [
11645
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Pending Debits" }),
11646
+ /* @__PURE__ */ jsxs("p", { className: "text-lg font-semibold text-destructive", children: [
11647
+ "-",
11648
+ formatCurrency(account.pendingDebits)
11649
+ ] })
11650
+ ] }),
11651
+ /* @__PURE__ */ jsxs("div", { children: [
11652
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Funds on Hold" }),
11653
+ /* @__PURE__ */ jsx("p", { className: cn(
11654
+ "text-lg font-semibold",
11655
+ account.fundsOnHold > 0 && "text-warning"
11656
+ ), children: formatCurrency(account.fundsOnHold) })
11222
11657
  ] })
11223
11658
  ] })
11224
11659
  ] }),
@@ -14428,32 +14863,37 @@ var mockTransactionTimeline = [
14428
14863
  timestamp: "2025-10-01 00:19:45"
14429
14864
  }
14430
14865
  ];
14866
+ var defaultFilters2 = {
14867
+ originalFileName: "",
14868
+ requesterIpAddress: "",
14869
+ requesterUsername: "",
14870
+ showAchNoc: false,
14871
+ excludeWire: false,
14872
+ excludeAch: false,
14873
+ wireFileHandle: "",
14874
+ direction: "",
14875
+ counterpartyId: "",
14876
+ customerId: "",
14877
+ settlementFileName: "",
14878
+ isInbound: false,
14879
+ accountNumber: "",
14880
+ processingStatus: [],
14881
+ beginDate: void 0,
14882
+ endDate: void 0,
14883
+ postDateStart: void 0,
14884
+ postDateEnd: void 0,
14885
+ maxAmount: "",
14886
+ minAmount: "",
14887
+ productId: "",
14888
+ paymentId: "",
14889
+ transactionStatus: [],
14890
+ transactionType: []
14891
+ };
14431
14892
  var TransactionHistory = () => {
14432
14893
  const navigate = useNavigate();
14433
14894
  const [sortBy, setSortBy] = useState("created");
14434
14895
  const [sortDirection, setSortDirection] = useState("desc");
14435
- const [filters, setFilters] = useState({
14436
- accountNumber: "",
14437
- product: "",
14438
- customerId: "",
14439
- counterpartyId: "",
14440
- settlementFileName: "",
14441
- originalFileName: "",
14442
- requesterIpAddress: "",
14443
- requesterUsername: "",
14444
- wireFileHandle: "",
14445
- paymentId: "",
14446
- transactionType: "",
14447
- transactionStatus: "",
14448
- processingStatus: "",
14449
- direction: "",
14450
- minAmount: "",
14451
- maxAmount: "",
14452
- creationDateStart: void 0,
14453
- creationDateEnd: void 0,
14454
- postDateStart: void 0,
14455
- postDateEnd: void 0
14456
- });
14896
+ const [filters, setFilters] = useState(defaultFilters2);
14457
14897
  const filteredTransactions = useMemo(() => {
14458
14898
  let filtered = [...mockTransactions];
14459
14899
  if (filters.accountNumber) {
@@ -14461,11 +14901,11 @@ var TransactionHistory = () => {
14461
14901
  (t) => t.accountNumber.toLowerCase().includes(filters.accountNumber.toLowerCase())
14462
14902
  );
14463
14903
  }
14464
- if (filters.transactionType) {
14465
- filtered = filtered.filter((t) => t.transactionType === filters.transactionType);
14904
+ if (filters.transactionType && filters.transactionType.length > 0) {
14905
+ filtered = filtered.filter((t) => filters.transactionType.includes(t.transactionType));
14466
14906
  }
14467
- if (filters.transactionStatus) {
14468
- filtered = filtered.filter((t) => t.status === filters.transactionStatus);
14907
+ if (filters.transactionStatus && filters.transactionStatus.length > 0) {
14908
+ filtered = filtered.filter((t) => filters.transactionStatus.includes(t.status));
14469
14909
  }
14470
14910
  if (filters.minAmount) {
14471
14911
  const minAmount = parseFloat(filters.minAmount.replace(/[^0-9.-]/g, ""));
@@ -14479,6 +14919,12 @@ var TransactionHistory = () => {
14479
14919
  filtered = filtered.filter((t) => t.amount <= maxAmount);
14480
14920
  }
14481
14921
  }
14922
+ if (filters.excludeWire) {
14923
+ filtered = filtered.filter((t) => !t.transactionType.toLowerCase().includes("wire"));
14924
+ }
14925
+ if (filters.excludeAch) {
14926
+ filtered = filtered.filter((t) => !t.transactionType.toLowerCase().includes("ach"));
14927
+ }
14482
14928
  return filtered;
14483
14929
  }, [filters]);
14484
14930
  const sortedTransactions = useMemo(() => {
@@ -14495,28 +14941,7 @@ var TransactionHistory = () => {
14495
14941
  setFilters((prev) => ({ ...prev, [field]: value }));
14496
14942
  }, []);
14497
14943
  const handleResetFilters = useCallback(() => {
14498
- setFilters({
14499
- accountNumber: "",
14500
- product: "",
14501
- customerId: "",
14502
- counterpartyId: "",
14503
- settlementFileName: "",
14504
- originalFileName: "",
14505
- requesterIpAddress: "",
14506
- requesterUsername: "",
14507
- wireFileHandle: "",
14508
- paymentId: "",
14509
- transactionType: "",
14510
- transactionStatus: "",
14511
- processingStatus: "",
14512
- direction: "",
14513
- minAmount: "",
14514
- maxAmount: "",
14515
- creationDateStart: void 0,
14516
- creationDateEnd: void 0,
14517
- postDateStart: void 0,
14518
- postDateEnd: void 0
14519
- });
14944
+ setFilters(defaultFilters2);
14520
14945
  }, []);
14521
14946
  const handleApplyFilters = useCallback(() => {
14522
14947
  console.log("Applying filters:", filters);
@@ -14532,13 +14957,6 @@ var TransactionHistory = () => {
14532
14957
  const handleRowClick = useCallback((transaction) => {
14533
14958
  navigate(`/transactions/${transaction.id}`);
14534
14959
  }, [navigate]);
14535
- const formatCurrency4 = (value) => {
14536
- return new Intl.NumberFormat("en-US", {
14537
- style: "currency",
14538
- currency: "USD",
14539
- minimumFractionDigits: 2
14540
- }).format(value);
14541
- };
14542
14960
  const columns3 = useMemo(() => [
14543
14961
  {
14544
14962
  key: "created",
@@ -14555,7 +14973,7 @@ var TransactionHistory = () => {
14555
14973
  title: "Amount",
14556
14974
  sortable: true,
14557
14975
  align: "right",
14558
- render: (value) => /* @__PURE__ */ jsx("span", { className: value < 0 ? "text-destructive" : "", children: formatCurrency4(value) })
14976
+ render: (value) => /* @__PURE__ */ jsx("span", { className: value < 0 ? "text-destructive" : "", children: formatCurrency(value) })
14559
14977
  },
14560
14978
  {
14561
14979
  key: "customer",
@@ -15095,181 +15513,6 @@ function NewTransaction() {
15095
15513
  }
15096
15514
  );
15097
15515
  }
15098
- var cancelTransactionSchema = z.object({
15099
- reason: z.string().min(1, "Reason is required").max(500, "Reason must be less than 500 characters")
15100
- });
15101
- var returnTransactionSchema = z.object({
15102
- reasonCode: z.string().min(1, "Reason code is required")
15103
- });
15104
- var CancelTransactionDialog = ({
15105
- transactionId,
15106
- open,
15107
- onOpenChange,
15108
- onCancel
15109
- }) => {
15110
- const { toast: toast6 } = useToast();
15111
- const {
15112
- register,
15113
- handleSubmit,
15114
- formState: { errors, isSubmitting },
15115
- reset
15116
- } = useFormWithEditState({
15117
- schema: cancelTransactionSchema,
15118
- defaultValues: {
15119
- reason: ""
15120
- }
15121
- });
15122
- const onSubmit = async (data) => {
15123
- try {
15124
- await onCancel(data);
15125
- toast6({
15126
- title: "Transaction Cancelled",
15127
- description: `Transaction ${transactionId} has been cancelled successfully.`
15128
- });
15129
- reset();
15130
- onOpenChange(false);
15131
- } catch (error) {
15132
- toast6({
15133
- title: "Error",
15134
- description: "Failed to cancel the transaction. Please try again.",
15135
- variant: "destructive"
15136
- });
15137
- }
15138
- };
15139
- const handleClose = () => {
15140
- reset();
15141
- onOpenChange(false);
15142
- };
15143
- return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: handleClose, children: /* @__PURE__ */ jsxs(DialogContent, { className: "sm:max-w-md", children: [
15144
- /* @__PURE__ */ jsxs(DialogHeader, { children: [
15145
- /* @__PURE__ */ jsx(DialogTitle, { children: "Cancel Transaction" }),
15146
- /* @__PURE__ */ jsxs(DialogDescription, { children: [
15147
- "Please provide a reason for cancelling transaction ",
15148
- transactionId,
15149
- "."
15150
- ] })
15151
- ] }),
15152
- /* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit(onSubmit), className: "space-y-4", children: [
15153
- /* @__PURE__ */ jsx(
15154
- EnhancedTextarea,
15155
- {
15156
- label: "Cancellation Reason",
15157
- placeholder: "Enter the reason for cancellation...",
15158
- error: errors.reason?.message,
15159
- ...register("reason")
15160
- }
15161
- ),
15162
- /* @__PURE__ */ jsxs(DialogFooter, { className: "gap-2 sm:gap-0", children: [
15163
- /* @__PURE__ */ jsx(
15164
- Button,
15165
- {
15166
- type: "button",
15167
- variant: "outline",
15168
- onClick: handleClose,
15169
- disabled: isSubmitting,
15170
- children: "Close"
15171
- }
15172
- ),
15173
- /* @__PURE__ */ jsx(
15174
- Button,
15175
- {
15176
- type: "submit",
15177
- variant: "destructive",
15178
- disabled: isSubmitting,
15179
- children: isSubmitting ? "Cancelling..." : "Cancel Transaction"
15180
- }
15181
- )
15182
- ] })
15183
- ] })
15184
- ] }) });
15185
- };
15186
- function ReturnTransactionDialog({
15187
- transactionId,
15188
- open,
15189
- onOpenChange,
15190
- onReturn,
15191
- reasonCodes
15192
- }) {
15193
- const {
15194
- watch,
15195
- setValue,
15196
- handleSave,
15197
- handleCancel,
15198
- isLoading,
15199
- formState: { errors }
15200
- } = useFormWithEditState({
15201
- schema: returnTransactionSchema,
15202
- initialEditing: true,
15203
- onSave: async (data) => {
15204
- try {
15205
- await onReturn(data);
15206
- toast({
15207
- title: "Transaction returned",
15208
- description: `Transaction #${transactionId} has been returned successfully.`
15209
- });
15210
- onOpenChange(false);
15211
- } catch (error) {
15212
- toast({
15213
- title: "Error",
15214
- description: "Failed to return transaction. Please try again.",
15215
- variant: "destructive"
15216
- });
15217
- throw error;
15218
- }
15219
- },
15220
- onCancel: () => {
15221
- onOpenChange(false);
15222
- }
15223
- });
15224
- const reasonCode = watch("reasonCode");
15225
- const selectOptions = reasonCodes.map((code) => ({
15226
- value: code.value,
15227
- label: code.label
15228
- }));
15229
- return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs(DialogContent, { className: "sm:max-w-[425px]", children: [
15230
- /* @__PURE__ */ jsxs(DialogHeader, { children: [
15231
- /* @__PURE__ */ jsx(DialogTitle, { children: "Return Transaction" }),
15232
- /* @__PURE__ */ jsxs(DialogDescription, { children: [
15233
- "Select a reason code to return transaction #",
15234
- transactionId,
15235
- "."
15236
- ] })
15237
- ] }),
15238
- /* @__PURE__ */ jsx("div", { className: "py-4", children: /* @__PURE__ */ jsx(
15239
- EnhancedSelect,
15240
- {
15241
- label: "Reason Code",
15242
- placeholder: "Select a reason code",
15243
- options: selectOptions,
15244
- value: reasonCode || "",
15245
- onValueChange: (value) => setValue("reasonCode", value),
15246
- error: errors.reasonCode?.message
15247
- }
15248
- ) }),
15249
- /* @__PURE__ */ jsxs(DialogFooter, { children: [
15250
- /* @__PURE__ */ jsx(
15251
- Button,
15252
- {
15253
- type: "button",
15254
- variant: "outline",
15255
- onClick: handleCancel,
15256
- disabled: isLoading,
15257
- children: "Cancel"
15258
- }
15259
- ),
15260
- /* @__PURE__ */ jsx(
15261
- Button,
15262
- {
15263
- type: "button",
15264
- variant: "destructive",
15265
- onClick: handleSave,
15266
- disabled: isLoading || !reasonCode,
15267
- children: isLoading ? "Returning..." : "Return Transaction"
15268
- }
15269
- )
15270
- ] })
15271
- ] }) });
15272
- }
15273
15516
  var returnReasonCodes = [
15274
15517
  { value: "R01", label: "R01 - Insufficient Funds" },
15275
15518
  { value: "R02", label: "R02 - Account Closed" },
@@ -16273,7 +16516,7 @@ var VelocityLimitDetailsCard = ({
16273
16516
  InfoField,
16274
16517
  {
16275
16518
  label: "Max Amount",
16276
- value: `$${parseFloat(limit.maxAmount).toLocaleString()}`,
16519
+ value: formatCurrency(parseFloat(limit.maxAmount)),
16277
16520
  layout: "horizontal"
16278
16521
  }
16279
16522
  ),
@@ -16310,7 +16553,7 @@ var VelocityLimitDetailsCard = ({
16310
16553
  InfoField,
16311
16554
  {
16312
16555
  label: "Amount Threshold",
16313
- value: `$${parseFloat(limit.amountThreshold).toLocaleString()}`,
16556
+ value: formatCurrency(parseFloat(limit.amountThreshold)),
16314
16557
  layout: "horizontal"
16315
16558
  }
16316
16559
  ),
@@ -17273,6 +17516,6 @@ function ReconExceptions() {
17273
17516
  ] }) });
17274
17517
  }
17275
17518
 
17276
- export { ACHBankCard, ACHBasicInfoCard, ACHDetailsSection, ACHTransferSection, ADJUSTMENT_DIRECTION_OPTIONS, 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, 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, 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, TransactionDetailView, TransactionHistory_default as TransactionHistory, TransactionHistoryFiltersSheet, TransactionHistoryView, TransactionTypeBadge, UIKit, UIKitShowcase, VelocityLimitDetail, VelocityLimits, WireDetailsSection, WireTransferSection, badgeVariants, buttonVariants, cardVariants, downloadCSV, generateStatementCSV, inputVariants, newTransactionSchema, reducer, textareaVariants, toast, useAlertDetail, useCounterpartyEntity, useEditState, useFormWithEditState, useIsMobile, useSidebar, useToast };
17519
+ export { ACHBankCard, ACHBasicInfoCard, ACHDetailsSection, ACHTransferSection, ADJUSTMENT_DIRECTION_OPTIONS, 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, CancelTransactionDialog, 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, ReturnTransactionDialog, 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, TransactionDetailView, TransactionHistory_default as TransactionHistory, TransactionHistoryFiltersSheet, TransactionHistoryView, TransactionTypeBadge, UIKit, UIKitShowcase, VelocityLimitDetail, VelocityLimits, WireDetailsSection, WireTransferSection, badgeVariants, buttonVariants, cardVariants, downloadCSV, generateStatementCSV, inputVariants, newTransactionSchema, reducer, textareaVariants, toast, useAlertDetail, useCounterpartyEntity, useEditState, useFormWithEditState, useIsMobile, useSidebar, useToast };
17277
17520
  //# sourceMappingURL=index.js.map
17278
17521
  //# sourceMappingURL=index.js.map