braid-ui 1.0.97 → 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,43 @@
|
|
|
1
|
+
import { z } from "zod"
|
|
2
|
+
|
|
3
|
+
export const counterpartyBasicInfoSchema = z.object({
|
|
4
|
+
name: z.string().min(1, "Name is required"),
|
|
5
|
+
type: z.string().min(1, "Type is required"),
|
|
6
|
+
status: z.string().min(1, "Status is required"),
|
|
7
|
+
description: z.string().optional(),
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
export const counterpartyProfileSchema = z.object({
|
|
11
|
+
legalName: z.string().min(1, "Legal name is required"),
|
|
12
|
+
dbaName: z.string().optional(),
|
|
13
|
+
businessType: z.string().min(1, "Business type is required"),
|
|
14
|
+
taxId: z.string().min(1, "Tax ID is required"),
|
|
15
|
+
businessPhone: z.string().min(1, "Business phone is required"),
|
|
16
|
+
businessEmail: z.string().email("Invalid email format"),
|
|
17
|
+
website: z.string().url("Invalid URL format").optional().or(z.literal("")),
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
export const addressSchema = z.object({
|
|
21
|
+
streetAddress: z.string().min(1, "Street address is required"),
|
|
22
|
+
apartment: z.string().optional(),
|
|
23
|
+
city: z.string().min(1, "City is required"),
|
|
24
|
+
state: z.string().min(1, "State is required"),
|
|
25
|
+
postalCode: z.string().min(1, "Postal code is required"),
|
|
26
|
+
country: z.string().min(1, "Country is required"),
|
|
27
|
+
addressType: z.string().optional(),
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
export const counterpartyRecordsSchema = z.object({
|
|
31
|
+
id: z.string(),
|
|
32
|
+
createdBy: z.string(),
|
|
33
|
+
createdAt: z.string(),
|
|
34
|
+
updatedBy: z.string(),
|
|
35
|
+
updatedAt: z.string(),
|
|
36
|
+
lastOFACDate: z.string(),
|
|
37
|
+
lastOFACStatus: z.string(),
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
export type CounterpartyBasicInfo = z.infer<typeof counterpartyBasicInfoSchema>
|
|
41
|
+
export type CounterpartyProfile = z.infer<typeof counterpartyProfileSchema>
|
|
42
|
+
export type Address = z.infer<typeof addressSchema>
|
|
43
|
+
export type CounterpartyRecords = z.infer<typeof counterpartyRecordsSchema>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from "zod"
|
|
2
|
+
import { addressSchema } from "./counterparty-schemas"
|
|
3
|
+
|
|
4
|
+
export const wireBasicInfoSchema = z.object({
|
|
5
|
+
counterpartyName: z.string().min(1, "Counterparty name is required"),
|
|
6
|
+
shortName: z.string().min(1, "Short name is required"),
|
|
7
|
+
type: z.string().min(1, "Type is required"),
|
|
8
|
+
description: z.string().optional(),
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
export const beneficiarySchema = z.object({
|
|
12
|
+
name: z.string().min(1, "Beneficiary name is required"),
|
|
13
|
+
accountNumber: z.string().min(1, "Account number is required"),
|
|
14
|
+
address: addressSchema,
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
export const originatorFISchema = z.object({
|
|
18
|
+
accountNumber: z.string().min(1, "Account number is required"),
|
|
19
|
+
name: z.string().min(1, "FI name is required"),
|
|
20
|
+
idType: z.string().min(1, "ID type is required"),
|
|
21
|
+
idNumber: z.string().min(1, "ID number is required"),
|
|
22
|
+
address: addressSchema,
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
export const intermediaryFISchema = z.object({
|
|
26
|
+
accountNumber: z.string().optional(),
|
|
27
|
+
name: z.string().optional(),
|
|
28
|
+
idType: z.string().optional(),
|
|
29
|
+
idNumber: z.string().optional(),
|
|
30
|
+
address: addressSchema.optional(),
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
export const wireTransferSchema = z.object({
|
|
34
|
+
basicInfo: wireBasicInfoSchema,
|
|
35
|
+
beneficiary: beneficiarySchema,
|
|
36
|
+
originatorFI: originatorFISchema,
|
|
37
|
+
intermediaryFI: intermediaryFISchema.optional(),
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
export type WireBasicInfo = z.infer<typeof wireBasicInfoSchema>
|
|
41
|
+
export type Beneficiary = z.infer<typeof beneficiarySchema>
|
|
42
|
+
export type OriginatorFI = z.infer<typeof originatorFISchema>
|
|
43
|
+
export type IntermediaryFI = z.infer<typeof intermediaryFISchema>
|
|
44
|
+
export type WireTransfer = z.infer<typeof wireTransferSchema>
|
package/src/lib/utils.ts
ADDED
package/src/main.tsx
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PageLayout } from "@/components/ui/page-layout"
|
|
2
|
+
|
|
3
|
+
const Cases = () => {
|
|
4
|
+
return (
|
|
5
|
+
<PageLayout
|
|
6
|
+
title="Cases"
|
|
7
|
+
description="Manage and track investigation cases"
|
|
8
|
+
>
|
|
9
|
+
<div className="text-center py-12 text-muted-foreground">
|
|
10
|
+
Cases content coming soon
|
|
11
|
+
</div>
|
|
12
|
+
</PageLayout>
|
|
13
|
+
)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default Cases
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PageLayout } from "@/components/ui/page-layout"
|
|
2
|
+
|
|
3
|
+
const Dashboard = () => {
|
|
4
|
+
return (
|
|
5
|
+
<PageLayout
|
|
6
|
+
title="Dashboard"
|
|
7
|
+
description="Overview of your system metrics and activity"
|
|
8
|
+
>
|
|
9
|
+
<div className="text-center py-12 text-muted-foreground">
|
|
10
|
+
Dashboard content coming soon
|
|
11
|
+
</div>
|
|
12
|
+
</PageLayout>
|
|
13
|
+
)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default Dashboard
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useLocation } from "react-router-dom";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
|
|
4
|
+
const NotFound = () => {
|
|
5
|
+
const location = useLocation();
|
|
6
|
+
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
console.error(
|
|
9
|
+
"404 Error: User attempted to access non-existent route:",
|
|
10
|
+
location.pathname
|
|
11
|
+
);
|
|
12
|
+
}, [location.pathname]);
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<div className="min-h-screen flex items-center justify-center bg-gray-100">
|
|
16
|
+
<div className="text-center">
|
|
17
|
+
<h1 className="text-4xl font-bold mb-4">404</h1>
|
|
18
|
+
<p className="text-xl text-gray-600 mb-4">Oops! Page not found</p>
|
|
19
|
+
<a href="/" className="text-blue-500 hover:text-blue-700 underline">
|
|
20
|
+
Return to Home
|
|
21
|
+
</a>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export default NotFound;
|