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
package/README.md
CHANGED
|
@@ -1,356 +1,73 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Welcome to your Lovable project
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Project info
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**URL**: https://lovable.dev/projects/aca89158-f0a1-4aec-b491-0b98086f2184
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
npm install braid-ui
|
|
9
|
-
# or
|
|
10
|
-
yarn add braid-ui
|
|
11
|
-
# or
|
|
12
|
-
pnpm add braid-ui
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Quick Start
|
|
16
|
-
|
|
17
|
-
```tsx
|
|
18
|
-
import { Button, Card } from 'braid-ui'
|
|
19
|
-
import 'braid-ui/styles'
|
|
20
|
-
|
|
21
|
-
function App() {
|
|
22
|
-
return (
|
|
23
|
-
<Card>
|
|
24
|
-
<Button>Click me</Button>
|
|
25
|
-
</Card>
|
|
26
|
-
)
|
|
27
|
-
}
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Peer Dependencies
|
|
31
|
-
|
|
32
|
-
Braid UI requires the following peer dependencies. Make sure they are installed:
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
npm install react react-dom react-router-dom \
|
|
36
|
-
@radix-ui/react-accordion @radix-ui/react-alert-dialog \
|
|
37
|
-
@radix-ui/react-aspect-ratio @radix-ui/react-avatar \
|
|
38
|
-
@radix-ui/react-checkbox @radix-ui/react-collapsible \
|
|
39
|
-
@radix-ui/react-context-menu @radix-ui/react-dialog \
|
|
40
|
-
@radix-ui/react-dropdown-menu @radix-ui/react-hover-card \
|
|
41
|
-
@radix-ui/react-label @radix-ui/react-menubar \
|
|
42
|
-
@radix-ui/react-navigation-menu @radix-ui/react-popover \
|
|
43
|
-
@radix-ui/react-progress @radix-ui/react-radio-group \
|
|
44
|
-
@radix-ui/react-scroll-area @radix-ui/react-select \
|
|
45
|
-
@radix-ui/react-separator @radix-ui/react-slider \
|
|
46
|
-
@radix-ui/react-slot @radix-ui/react-switch \
|
|
47
|
-
@radix-ui/react-tabs @radix-ui/react-toast \
|
|
48
|
-
@radix-ui/react-toggle @radix-ui/react-toggle-group \
|
|
49
|
-
@radix-ui/react-tooltip \
|
|
50
|
-
@tanstack/react-query @hookform/resolvers \
|
|
51
|
-
class-variance-authority clsx cmdk date-fns \
|
|
52
|
-
embla-carousel-react input-otp lucide-react next-themes \
|
|
53
|
-
react-day-picker react-hook-form react-resizable-panels \
|
|
54
|
-
recharts sonner tailwind-merge tailwindcss-animate vaul zod \
|
|
55
|
-
lodash react-pdf
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Or install them individually as needed. See the full list in `package.json` under `peerDependencies`.
|
|
59
|
-
|
|
60
|
-
## Setup
|
|
61
|
-
|
|
62
|
-
### 1. Import Styles
|
|
63
|
-
|
|
64
|
-
Import the CSS styles in your application entry point:
|
|
7
|
+
## How can I edit this code?
|
|
65
8
|
|
|
66
|
-
|
|
67
|
-
// In your main.tsx, App.tsx, or index.tsx
|
|
68
|
-
import 'braid-ui/styles'
|
|
69
|
-
```
|
|
9
|
+
There are several ways of editing your application.
|
|
70
10
|
|
|
71
|
-
|
|
11
|
+
**Use Lovable**
|
|
72
12
|
|
|
73
|
-
|
|
74
|
-
/* In your globals.css or main.css */
|
|
75
|
-
@import 'braid-ui/styles';
|
|
76
|
-
```
|
|
13
|
+
Simply visit the [Lovable Project](https://lovable.dev/projects/aca89158-f0a1-4aec-b491-0b98086f2184) and start prompting.
|
|
77
14
|
|
|
78
|
-
|
|
15
|
+
Changes made via Lovable will be committed automatically to this repo.
|
|
79
16
|
|
|
80
|
-
|
|
17
|
+
**Use your preferred IDE**
|
|
81
18
|
|
|
82
|
-
|
|
83
|
-
/** @type {import('tailwindcss').Config} */
|
|
84
|
-
module.exports = {
|
|
85
|
-
content: [
|
|
86
|
-
"./src/**/*.{js,ts,jsx,tsx}",
|
|
87
|
-
"./node_modules/braid-ui/dist/**/*.{js,ts,jsx,tsx}",
|
|
88
|
-
],
|
|
89
|
-
theme: {
|
|
90
|
-
extend: {
|
|
91
|
-
colors: {
|
|
92
|
-
border: 'hsl(var(--border))',
|
|
93
|
-
input: 'hsl(var(--input))',
|
|
94
|
-
ring: 'hsl(var(--ring))',
|
|
95
|
-
background: 'hsl(var(--background))',
|
|
96
|
-
foreground: 'hsl(var(--foreground))',
|
|
97
|
-
primary: {
|
|
98
|
-
DEFAULT: 'hsl(var(--primary))',
|
|
99
|
-
foreground: 'hsl(var(--primary-foreground))',
|
|
100
|
-
glow: 'hsl(var(--primary-glow))'
|
|
101
|
-
},
|
|
102
|
-
secondary: {
|
|
103
|
-
DEFAULT: 'hsl(var(--secondary))',
|
|
104
|
-
foreground: 'hsl(var(--secondary-foreground))'
|
|
105
|
-
},
|
|
106
|
-
destructive: {
|
|
107
|
-
DEFAULT: 'hsl(var(--destructive))',
|
|
108
|
-
foreground: 'hsl(var(--destructive-foreground))'
|
|
109
|
-
},
|
|
110
|
-
success: {
|
|
111
|
-
DEFAULT: 'hsl(var(--success))',
|
|
112
|
-
foreground: 'hsl(var(--success-foreground))'
|
|
113
|
-
},
|
|
114
|
-
warning: {
|
|
115
|
-
DEFAULT: 'hsl(var(--warning))',
|
|
116
|
-
foreground: 'hsl(var(--warning-foreground))'
|
|
117
|
-
},
|
|
118
|
-
muted: {
|
|
119
|
-
DEFAULT: 'hsl(var(--muted))',
|
|
120
|
-
foreground: 'hsl(var(--muted-foreground))'
|
|
121
|
-
},
|
|
122
|
-
accent: {
|
|
123
|
-
DEFAULT: 'hsl(var(--accent))',
|
|
124
|
-
foreground: 'hsl(var(--accent-foreground))'
|
|
125
|
-
},
|
|
126
|
-
popover: {
|
|
127
|
-
DEFAULT: 'hsl(var(--popover))',
|
|
128
|
-
foreground: 'hsl(var(--popover-foreground))'
|
|
129
|
-
},
|
|
130
|
-
card: {
|
|
131
|
-
DEFAULT: 'hsl(var(--card))',
|
|
132
|
-
foreground: 'hsl(var(--card-foreground))'
|
|
133
|
-
},
|
|
134
|
-
form: {
|
|
135
|
-
background: 'hsl(var(--form-background))',
|
|
136
|
-
border: 'hsl(var(--form-border))',
|
|
137
|
-
'border-focus': 'hsl(var(--form-border-focus))',
|
|
138
|
-
'border-error': 'hsl(var(--form-border-error))',
|
|
139
|
-
'border-success': 'hsl(var(--form-border-success))'
|
|
140
|
-
},
|
|
141
|
-
sidebar: {
|
|
142
|
-
DEFAULT: 'hsl(var(--sidebar-background))',
|
|
143
|
-
foreground: 'hsl(var(--sidebar-foreground))',
|
|
144
|
-
primary: 'hsl(var(--sidebar-primary))',
|
|
145
|
-
'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
|
|
146
|
-
accent: 'hsl(var(--sidebar-accent))',
|
|
147
|
-
'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
|
|
148
|
-
border: 'hsl(var(--sidebar-border))',
|
|
149
|
-
ring: 'hsl(var(--sidebar-ring))'
|
|
150
|
-
}
|
|
151
|
-
},
|
|
152
|
-
borderRadius: {
|
|
153
|
-
lg: 'var(--radius)',
|
|
154
|
-
md: 'calc(var(--radius) - 2px)',
|
|
155
|
-
sm: 'calc(var(--radius) - 4px)'
|
|
156
|
-
},
|
|
157
|
-
keyframes: {
|
|
158
|
-
'accordion-down': {
|
|
159
|
-
from: { height: '0' },
|
|
160
|
-
to: { height: 'var(--radix-accordion-content-height)' }
|
|
161
|
-
},
|
|
162
|
-
'accordion-up': {
|
|
163
|
-
from: { height: 'var(--radix-accordion-content-height)' },
|
|
164
|
-
to: { height: '0' }
|
|
165
|
-
}
|
|
166
|
-
},
|
|
167
|
-
animation: {
|
|
168
|
-
'accordion-down': 'accordion-down 0.2s ease-out',
|
|
169
|
-
'accordion-up': 'accordion-up 0.2s ease-out'
|
|
170
|
-
},
|
|
171
|
-
backgroundImage: {
|
|
172
|
-
'gradient-primary': 'var(--gradient-primary)',
|
|
173
|
-
'gradient-subtle': 'var(--gradient-subtle)'
|
|
174
|
-
},
|
|
175
|
-
boxShadow: {
|
|
176
|
-
'form': 'var(--shadow-form)',
|
|
177
|
-
'form-focus': 'var(--shadow-form-focus)',
|
|
178
|
-
'form-error': 'var(--shadow-form-error)'
|
|
179
|
-
},
|
|
180
|
-
transitionProperty: {
|
|
181
|
-
'form': 'var(--transition-form)'
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
},
|
|
185
|
-
plugins: [require('tailwindcss-animate')],
|
|
186
|
-
}
|
|
187
|
-
```
|
|
19
|
+
If you want to work locally using your own IDE, you can clone this repo and push changes. Pushed changes will also be reflected in Lovable.
|
|
188
20
|
|
|
189
|
-
|
|
21
|
+
The only requirement is having Node.js & npm installed - [install with nvm](https://github.com/nvm-sh/nvm#installing-and-updating)
|
|
190
22
|
|
|
191
|
-
|
|
192
|
-
npm install -D tailwindcss-animate
|
|
193
|
-
```
|
|
23
|
+
Follow these steps:
|
|
194
24
|
|
|
195
|
-
|
|
25
|
+
```sh
|
|
26
|
+
# Step 1: Clone the repository using the project's Git URL.
|
|
27
|
+
git clone <YOUR_GIT_URL>
|
|
196
28
|
|
|
197
|
-
|
|
29
|
+
# Step 2: Navigate to the project directory.
|
|
30
|
+
cd <YOUR_PROJECT_NAME>
|
|
198
31
|
|
|
199
|
-
|
|
32
|
+
# Step 3: Install the necessary dependencies.
|
|
33
|
+
npm i
|
|
200
34
|
|
|
201
|
-
|
|
202
|
-
|
|
35
|
+
# Step 4: Start the development server with auto-reloading and an instant preview.
|
|
36
|
+
npm run dev
|
|
203
37
|
```
|
|
204
38
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
```tsx
|
|
208
|
-
import { Button, Card, CardHeader, CardTitle, CardContent } from 'braid-ui'
|
|
209
|
-
|
|
210
|
-
function MyComponent() {
|
|
211
|
-
return (
|
|
212
|
-
<Card>
|
|
213
|
-
<CardHeader>
|
|
214
|
-
<CardTitle>Card Title</CardTitle>
|
|
215
|
-
</CardHeader>
|
|
216
|
-
<CardContent>
|
|
217
|
-
<Button>Click me</Button>
|
|
218
|
-
</CardContent>
|
|
219
|
-
</Card>
|
|
220
|
-
)
|
|
221
|
-
}
|
|
222
|
-
```
|
|
39
|
+
**Edit a file directly in GitHub**
|
|
223
40
|
|
|
224
|
-
|
|
41
|
+
- Navigate to the desired file(s).
|
|
42
|
+
- Click the "Edit" button (pencil icon) at the top right of the file view.
|
|
43
|
+
- Make your changes and commit the changes.
|
|
225
44
|
|
|
226
|
-
|
|
227
|
-
import { useToast, useEditState } from 'braid-ui'
|
|
228
|
-
|
|
229
|
-
function MyComponent() {
|
|
230
|
-
const { toast } = useToast()
|
|
231
|
-
|
|
232
|
-
return (
|
|
233
|
-
<button onClick={() => toast({
|
|
234
|
-
title: 'Success!',
|
|
235
|
-
description: 'Action completed successfully.'
|
|
236
|
-
})}>
|
|
237
|
-
Show Toast
|
|
238
|
-
</button>
|
|
239
|
-
)
|
|
240
|
-
}
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
### Using Pages
|
|
244
|
-
|
|
245
|
-
```tsx
|
|
246
|
-
import { Dashboard, Alerts, Businesses } from 'braid-ui'
|
|
247
|
-
import { BrowserRouter, Routes, Route } from 'react-router-dom'
|
|
248
|
-
|
|
249
|
-
function App() {
|
|
250
|
-
return (
|
|
251
|
-
<BrowserRouter>
|
|
252
|
-
<Routes>
|
|
253
|
-
<Route path="/" element={<Dashboard />} />
|
|
254
|
-
<Route path="/alerts" element={<Alerts />} />
|
|
255
|
-
<Route path="/businesses" element={<Businesses />} />
|
|
256
|
-
</Routes>
|
|
257
|
-
</BrowserRouter>
|
|
258
|
-
)
|
|
259
|
-
}
|
|
260
|
-
```
|
|
45
|
+
**Use GitHub Codespaces**
|
|
261
46
|
|
|
262
|
-
|
|
47
|
+
- Navigate to the main page of your repository.
|
|
48
|
+
- Click on the "Code" button (green button) near the top right.
|
|
49
|
+
- Select the "Codespaces" tab.
|
|
50
|
+
- Click on "New codespace" to launch a new Codespace environment.
|
|
51
|
+
- Edit files directly within the Codespace and commit and push your changes once you're done.
|
|
263
52
|
|
|
264
|
-
|
|
53
|
+
## What technologies are used for this project?
|
|
265
54
|
|
|
266
|
-
|
|
55
|
+
This project is built with:
|
|
267
56
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
// Import pre-compiled CSS
|
|
274
|
-
import 'braid-ui/css'
|
|
275
|
-
// or minified version
|
|
276
|
-
import 'braid-ui/css/min'
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
You can also import just the CSS variables:
|
|
280
|
-
|
|
281
|
-
```tsx
|
|
282
|
-
import 'braid-ui/css/variables'
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
## Customizing Colors
|
|
286
|
-
|
|
287
|
-
You can customize the color scheme by overriding CSS variables:
|
|
288
|
-
|
|
289
|
-
```css
|
|
290
|
-
:root {
|
|
291
|
-
--primary: 204 100% 54%;
|
|
292
|
-
--primary-foreground: 0 0% 100%;
|
|
293
|
-
--background: 240 10% 98%;
|
|
294
|
-
--foreground: 240 10% 8%;
|
|
295
|
-
/* ... override other variables as needed */
|
|
296
|
-
}
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
**Note:** Colors should be defined as HSL values without the `hsl()` wrapper.
|
|
300
|
-
|
|
301
|
-
## Dark Mode
|
|
302
|
-
|
|
303
|
-
Braid UI supports dark mode automatically. The CSS variables switch when the `.dark` class is present on a parent element (usually `<html>` or `<body>`).
|
|
304
|
-
|
|
305
|
-
If you're using a theme provider like `next-themes`:
|
|
306
|
-
|
|
307
|
-
```tsx
|
|
308
|
-
import { ThemeProvider } from 'next-themes'
|
|
309
|
-
|
|
310
|
-
function App() {
|
|
311
|
-
return (
|
|
312
|
-
<ThemeProvider attribute="class" defaultTheme="system">
|
|
313
|
-
{/* Your app */}
|
|
314
|
-
</ThemeProvider>
|
|
315
|
-
)
|
|
316
|
-
}
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
## TypeScript
|
|
320
|
-
|
|
321
|
-
Braid UI is built with TypeScript and includes type definitions. No additional `@types` packages are required.
|
|
322
|
-
|
|
323
|
-
## Next.js Configuration
|
|
324
|
-
|
|
325
|
-
If you're using Braid UI in a Next.js application and need to use components that include PDF viewing (like `BusinessDetailView` with `BusinessDocuments`), you'll need to configure Next.js webpack to handle `react-pdf` dependencies correctly.
|
|
326
|
-
|
|
327
|
-
Add the following to your `next.config.js`:
|
|
328
|
-
|
|
329
|
-
```js
|
|
330
|
-
const nextConfig = {
|
|
331
|
-
webpack: (config, { isServer }) => {
|
|
332
|
-
// Fix for react-pdf/pdfjs-dist in Next.js
|
|
333
|
-
if (!isServer) {
|
|
334
|
-
config.resolve.alias = {
|
|
335
|
-
...config.resolve.alias,
|
|
336
|
-
canvas: false,
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
return config
|
|
340
|
-
},
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
module.exports = nextConfig
|
|
344
|
-
```
|
|
57
|
+
- Vite
|
|
58
|
+
- TypeScript
|
|
59
|
+
- React
|
|
60
|
+
- shadcn-ui
|
|
61
|
+
- Tailwind CSS
|
|
345
62
|
|
|
346
|
-
|
|
63
|
+
## How can I deploy this project?
|
|
347
64
|
|
|
348
|
-
|
|
65
|
+
Simply open [Lovable](https://lovable.dev/projects/aca89158-f0a1-4aec-b491-0b98086f2184) and click on Share -> Publish.
|
|
349
66
|
|
|
350
|
-
##
|
|
67
|
+
## Can I connect a custom domain to my Lovable project?
|
|
351
68
|
|
|
352
|
-
|
|
69
|
+
Yes, you can!
|
|
353
70
|
|
|
354
|
-
|
|
71
|
+
To connect a domain, navigate to Project > Settings > Domains and click Connect Domain.
|
|
355
72
|
|
|
356
|
-
[
|
|
73
|
+
Read more here: [Setting up a custom domain](https://docs.lovable.dev/tips-tricks/custom-domain#step-by-step-guide)
|
package/components.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://ui.shadcn.com/schema.json",
|
|
3
|
+
"style": "default",
|
|
4
|
+
"rsc": false,
|
|
5
|
+
"tsx": true,
|
|
6
|
+
"tailwind": {
|
|
7
|
+
"config": "tailwind.config.ts",
|
|
8
|
+
"css": "src/index.css",
|
|
9
|
+
"baseColor": "slate",
|
|
10
|
+
"cssVariables": true,
|
|
11
|
+
"prefix": ""
|
|
12
|
+
},
|
|
13
|
+
"aliases": {
|
|
14
|
+
"components": "@/components",
|
|
15
|
+
"utils": "@/lib/utils",
|
|
16
|
+
"ui": "@/components/ui",
|
|
17
|
+
"lib": "@/lib",
|
|
18
|
+
"hooks": "@/hooks"
|
|
19
|
+
}
|
|
20
|
+
}
|
package/eslint.config.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import js from "@eslint/js";
|
|
2
|
+
import globals from "globals";
|
|
3
|
+
import reactHooks from "eslint-plugin-react-hooks";
|
|
4
|
+
import reactRefresh from "eslint-plugin-react-refresh";
|
|
5
|
+
import tseslint from "typescript-eslint";
|
|
6
|
+
|
|
7
|
+
export default tseslint.config(
|
|
8
|
+
{ ignores: ["dist"] },
|
|
9
|
+
{
|
|
10
|
+
extends: [js.configs.recommended, ...tseslint.configs.recommended],
|
|
11
|
+
files: ["**/*.{ts,tsx}"],
|
|
12
|
+
languageOptions: {
|
|
13
|
+
ecmaVersion: 2020,
|
|
14
|
+
globals: globals.browser,
|
|
15
|
+
},
|
|
16
|
+
plugins: {
|
|
17
|
+
"react-hooks": reactHooks,
|
|
18
|
+
"react-refresh": reactRefresh,
|
|
19
|
+
},
|
|
20
|
+
rules: {
|
|
21
|
+
...reactHooks.configs.recommended.rules,
|
|
22
|
+
"react-refresh/only-export-components": [
|
|
23
|
+
"warn",
|
|
24
|
+
{ allowConstantExport: true },
|
|
25
|
+
],
|
|
26
|
+
"@typescript-eslint/no-unused-vars": "off",
|
|
27
|
+
},
|
|
28
|
+
}
|
|
29
|
+
);
|
package/index.html
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>form-wizard-states</title>
|
|
7
|
+
<meta name="description" content="Lovable Generated Project" />
|
|
8
|
+
<meta name="author" content="Lovable" />
|
|
9
|
+
|
|
10
|
+
<meta property="og:title" content="form-wizard-states" />
|
|
11
|
+
<meta property="og:description" content="Lovable Generated Project" />
|
|
12
|
+
<meta property="og:type" content="website" />
|
|
13
|
+
<meta property="og:image" content="https://lovable.dev/opengraph-image-p98pqg.png" />
|
|
14
|
+
|
|
15
|
+
<meta name="twitter:card" content="summary_large_image" />
|
|
16
|
+
<meta name="twitter:site" content="@lovable_dev" />
|
|
17
|
+
<meta name="twitter:image" content="https://lovable.dev/opengraph-image-p98pqg.png" />
|
|
18
|
+
</head>
|
|
19
|
+
|
|
20
|
+
<body>
|
|
21
|
+
<div id="root"></div>
|
|
22
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
23
|
+
</body>
|
|
24
|
+
</html>
|
package/package.json
CHANGED
|
@@ -1,125 +1,66 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "braid-ui",
|
|
3
|
-
"
|
|
4
|
-
"version": "1.0.98",
|
|
3
|
+
"version": "1.0.99",
|
|
5
4
|
"type": "module",
|
|
6
|
-
"sideEffects": false,
|
|
7
|
-
"main": "./dist/index.cjs",
|
|
8
|
-
"module": "./dist/index.js",
|
|
9
|
-
"types": "./dist/index.d.ts",
|
|
10
|
-
"exports": {
|
|
11
|
-
".": {
|
|
12
|
-
"types": "./dist/index.d.ts",
|
|
13
|
-
"import": "./dist/index.js",
|
|
14
|
-
"require": "./dist/index.cjs"
|
|
15
|
-
},
|
|
16
|
-
"./components": {
|
|
17
|
-
"types": "./dist/index.d.ts",
|
|
18
|
-
"import": "./dist/index.js",
|
|
19
|
-
"require": "./dist/index.cjs"
|
|
20
|
-
},
|
|
21
|
-
"./hooks": {
|
|
22
|
-
"types": "./dist/index.d.ts",
|
|
23
|
-
"import": "./dist/index.js",
|
|
24
|
-
"require": "./dist/index.cjs"
|
|
25
|
-
},
|
|
26
|
-
"./pages": {
|
|
27
|
-
"types": "./dist/index.d.ts",
|
|
28
|
-
"import": "./dist/index.js",
|
|
29
|
-
"require": "./dist/index.cjs"
|
|
30
|
-
},
|
|
31
|
-
"./styles": "./src/styles.css",
|
|
32
|
-
"./styles-only": "./src/styles-only.css",
|
|
33
|
-
"./css": "./dist/css/braid-ui.css",
|
|
34
|
-
"./css/min": "./dist/css/braid-ui.min.css",
|
|
35
|
-
"./css/variables": "./dist/css/braid-ui-variables.css"
|
|
36
|
-
},
|
|
37
|
-
"files": [
|
|
38
|
-
"dist",
|
|
39
|
-
"src/styles.css",
|
|
40
|
-
"src/styles-only.css"
|
|
41
|
-
],
|
|
42
|
-
"keywords": [
|
|
43
|
-
"react",
|
|
44
|
-
"ui",
|
|
45
|
-
"components",
|
|
46
|
-
"typescript",
|
|
47
|
-
"tailwindcss",
|
|
48
|
-
"radix-ui"
|
|
49
|
-
],
|
|
50
|
-
"author": "Braid UI Kit",
|
|
51
|
-
"license": "MIT",
|
|
52
|
-
"repository": {
|
|
53
|
-
"type": "git",
|
|
54
|
-
"url": "https://github.com/your-username/braid-ui-kit.git"
|
|
55
|
-
},
|
|
56
|
-
"peerDependencies": {
|
|
57
|
-
"@hookform/resolvers": ">=3.0.0",
|
|
58
|
-
"@radix-ui/react-accordion": ">=1.0.0",
|
|
59
|
-
"@radix-ui/react-alert-dialog": ">=1.0.0",
|
|
60
|
-
"@radix-ui/react-aspect-ratio": ">=1.0.0",
|
|
61
|
-
"@radix-ui/react-avatar": ">=1.0.0",
|
|
62
|
-
"@radix-ui/react-checkbox": ">=1.0.0",
|
|
63
|
-
"@radix-ui/react-collapsible": ">=1.0.0",
|
|
64
|
-
"@radix-ui/react-context-menu": ">=2.0.0",
|
|
65
|
-
"@radix-ui/react-dialog": ">=1.0.0",
|
|
66
|
-
"@radix-ui/react-dropdown-menu": ">=2.0.0",
|
|
67
|
-
"@radix-ui/react-hover-card": ">=1.0.0",
|
|
68
|
-
"@radix-ui/react-label": ">=2.0.0",
|
|
69
|
-
"@radix-ui/react-menubar": ">=1.0.0",
|
|
70
|
-
"@radix-ui/react-navigation-menu": ">=1.0.0",
|
|
71
|
-
"@radix-ui/react-popover": ">=1.0.0",
|
|
72
|
-
"@radix-ui/react-progress": ">=1.0.0",
|
|
73
|
-
"@radix-ui/react-radio-group": ">=1.0.0",
|
|
74
|
-
"@radix-ui/react-scroll-area": ">=1.0.0",
|
|
75
|
-
"@radix-ui/react-select": ">=2.0.0",
|
|
76
|
-
"@radix-ui/react-separator": ">=1.0.0",
|
|
77
|
-
"@radix-ui/react-slider": ">=1.0.0",
|
|
78
|
-
"@radix-ui/react-slot": ">=1.0.0",
|
|
79
|
-
"@radix-ui/react-switch": ">=1.0.0",
|
|
80
|
-
"@radix-ui/react-tabs": ">=1.0.0",
|
|
81
|
-
"@radix-ui/react-toast": ">=1.0.0",
|
|
82
|
-
"@radix-ui/react-toggle": ">=1.0.0",
|
|
83
|
-
"@radix-ui/react-toggle-group": ">=1.0.0",
|
|
84
|
-
"@radix-ui/react-tooltip": ">=1.0.0",
|
|
85
|
-
"@tanstack/react-query": ">=5.0.0",
|
|
86
|
-
"class-variance-authority": ">=0.7.0",
|
|
87
|
-
"clsx": ">=2.0.0",
|
|
88
|
-
"cmdk": ">=1.0.0",
|
|
89
|
-
"date-fns": ">=3.0.0",
|
|
90
|
-
"embla-carousel-react": ">=8.0.0",
|
|
91
|
-
"input-otp": ">=1.0.0",
|
|
92
|
-
"lodash": ">=4.17.0",
|
|
93
|
-
"lucide-react": ">=0.400.0",
|
|
94
|
-
"next-themes": ">=0.3.0",
|
|
95
|
-
"react": ">=18.0.0",
|
|
96
|
-
"react-day-picker": ">=9.0.0",
|
|
97
|
-
"react-dom": ">=18.0.0",
|
|
98
|
-
"react-hook-form": ">=7.0.0",
|
|
99
|
-
"react-resizable-panels": ">=2.0.0",
|
|
100
|
-
"react-router-dom": ">=6.0.0",
|
|
101
|
-
"recharts": ">=2.0.0",
|
|
102
|
-
"sonner": ">=1.0.0",
|
|
103
|
-
"tailwind-merge": ">=2.0.0",
|
|
104
|
-
"tailwindcss-animate": ">=1.0.0",
|
|
105
|
-
"vaul": ">=0.9.0",
|
|
106
|
-
"zod": ">=3.0.0"
|
|
107
|
-
},
|
|
108
5
|
"scripts": {
|
|
109
6
|
"dev": "vite",
|
|
110
7
|
"build": "vite build",
|
|
111
8
|
"build:dev": "vite build --mode development",
|
|
112
|
-
"build:lib": "tsup",
|
|
113
|
-
"build:lib:watch": "tsup --watch",
|
|
114
|
-
"build:css": "node build-css.mjs",
|
|
115
|
-
"build:all": "npm run build:lib && npm run build:css",
|
|
116
9
|
"lint": "eslint .",
|
|
117
|
-
"preview": "vite preview"
|
|
118
|
-
|
|
10
|
+
"preview": "vite preview"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@hookform/resolvers": "^3.10.0",
|
|
14
|
+
"@radix-ui/react-accordion": "^1.2.11",
|
|
15
|
+
"@radix-ui/react-alert-dialog": "^1.1.14",
|
|
16
|
+
"@radix-ui/react-aspect-ratio": "^1.1.7",
|
|
17
|
+
"@radix-ui/react-avatar": "^1.1.10",
|
|
18
|
+
"@radix-ui/react-checkbox": "^1.3.2",
|
|
19
|
+
"@radix-ui/react-collapsible": "^1.1.11",
|
|
20
|
+
"@radix-ui/react-context-menu": "^2.2.15",
|
|
21
|
+
"@radix-ui/react-dialog": "^1.1.14",
|
|
22
|
+
"@radix-ui/react-dropdown-menu": "^2.1.15",
|
|
23
|
+
"@radix-ui/react-hover-card": "^1.1.14",
|
|
24
|
+
"@radix-ui/react-label": "^2.1.7",
|
|
25
|
+
"@radix-ui/react-menubar": "^1.1.15",
|
|
26
|
+
"@radix-ui/react-navigation-menu": "^1.2.13",
|
|
27
|
+
"@radix-ui/react-popover": "^1.1.15",
|
|
28
|
+
"@radix-ui/react-progress": "^1.1.7",
|
|
29
|
+
"@radix-ui/react-radio-group": "^1.3.7",
|
|
30
|
+
"@radix-ui/react-scroll-area": "^1.2.9",
|
|
31
|
+
"@radix-ui/react-select": "^2.2.5",
|
|
32
|
+
"@radix-ui/react-separator": "^1.1.7",
|
|
33
|
+
"@radix-ui/react-slider": "^1.3.5",
|
|
34
|
+
"@radix-ui/react-slot": "^1.2.3",
|
|
35
|
+
"@radix-ui/react-switch": "^1.2.5",
|
|
36
|
+
"@radix-ui/react-tabs": "^1.1.12",
|
|
37
|
+
"@radix-ui/react-toast": "^1.2.14",
|
|
38
|
+
"@radix-ui/react-toggle": "^1.1.9",
|
|
39
|
+
"@radix-ui/react-toggle-group": "^1.1.10",
|
|
40
|
+
"@radix-ui/react-tooltip": "^1.2.7",
|
|
41
|
+
"@tanstack/react-query": "^5.83.0",
|
|
42
|
+
"class-variance-authority": "^0.7.1",
|
|
43
|
+
"clsx": "^2.1.1",
|
|
44
|
+
"cmdk": "^1.1.1",
|
|
45
|
+
"date-fns": "^3.6.0",
|
|
46
|
+
"embla-carousel-react": "^8.6.0",
|
|
47
|
+
"input-otp": "^1.4.2",
|
|
48
|
+
"lucide-react": "^0.462.0",
|
|
49
|
+
"next-themes": "^0.3.0",
|
|
50
|
+
"react": "^18.3.1",
|
|
51
|
+
"react-day-picker": "^9.11.0",
|
|
52
|
+
"react-dom": "^18.3.1",
|
|
53
|
+
"react-hook-form": "^7.61.1",
|
|
54
|
+
"react-resizable-panels": "^2.1.9",
|
|
55
|
+
"react-router-dom": "^6.30.3",
|
|
56
|
+
"recharts": "^2.15.4",
|
|
57
|
+
"sonner": "^1.7.4",
|
|
58
|
+
"tailwind-merge": "^2.6.0",
|
|
59
|
+
"tailwindcss-animate": "^1.0.7",
|
|
60
|
+
"vaul": "^0.9.9",
|
|
61
|
+
"zod": "^3.25.76"
|
|
119
62
|
},
|
|
120
63
|
"devDependencies": {
|
|
121
|
-
"@emotion/react": "^11.14.0",
|
|
122
|
-
"@emotion/styled": "^11.14.1",
|
|
123
64
|
"@eslint/js": "^9.32.0",
|
|
124
65
|
"@tailwindcss/typography": "^0.5.16",
|
|
125
66
|
"@types/node": "^22.16.5",
|
|
@@ -131,12 +72,11 @@
|
|
|
131
72
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
132
73
|
"eslint-plugin-react-refresh": "^0.4.20",
|
|
133
74
|
"globals": "^15.15.0",
|
|
134
|
-
"lovable-tagger": "^1.1.
|
|
75
|
+
"lovable-tagger": "^1.1.13",
|
|
135
76
|
"postcss": "^8.5.6",
|
|
136
77
|
"tailwindcss": "^3.4.17",
|
|
137
|
-
"tsup": "^8.5.0",
|
|
138
78
|
"typescript": "^5.8.3",
|
|
139
79
|
"typescript-eslint": "^8.38.0",
|
|
140
|
-
"vite": "^
|
|
80
|
+
"vite": "^7.3.1"
|
|
141
81
|
}
|
|
142
82
|
}
|
|
Binary file
|