braid-ui 1.0.98 → 1.0.99
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/README.md +44 -327
- package/components.json +20 -0
- package/eslint.config.js +29 -0
- package/index.html +24 -0
- package/package.json +55 -115
- package/postcss.config.js +6 -0
- package/public/favicon.ico +0 -0
- package/public/placeholder.svg +1 -0
- package/public/robots.txt +14 -0
- package/src/App.css +42 -0
- package/src/App.tsx +94 -0
- package/src/components/MainLayout.tsx +15 -0
- package/src/components/alerts/AlertDocuments.tsx +320 -0
- package/src/components/alerts/AlertNotes.tsx +185 -0
- package/src/components/alerts/AlertTimeline.tsx +79 -0
- package/src/components/alerts/ContextSection.tsx +155 -0
- package/src/components/app-sidebar.tsx +341 -0
- package/src/components/form-sections/ACHBankCard.tsx +78 -0
- package/src/components/form-sections/ACHBasicInfoCard.tsx +100 -0
- package/src/components/form-sections/ACHTransferSection.tsx +64 -0
- package/src/components/form-sections/AddressForm.tsx +94 -0
- package/src/components/form-sections/BankAddressCard.tsx +95 -0
- package/src/components/form-sections/BankingDetailsCard.tsx +46 -0
- package/src/components/form-sections/BasicInfoCard.tsx +103 -0
- package/src/components/form-sections/BasicInfoSection.tsx +34 -0
- package/src/components/form-sections/BeneficiaryAddress.tsx +19 -0
- package/src/components/form-sections/BeneficiaryCard.tsx +41 -0
- package/src/components/form-sections/BeneficiaryDomesticWire.tsx +23 -0
- package/src/components/form-sections/BusinessProfileCard.tsx +131 -0
- package/src/components/form-sections/BusinessStatusCard.tsx +53 -0
- package/src/components/form-sections/ContactInfoCard.tsx +63 -0
- package/src/components/form-sections/CounterpartyBasicInfo.tsx +101 -0
- package/src/components/form-sections/CounterpartyProfileCard.tsx +104 -0
- package/src/components/form-sections/CounterpartyRecordsCard.tsx +41 -0
- package/src/components/form-sections/IntermediaryCard.tsx +77 -0
- package/src/components/form-sections/IntermediaryFI.tsx +41 -0
- package/src/components/form-sections/IntermediaryFIAddress.tsx +14 -0
- package/src/components/form-sections/OriginatorCard.tsx +49 -0
- package/src/components/form-sections/OriginatorFI.tsx +42 -0
- package/src/components/form-sections/OriginatorFIAddress.tsx +14 -0
- package/src/components/form-sections/PaymentInformationSection.tsx +163 -0
- package/src/components/form-sections/ReceiverCard.tsx +94 -0
- package/src/components/form-sections/WireTransferSection.tsx +75 -0
- package/src/components/layouts/list-page.tsx +103 -0
- package/src/components/transaction/ACHDetailsSection.tsx +95 -0
- package/src/components/transaction/WireDetailsSection.tsx +112 -0
- package/src/components/ui/account-card.tsx +94 -0
- package/src/components/ui/badge.tsx +75 -0
- package/src/components/ui/breadcrumb.tsx +78 -0
- package/src/components/ui/business-type-badge.tsx +42 -0
- package/src/components/ui/button.tsx +56 -0
- package/src/components/ui/calendar.tsx +49 -0
- package/src/components/ui/card.tsx +223 -0
- package/src/components/ui/container.tsx +45 -0
- package/src/components/ui/counterparty-type-badge.tsx +53 -0
- package/src/components/ui/data-grid.tsx +99 -0
- package/src/components/ui/data-table.tsx +152 -0
- package/src/components/ui/detail-page-layout.tsx +83 -0
- package/src/components/ui/dialog.tsx +120 -0
- package/src/components/ui/dropdown-menu.tsx +82 -0
- package/src/components/ui/editable-form-card.tsx +106 -0
- package/src/components/ui/editable-info-field.tsx +67 -0
- package/src/components/ui/enhanced-input.tsx +78 -0
- package/src/components/ui/enhanced-select.tsx +101 -0
- package/src/components/ui/enhanced-textarea.tsx +64 -0
- package/src/components/ui/entity-card.tsx +140 -0
- package/src/components/ui/form-card.tsx +40 -0
- package/src/components/ui/form-field.tsx +50 -0
- package/src/components/ui/form-input.tsx +29 -0
- package/src/components/ui/form-provider.tsx +18 -0
- package/src/components/ui/form-section.tsx +66 -0
- package/src/components/ui/form-select.tsx +35 -0
- package/src/components/ui/info-field.tsx +36 -0
- package/src/components/ui/json-viewer.tsx +146 -0
- package/src/components/ui/label.tsx +24 -0
- package/src/components/ui/metric-card.tsx +80 -0
- package/src/components/ui/page-layout.tsx +183 -0
- package/src/components/ui/popover.tsx +29 -0
- package/src/components/ui/responsive-grid.tsx +46 -0
- package/src/components/ui/separator.tsx +31 -0
- package/src/components/ui/sheet.tsx +140 -0
- package/src/components/ui/sidebar.tsx +775 -0
- package/src/components/ui/sonner.tsx +29 -0
- package/src/components/ui/stack.tsx +77 -0
- package/src/components/ui/status-badge.tsx +68 -0
- package/src/components/ui/tabs.tsx +52 -0
- package/src/components/ui/toast.tsx +127 -0
- package/src/components/ui/toaster.tsx +33 -0
- package/src/components/ui/tooltip.tsx +28 -0
- package/src/components/ui/use-toast.ts +3 -0
- package/src/components/ui-kit/dashboard-demo.tsx +156 -0
- package/src/components/ui-kit/pattern-library.tsx +248 -0
- package/src/components/ui-kit/showcase.tsx +211 -0
- package/src/hooks/use-mobile.tsx +19 -0
- package/src/hooks/use-toast.ts +191 -0
- package/src/hooks/useEditState.ts +70 -0
- package/src/hooks/useFormWithEditState.ts +115 -0
- package/src/{styles.css → index.css} +10 -4
- package/src/lib/constants.ts +25 -0
- package/src/lib/mock-data/alert-data.ts +275 -0
- package/src/lib/mock-data/banking-data.ts +72 -0
- package/src/lib/mock-data/business-data.ts +71 -0
- package/src/lib/mock-data/counterparty-data.ts +70 -0
- package/src/lib/mock-data/index.ts +5 -0
- package/src/lib/mock-data/transaction-data.ts +283 -0
- package/src/lib/mock-data/wire-data.ts +103 -0
- package/src/lib/mock-data.tsx +180 -0
- package/src/lib/schemas/banking-schemas.ts +30 -0
- package/src/lib/schemas/business-schemas.ts +36 -0
- package/src/lib/schemas/counterparty-schemas.ts +43 -0
- package/src/lib/schemas/index.ts +5 -0
- package/src/lib/schemas/wire-schemas.ts +44 -0
- package/src/lib/utils.ts +6 -0
- package/src/main.tsx +10 -0
- package/src/pages/Cases.tsx +16 -0
- package/src/pages/Dashboard.tsx +16 -0
- package/src/pages/NotFound.tsx +27 -0
- package/src/pages/TransactionHistory.tsx +532 -0
- package/src/pages/UIKit.tsx +51 -0
- package/src/pages/alerts/AlertDetail.tsx +193 -0
- package/src/pages/alerts/Alerts.tsx +373 -0
- package/src/pages/business/Business.tsx +48 -0
- package/src/pages/business/Create.tsx +173 -0
- package/src/pages/counterparty/Create.tsx +48 -0
- package/src/pages/counterparty/DomesticWire.tsx +78 -0
- package/src/pages/counterparty/Manage.tsx +79 -0
- package/src/pages/transactions/NewTransaction.tsx +527 -0
- package/src/pages/transactions/TransactionDetail.tsx +192 -0
- package/src/vite-env.d.ts +1 -0
- package/tailwind.config.ts +124 -0
- package/tsconfig.app.json +30 -0
- package/tsconfig.json +19 -0
- package/tsconfig.node.json +22 -0
- package/vite.config.ts +22 -0
- package/dist/css/braid-ui-variables.css +0 -88
- package/dist/css/braid-ui.css +0 -4484
- package/dist/css/braid-ui.min.css +0 -1
- package/dist/index.cjs +0 -4
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -2429
- package/dist/index.d.ts +0 -2429
- package/dist/index.js +0 -4
- package/dist/index.js.map +0 -1
- package/src/styles-only.css +0 -121
- /package/{dist/braid-logo-343BOQZ2.png → src/assets/braid-logo.png} +0 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export interface CounterpartyBasicInfo {
|
|
2
|
+
name: string
|
|
3
|
+
status: string
|
|
4
|
+
type: string
|
|
5
|
+
businessType?: string
|
|
6
|
+
description: string
|
|
7
|
+
website?: string
|
|
8
|
+
taxId?: string
|
|
9
|
+
incorporationDate?: string
|
|
10
|
+
legalStructure?: string
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface CounterpartyProfile {
|
|
14
|
+
primaryContact: string
|
|
15
|
+
contactEmail: string
|
|
16
|
+
contactPhone: string
|
|
17
|
+
secondaryContact?: string
|
|
18
|
+
industry?: string
|
|
19
|
+
region?: string
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface CounterpartyAddress {
|
|
23
|
+
street: string
|
|
24
|
+
city: string
|
|
25
|
+
state: string
|
|
26
|
+
postalCode: string
|
|
27
|
+
country: string
|
|
28
|
+
apartment?: string
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const defaultCounterpartyBasicInfo: CounterpartyBasicInfo = {
|
|
32
|
+
name: "Acme Corporation",
|
|
33
|
+
status: "active",
|
|
34
|
+
type: "business",
|
|
35
|
+
businessType: "corporation",
|
|
36
|
+
description: "Leading technology solutions provider",
|
|
37
|
+
website: "https://acme.com",
|
|
38
|
+
taxId: "12-3456789",
|
|
39
|
+
incorporationDate: "2020-01-15",
|
|
40
|
+
legalStructure: "C-Corporation"
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export const defaultCounterpartyProfile: CounterpartyProfile = {
|
|
44
|
+
primaryContact: "John Smith",
|
|
45
|
+
contactEmail: "john.smith@acme.com",
|
|
46
|
+
contactPhone: "+1 (555) 123-4567",
|
|
47
|
+
secondaryContact: "Jane Doe",
|
|
48
|
+
industry: "Technology",
|
|
49
|
+
region: "North America"
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export const defaultCounterpartyAddress: CounterpartyAddress = {
|
|
53
|
+
street: "123 Business Ave",
|
|
54
|
+
city: "New York",
|
|
55
|
+
state: "NY",
|
|
56
|
+
postalCode: "10001",
|
|
57
|
+
country: "US",
|
|
58
|
+
apartment: "Suite 100"
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Combined counterparty profile data that matches the schema
|
|
62
|
+
export const defaultCounterpartyProfileData = {
|
|
63
|
+
legalName: "Acme Corporation",
|
|
64
|
+
dbaName: "ACME Tech",
|
|
65
|
+
businessType: "corporation",
|
|
66
|
+
taxId: "12-3456789",
|
|
67
|
+
businessPhone: "+1 (555) 123-4567",
|
|
68
|
+
businessEmail: "contact@acme.com",
|
|
69
|
+
website: "https://acme.com"
|
|
70
|
+
}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
export interface Transaction {
|
|
2
|
+
id: string
|
|
3
|
+
created: string
|
|
4
|
+
accountNumber: string
|
|
5
|
+
amount: number
|
|
6
|
+
customer: string
|
|
7
|
+
counterparty: string
|
|
8
|
+
description: string
|
|
9
|
+
transactionType: string
|
|
10
|
+
status: "PENDING" | "POSTED" | "FAILED" | "CANCELLED"
|
|
11
|
+
updated: string
|
|
12
|
+
wireDetails?: any
|
|
13
|
+
achDetails?: any
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const mockTransactions: Transaction[] = [
|
|
17
|
+
{
|
|
18
|
+
id: "1",
|
|
19
|
+
created: "2025-10-01 00:16",
|
|
20
|
+
accountNumber: "126713605718",
|
|
21
|
+
amount: -7293.32,
|
|
22
|
+
customer: "Rise Works Inc",
|
|
23
|
+
counterparty: "VEDANT JAYESHKUMAR PATI",
|
|
24
|
+
description: "4NnuJKyD9a8LUmkm",
|
|
25
|
+
transactionType: "Ach Originator Credit",
|
|
26
|
+
status: "PENDING",
|
|
27
|
+
updated: "2025-10-01 00:16",
|
|
28
|
+
achDetails: {
|
|
29
|
+
type: "ACH Credit",
|
|
30
|
+
originatorName: "Rise Works Inc",
|
|
31
|
+
originatorAccountNumber: "126713605718",
|
|
32
|
+
receiverName: "VEDANT JAYESHKUMAR PATI",
|
|
33
|
+
receiverAccountNumber: "9876543210",
|
|
34
|
+
receiverRoutingNumber: "021000021",
|
|
35
|
+
amount: 7293.32,
|
|
36
|
+
secCode: "CCD",
|
|
37
|
+
companyEntryDescription: "PAYROLL",
|
|
38
|
+
companyDiscretionaryData: "4NnuJKyD9a8LUmkm",
|
|
39
|
+
individualIdNumber: "1234567890",
|
|
40
|
+
individualName: "VEDANT JAYESHKUMAR PATI",
|
|
41
|
+
traceNumber: "021000021234567",
|
|
42
|
+
raw: {
|
|
43
|
+
recordType: "6",
|
|
44
|
+
transactionCode: "22",
|
|
45
|
+
receivingDFIIdentification: "02100002",
|
|
46
|
+
checkDigit: "1",
|
|
47
|
+
DFIAccountNumber: "9876543210",
|
|
48
|
+
amount: "0000729332",
|
|
49
|
+
individualIdentificationNumber: "1234567890",
|
|
50
|
+
individualName: "VEDANT JAYESHKUMAR PA",
|
|
51
|
+
discretionaryData: " ",
|
|
52
|
+
addendaRecordIndicator: "0",
|
|
53
|
+
traceNumber: "021000021234567",
|
|
54
|
+
batchHeader: {
|
|
55
|
+
recordType: "5",
|
|
56
|
+
serviceClassCode: "200",
|
|
57
|
+
companyName: "RISE WORKS INC",
|
|
58
|
+
companyDiscretionaryData: "4NnuJKyD9a8LU",
|
|
59
|
+
companyIdentification: "1234567890",
|
|
60
|
+
standardEntryClassCode: "CCD",
|
|
61
|
+
companyEntryDescription: "PAYROLL",
|
|
62
|
+
companyDescriptiveDate: "251001",
|
|
63
|
+
effectiveEntryDate: "251001",
|
|
64
|
+
settlementDate: " ",
|
|
65
|
+
originatorStatusCode: "1",
|
|
66
|
+
originatingDFIIdentification: "02100002",
|
|
67
|
+
batchNumber: "0000001"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
id: "2",
|
|
74
|
+
created: "2025-10-01 00:09",
|
|
75
|
+
accountNumber: "899606565333",
|
|
76
|
+
amount: 0.50,
|
|
77
|
+
customer: "SSB Bank",
|
|
78
|
+
counterparty: "Maung Lwin",
|
|
79
|
+
description: "ACH Fee",
|
|
80
|
+
transactionType: "Fee Ach Transaction",
|
|
81
|
+
status: "POSTED",
|
|
82
|
+
updated: "2025-10-01 00:09"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
id: "3",
|
|
86
|
+
created: "2025-09-30 23:45",
|
|
87
|
+
accountNumber: "445821903456",
|
|
88
|
+
amount: 15000.00,
|
|
89
|
+
customer: "Tech Solutions LLC",
|
|
90
|
+
counterparty: "Global Suppliers Inc",
|
|
91
|
+
description: "Invoice Payment #INV-2024-089",
|
|
92
|
+
transactionType: "Wire Domestic Credit",
|
|
93
|
+
status: "POSTED",
|
|
94
|
+
updated: "2025-10-01 00:12",
|
|
95
|
+
wireDetails: {
|
|
96
|
+
type: "Domestic Wire",
|
|
97
|
+
originatorName: "Tech Solutions LLC",
|
|
98
|
+
originatorAccountNumber: "445821903456",
|
|
99
|
+
originatorAddress: "123 Tech Street, San Francisco, CA 94105",
|
|
100
|
+
beneficiaryName: "Global Suppliers Inc",
|
|
101
|
+
beneficiaryAccountNumber: "998877665544",
|
|
102
|
+
beneficiaryAddress: "456 Supply Avenue, New York, NY 10001",
|
|
103
|
+
beneficiaryFIName: "Chase Bank",
|
|
104
|
+
beneficiaryFIRoutingNumber: "021000021",
|
|
105
|
+
beneficiaryFIAddress: "270 Park Avenue, New York, NY 10017",
|
|
106
|
+
originatorFIName: "Wells Fargo Bank",
|
|
107
|
+
originatorFIRoutingNumber: "121000248",
|
|
108
|
+
originatorFIAddress: "420 Montgomery Street, San Francisco, CA 94104",
|
|
109
|
+
intermediaryFIName: "Bank of America",
|
|
110
|
+
intermediaryFIRoutingNumber: "026009593",
|
|
111
|
+
intermediaryFIAddress: "100 Federal Street, Boston, MA 02110",
|
|
112
|
+
raw: {
|
|
113
|
+
messageType: "MT103",
|
|
114
|
+
sender: "WFBIUS6SXXX",
|
|
115
|
+
receiver: "CHASUS33XXX",
|
|
116
|
+
transactionReference: "INV-2024-089-TXN-001",
|
|
117
|
+
relatedReference: "INV-2024-089",
|
|
118
|
+
bankOperationCode: "CRED",
|
|
119
|
+
instructionCode: "CHQB",
|
|
120
|
+
valueDate: "2025-09-30",
|
|
121
|
+
currency: "USD",
|
|
122
|
+
amount: "15000.00",
|
|
123
|
+
orderingCustomer: {
|
|
124
|
+
account: "445821903456",
|
|
125
|
+
name: "Tech Solutions LLC",
|
|
126
|
+
address: [
|
|
127
|
+
"123 Tech Street",
|
|
128
|
+
"San Francisco, CA 94105",
|
|
129
|
+
"United States"
|
|
130
|
+
]
|
|
131
|
+
},
|
|
132
|
+
orderingInstitution: {
|
|
133
|
+
bic: "WFBIUS6SXXX",
|
|
134
|
+
name: "Wells Fargo Bank N.A.",
|
|
135
|
+
address: [
|
|
136
|
+
"420 Montgomery Street",
|
|
137
|
+
"San Francisco, CA 94104"
|
|
138
|
+
]
|
|
139
|
+
},
|
|
140
|
+
intermediaryInstitution: {
|
|
141
|
+
bic: "BOFAUS3NXXX",
|
|
142
|
+
name: "Bank of America N.A.",
|
|
143
|
+
clearingCode: "026009593",
|
|
144
|
+
address: [
|
|
145
|
+
"100 Federal Street",
|
|
146
|
+
"Boston, MA 02110"
|
|
147
|
+
]
|
|
148
|
+
},
|
|
149
|
+
beneficiaryInstitution: {
|
|
150
|
+
bic: "CHASUS33XXX",
|
|
151
|
+
name: "JPMorgan Chase Bank N.A.",
|
|
152
|
+
clearingCode: "021000021",
|
|
153
|
+
address: [
|
|
154
|
+
"270 Park Avenue",
|
|
155
|
+
"New York, NY 10017"
|
|
156
|
+
]
|
|
157
|
+
},
|
|
158
|
+
beneficiaryCustomer: {
|
|
159
|
+
account: "998877665544",
|
|
160
|
+
name: "Global Suppliers Inc",
|
|
161
|
+
address: [
|
|
162
|
+
"456 Supply Avenue",
|
|
163
|
+
"New York, NY 10001",
|
|
164
|
+
"United States"
|
|
165
|
+
]
|
|
166
|
+
},
|
|
167
|
+
remittanceInformation: "Invoice Payment for INV-2024-089 - Equipment Purchase",
|
|
168
|
+
regulatoryReporting: {
|
|
169
|
+
code: "BENEFRES",
|
|
170
|
+
country: "US",
|
|
171
|
+
narrative: "Payment for goods"
|
|
172
|
+
},
|
|
173
|
+
senderToReceiverInformation: [
|
|
174
|
+
"Payment for invoice INV-2024-089",
|
|
175
|
+
"Equipment and supplies purchase",
|
|
176
|
+
"Net 30 terms - On time payment"
|
|
177
|
+
],
|
|
178
|
+
chargeDetails: "OUR"
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
id: "4",
|
|
184
|
+
created: "2025-09-30 22:18",
|
|
185
|
+
accountNumber: "778901234567",
|
|
186
|
+
amount: -2500.75,
|
|
187
|
+
customer: "Metro Business Group",
|
|
188
|
+
counterparty: "Pacific Trading Co",
|
|
189
|
+
description: "Vendor Payment",
|
|
190
|
+
transactionType: "Ach Originator Debit",
|
|
191
|
+
status: "POSTED",
|
|
192
|
+
updated: "2025-09-30 23:01"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
id: "5",
|
|
196
|
+
created: "2025-09-30 21:05",
|
|
197
|
+
accountNumber: "334455667788",
|
|
198
|
+
amount: 500.00,
|
|
199
|
+
customer: "Sunrise Enterprises",
|
|
200
|
+
counterparty: "John Mitchell",
|
|
201
|
+
description: "Contractor Payment",
|
|
202
|
+
transactionType: "Ach Originator Credit",
|
|
203
|
+
status: "PENDING",
|
|
204
|
+
updated: "2025-09-30 21:05"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
id: "6",
|
|
208
|
+
created: "2025-09-30 19:30",
|
|
209
|
+
accountNumber: "998877665544",
|
|
210
|
+
amount: -125000.00,
|
|
211
|
+
customer: "Real Estate Holdings",
|
|
212
|
+
counterparty: "Property Management LLC",
|
|
213
|
+
description: "Monthly Rent Payment",
|
|
214
|
+
transactionType: "Wire Domestic Debit",
|
|
215
|
+
status: "POSTED",
|
|
216
|
+
updated: "2025-09-30 20:15"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
id: "7",
|
|
220
|
+
created: "2025-09-30 17:22",
|
|
221
|
+
accountNumber: "556677889900",
|
|
222
|
+
amount: 3.00,
|
|
223
|
+
customer: "First National Bank",
|
|
224
|
+
counterparty: "Sarah Johnson",
|
|
225
|
+
description: "Wire Transfer Fee",
|
|
226
|
+
transactionType: "Fee Wire Transaction",
|
|
227
|
+
status: "POSTED",
|
|
228
|
+
updated: "2025-09-30 17:22"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
id: "8",
|
|
232
|
+
created: "2025-09-30 15:40",
|
|
233
|
+
accountNumber: "223344556677",
|
|
234
|
+
amount: 8750.50,
|
|
235
|
+
customer: "Innovation Labs Inc",
|
|
236
|
+
counterparty: "Research Partners",
|
|
237
|
+
description: "R&D Funding Transfer",
|
|
238
|
+
transactionType: "Ach Originator Credit",
|
|
239
|
+
status: "FAILED",
|
|
240
|
+
updated: "2025-09-30 16:10"
|
|
241
|
+
}
|
|
242
|
+
]
|
|
243
|
+
|
|
244
|
+
export const mockTransactionTimeline = [
|
|
245
|
+
{
|
|
246
|
+
id: "1",
|
|
247
|
+
action: "Transaction Created",
|
|
248
|
+
user: "System",
|
|
249
|
+
details: "Transaction initiated via API",
|
|
250
|
+
status: "Pending",
|
|
251
|
+
timestamp: "2025-10-01 00:16:23"
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
id: "2",
|
|
255
|
+
action: "Validation Completed",
|
|
256
|
+
user: "System",
|
|
257
|
+
details: "All validation checks passed",
|
|
258
|
+
timestamp: "2025-10-01 00:16:45"
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
id: "3",
|
|
262
|
+
action: "Assigned for Review",
|
|
263
|
+
user: "approverdev",
|
|
264
|
+
details: "Transaction assigned to compliance team",
|
|
265
|
+
status: "In Progress",
|
|
266
|
+
timestamp: "2025-10-01 00:17:12"
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
id: "4",
|
|
270
|
+
action: "Compliance Review",
|
|
271
|
+
user: "Sarah Johnson",
|
|
272
|
+
details: "AML and sanctions screening completed",
|
|
273
|
+
timestamp: "2025-10-01 00:18:30"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
id: "5",
|
|
277
|
+
action: "Approved",
|
|
278
|
+
user: "Michael Chen",
|
|
279
|
+
details: "Transaction approved for processing",
|
|
280
|
+
status: "Closed",
|
|
281
|
+
timestamp: "2025-10-01 00:19:45"
|
|
282
|
+
}
|
|
283
|
+
]
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
export interface WireTransferInfo {
|
|
2
|
+
transferType: string
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export interface ReceiverInfo {
|
|
6
|
+
routingNumber: string
|
|
7
|
+
bankShortName: string
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface BeneficiaryInfo {
|
|
11
|
+
accountNumber: string
|
|
12
|
+
address: {
|
|
13
|
+
street: string
|
|
14
|
+
city: string
|
|
15
|
+
state: string
|
|
16
|
+
postalCode: string
|
|
17
|
+
country: string
|
|
18
|
+
apartment?: string
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface OriginatorFIInfo {
|
|
23
|
+
accountNumber: string
|
|
24
|
+
name: string
|
|
25
|
+
idType: string
|
|
26
|
+
idNumber: string
|
|
27
|
+
address: {
|
|
28
|
+
streetAddress: string
|
|
29
|
+
apartment?: string
|
|
30
|
+
city: string
|
|
31
|
+
state: string
|
|
32
|
+
postalCode: string
|
|
33
|
+
country: string
|
|
34
|
+
addressType?: string
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface IntermediaryFIInfo {
|
|
39
|
+
accountNumber?: string
|
|
40
|
+
name: string
|
|
41
|
+
idType: string
|
|
42
|
+
idNumber: string
|
|
43
|
+
address?: {
|
|
44
|
+
streetAddress: string
|
|
45
|
+
apartment?: string
|
|
46
|
+
city: string
|
|
47
|
+
state: string
|
|
48
|
+
postalCode: string
|
|
49
|
+
country: string
|
|
50
|
+
addressType?: string
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export const defaultWireTransferInfo: WireTransferInfo = {
|
|
55
|
+
transferType: "domestic"
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export const defaultReceiverInfo: ReceiverInfo = {
|
|
59
|
+
routingNumber: "043087080",
|
|
60
|
+
bankShortName: "Bank of New York"
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export const defaultBeneficiaryInfo: BeneficiaryInfo = {
|
|
64
|
+
accountNumber: "123456789012",
|
|
65
|
+
address: {
|
|
66
|
+
street: "123 Main Street",
|
|
67
|
+
city: "New York",
|
|
68
|
+
state: "NY",
|
|
69
|
+
postalCode: "10001",
|
|
70
|
+
country: "US",
|
|
71
|
+
apartment: "Apartment 4B"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export const defaultOriginatorFIInfo: OriginatorFIInfo = {
|
|
76
|
+
accountNumber: "987654321098",
|
|
77
|
+
name: "Originator Bank",
|
|
78
|
+
idType: "swift",
|
|
79
|
+
idNumber: "ORIGUS33XXX",
|
|
80
|
+
address: {
|
|
81
|
+
streetAddress: "270 Park Avenue",
|
|
82
|
+
city: "New York",
|
|
83
|
+
state: "NY",
|
|
84
|
+
postalCode: "10017",
|
|
85
|
+
country: "US",
|
|
86
|
+
addressType: "business"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export const defaultIntermediaryFIInfo: IntermediaryFIInfo = {
|
|
91
|
+
accountNumber: "555666777888",
|
|
92
|
+
name: "Intermediary Bank",
|
|
93
|
+
idType: "swift",
|
|
94
|
+
idNumber: "INTEUS33XXX",
|
|
95
|
+
address: {
|
|
96
|
+
streetAddress: "Taunusanlage 12",
|
|
97
|
+
city: "Frankfurt",
|
|
98
|
+
state: "HE",
|
|
99
|
+
postalCode: "60325",
|
|
100
|
+
country: "DE",
|
|
101
|
+
addressType: "business"
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { Building, Users, User, CreditCard } from "lucide-react"
|
|
2
|
+
|
|
3
|
+
export const mockCounterparties = [
|
|
4
|
+
{
|
|
5
|
+
id: "1",
|
|
6
|
+
name: "Acme Corporation",
|
|
7
|
+
type: "business",
|
|
8
|
+
businessType: "corporation",
|
|
9
|
+
status: "active",
|
|
10
|
+
description: "Leading technology solutions provider",
|
|
11
|
+
metadata: {
|
|
12
|
+
email: "contact@acme.com",
|
|
13
|
+
phone: "+1 (555) 123-4567",
|
|
14
|
+
country: "United States",
|
|
15
|
+
lastActivity: "2024-01-15"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: "2",
|
|
20
|
+
name: "Global Tech LLC",
|
|
21
|
+
type: "business",
|
|
22
|
+
businessType: "llc",
|
|
23
|
+
status: "pending",
|
|
24
|
+
description: "Software development and consulting services",
|
|
25
|
+
metadata: {
|
|
26
|
+
email: "info@globaltech.com",
|
|
27
|
+
phone: "+1 (555) 987-6543",
|
|
28
|
+
country: "Canada",
|
|
29
|
+
lastActivity: "2024-01-10"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: "3",
|
|
34
|
+
name: "John Smith",
|
|
35
|
+
type: "individual",
|
|
36
|
+
businessType: null,
|
|
37
|
+
status: "active",
|
|
38
|
+
description: "Individual contractor and consultant",
|
|
39
|
+
metadata: {
|
|
40
|
+
email: "john.smith@email.com",
|
|
41
|
+
phone: "+1 (555) 456-7890",
|
|
42
|
+
country: "United States",
|
|
43
|
+
lastActivity: "2024-01-20"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: "4",
|
|
48
|
+
name: "Innovation Partners",
|
|
49
|
+
type: "business",
|
|
50
|
+
businessType: "partnership",
|
|
51
|
+
status: "inactive",
|
|
52
|
+
description: "Strategic business consulting firm",
|
|
53
|
+
metadata: {
|
|
54
|
+
email: "hello@innovation.com",
|
|
55
|
+
phone: "+1 (555) 321-0987",
|
|
56
|
+
country: "United Kingdom",
|
|
57
|
+
lastActivity: "2024-01-05"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
|
|
62
|
+
export const mockAccounts = [
|
|
63
|
+
{
|
|
64
|
+
id: "1",
|
|
65
|
+
name: "Primary Checking",
|
|
66
|
+
number: "****1234",
|
|
67
|
+
type: "checking" as const,
|
|
68
|
+
status: "active" as const,
|
|
69
|
+
balance: "$24,567.89",
|
|
70
|
+
currency: "USD",
|
|
71
|
+
institution: "JPMorgan Chase",
|
|
72
|
+
routingNumber: "021000021",
|
|
73
|
+
country: "United States"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: "2",
|
|
77
|
+
name: "Business Savings",
|
|
78
|
+
number: "****5678",
|
|
79
|
+
type: "savings" as const,
|
|
80
|
+
status: "active" as const,
|
|
81
|
+
balance: "$150,000.00",
|
|
82
|
+
currency: "USD",
|
|
83
|
+
institution: "Bank of America",
|
|
84
|
+
routingNumber: "026009593",
|
|
85
|
+
country: "United States"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
id: "3",
|
|
89
|
+
name: "Investment Account",
|
|
90
|
+
number: "****9012",
|
|
91
|
+
type: "investment" as const,
|
|
92
|
+
status: "pending" as const,
|
|
93
|
+
balance: "$75,432.10",
|
|
94
|
+
currency: "USD",
|
|
95
|
+
institution: "Fidelity Investments",
|
|
96
|
+
routingNumber: "011000235",
|
|
97
|
+
country: "United States"
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
|
|
101
|
+
export const mockMetrics = [
|
|
102
|
+
{
|
|
103
|
+
title: "Total Counterparties",
|
|
104
|
+
value: "1,234",
|
|
105
|
+
description: "Active business relationships",
|
|
106
|
+
trend: {
|
|
107
|
+
value: 12,
|
|
108
|
+
label: "from last month",
|
|
109
|
+
direction: "up" as const
|
|
110
|
+
},
|
|
111
|
+
icon: <Building className="w-4 h-4" />,
|
|
112
|
+
variant: "default" as const
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
title: "Wire Transfers",
|
|
116
|
+
value: "$2.4M",
|
|
117
|
+
description: "This month",
|
|
118
|
+
trend: {
|
|
119
|
+
value: 8,
|
|
120
|
+
label: "from last month",
|
|
121
|
+
direction: "up" as const
|
|
122
|
+
},
|
|
123
|
+
icon: <CreditCard className="w-4 h-4" />,
|
|
124
|
+
variant: "success" as const
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
title: "ACH Transfers",
|
|
128
|
+
value: "567",
|
|
129
|
+
description: "Processed this week",
|
|
130
|
+
trend: {
|
|
131
|
+
value: -3,
|
|
132
|
+
label: "from last week",
|
|
133
|
+
direction: "down" as const
|
|
134
|
+
},
|
|
135
|
+
icon: <Users className="w-4 h-4" />,
|
|
136
|
+
variant: "warning" as const
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
title: "Pending Reviews",
|
|
140
|
+
value: "23",
|
|
141
|
+
description: "Require attention",
|
|
142
|
+
trend: {
|
|
143
|
+
value: 0,
|
|
144
|
+
label: "no change",
|
|
145
|
+
direction: "neutral" as const
|
|
146
|
+
},
|
|
147
|
+
icon: <User className="w-4 h-4" />,
|
|
148
|
+
variant: "destructive" as const
|
|
149
|
+
}
|
|
150
|
+
]
|
|
151
|
+
|
|
152
|
+
export const mockTableData = [
|
|
153
|
+
{
|
|
154
|
+
id: "1",
|
|
155
|
+
name: "Acme Corporation",
|
|
156
|
+
type: "Business",
|
|
157
|
+
status: "Active",
|
|
158
|
+
amount: "$125,000",
|
|
159
|
+
date: "2024-01-15",
|
|
160
|
+
verified: true
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
id: "2",
|
|
164
|
+
name: "Global Tech LLC",
|
|
165
|
+
type: "Business",
|
|
166
|
+
status: "Pending",
|
|
167
|
+
amount: "$75,500",
|
|
168
|
+
date: "2024-01-12",
|
|
169
|
+
verified: false
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
id: "3",
|
|
173
|
+
name: "John Smith",
|
|
174
|
+
type: "Individual",
|
|
175
|
+
status: "Active",
|
|
176
|
+
amount: "$45,200",
|
|
177
|
+
date: "2024-01-10",
|
|
178
|
+
verified: true
|
|
179
|
+
}
|
|
180
|
+
]
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from "zod"
|
|
2
|
+
|
|
3
|
+
export const achBasicInfoSchema = z.object({
|
|
4
|
+
counterpartyName: z.string().min(1, "Counterparty name is required"),
|
|
5
|
+
shortName: z.string().min(1, "Short name is required"),
|
|
6
|
+
type: z.string().min(1, "Type is required"),
|
|
7
|
+
description: z.string().optional(),
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
export const achBankDetailsSchema = z.object({
|
|
11
|
+
gatewayRoutingNumber: z.string().min(9, "Gateway routing number must be at least 9 digits").max(9, "Gateway routing number must be 9 digits"),
|
|
12
|
+
rdfiNumberQualifier: z.string().min(1, "RDFI number qualifier is required"),
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
export const achTransferSchema = z.object({
|
|
16
|
+
basicInfo: achBasicInfoSchema,
|
|
17
|
+
bankDetails: achBankDetailsSchema,
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
export const bankingDetailsSchema = z.object({
|
|
21
|
+
primaryBank: z.string().min(1, "Primary bank is required"),
|
|
22
|
+
accountNumber: z.string().min(1, "Account number is required"),
|
|
23
|
+
routingNumber: z.string().min(9, "Routing number must be at least 9 digits").max(9, "Routing number must be 9 digits"),
|
|
24
|
+
accountType: z.string().min(1, "Account type is required"),
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
export type ACHBasicInfo = z.infer<typeof achBasicInfoSchema>
|
|
28
|
+
export type ACHBankDetails = z.infer<typeof achBankDetailsSchema>
|
|
29
|
+
export type ACHTransfer = z.infer<typeof achTransferSchema>
|
|
30
|
+
export type BankingDetails = z.infer<typeof bankingDetailsSchema>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from "zod"
|
|
2
|
+
import { addressSchema } from "./counterparty-schemas"
|
|
3
|
+
|
|
4
|
+
export const businessProfileSchema = z.object({
|
|
5
|
+
legalName: z.string().min(1, "Legal name is required"),
|
|
6
|
+
dbaName: z.string().optional(),
|
|
7
|
+
businessType: z.string().min(1, "Business type is required"),
|
|
8
|
+
taxId: z.string().min(1, "Tax ID is required"),
|
|
9
|
+
businessPhone: z.string().min(1, "Business phone is required"),
|
|
10
|
+
businessEmail: z.string().email("Invalid email format"),
|
|
11
|
+
website: z.string().url("Invalid URL format").optional().or(z.literal("")),
|
|
12
|
+
address: addressSchema,
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
export const businessStatusSchema = z.object({
|
|
16
|
+
status: z.string().min(1, "Status is required"),
|
|
17
|
+
cipStatus: z.string().min(1, "CIP status is required"),
|
|
18
|
+
createdDate: z.string(),
|
|
19
|
+
updatedDate: z.string(),
|
|
20
|
+
lastOFACDate: z.string(),
|
|
21
|
+
lastOFACStatus: z.string(),
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
export const businessRecordsSchema = z.object({
|
|
25
|
+
id: z.string(),
|
|
26
|
+
createdBy: z.string(),
|
|
27
|
+
createdAt: z.string(),
|
|
28
|
+
updatedBy: z.string(),
|
|
29
|
+
updatedAt: z.string(),
|
|
30
|
+
lastOFACDate: z.string(),
|
|
31
|
+
lastOFACStatus: z.string(),
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
export type BusinessProfile = z.infer<typeof businessProfileSchema>
|
|
35
|
+
export type BusinessStatus = z.infer<typeof businessStatusSchema>
|
|
36
|
+
export type BusinessRecords = z.infer<typeof businessRecordsSchema>
|