braid-ui 1.0.99 → 1.0.101

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.
Files changed (145) hide show
  1. package/README.md +327 -44
  2. package/dist/css/braid-ui-variables.css +88 -0
  3. package/dist/css/braid-ui.css +4702 -0
  4. package/dist/css/braid-ui.min.css +1 -0
  5. package/dist/index.cjs +4 -0
  6. package/dist/index.cjs.map +1 -0
  7. package/dist/index.d.cts +2027 -0
  8. package/dist/index.d.ts +2027 -0
  9. package/dist/index.js +4 -0
  10. package/dist/index.js.map +1 -0
  11. package/package.json +115 -55
  12. package/src/styles-only.css +121 -0
  13. package/src/{index.css → styles.css} +4 -10
  14. package/components.json +0 -20
  15. package/eslint.config.js +0 -29
  16. package/index.html +0 -24
  17. package/postcss.config.js +0 -6
  18. package/public/favicon.ico +0 -0
  19. package/public/placeholder.svg +0 -1
  20. package/public/robots.txt +0 -14
  21. package/src/App.css +0 -42
  22. package/src/App.tsx +0 -94
  23. package/src/components/MainLayout.tsx +0 -15
  24. package/src/components/alerts/AlertDocuments.tsx +0 -320
  25. package/src/components/alerts/AlertNotes.tsx +0 -185
  26. package/src/components/alerts/AlertTimeline.tsx +0 -79
  27. package/src/components/alerts/ContextSection.tsx +0 -155
  28. package/src/components/app-sidebar.tsx +0 -341
  29. package/src/components/form-sections/ACHBankCard.tsx +0 -78
  30. package/src/components/form-sections/ACHBasicInfoCard.tsx +0 -100
  31. package/src/components/form-sections/ACHTransferSection.tsx +0 -64
  32. package/src/components/form-sections/AddressForm.tsx +0 -94
  33. package/src/components/form-sections/BankAddressCard.tsx +0 -95
  34. package/src/components/form-sections/BankingDetailsCard.tsx +0 -46
  35. package/src/components/form-sections/BasicInfoCard.tsx +0 -103
  36. package/src/components/form-sections/BasicInfoSection.tsx +0 -34
  37. package/src/components/form-sections/BeneficiaryAddress.tsx +0 -19
  38. package/src/components/form-sections/BeneficiaryCard.tsx +0 -41
  39. package/src/components/form-sections/BeneficiaryDomesticWire.tsx +0 -23
  40. package/src/components/form-sections/BusinessProfileCard.tsx +0 -131
  41. package/src/components/form-sections/BusinessStatusCard.tsx +0 -53
  42. package/src/components/form-sections/ContactInfoCard.tsx +0 -63
  43. package/src/components/form-sections/CounterpartyBasicInfo.tsx +0 -101
  44. package/src/components/form-sections/CounterpartyProfileCard.tsx +0 -104
  45. package/src/components/form-sections/CounterpartyRecordsCard.tsx +0 -41
  46. package/src/components/form-sections/IntermediaryCard.tsx +0 -77
  47. package/src/components/form-sections/IntermediaryFI.tsx +0 -41
  48. package/src/components/form-sections/IntermediaryFIAddress.tsx +0 -14
  49. package/src/components/form-sections/OriginatorCard.tsx +0 -49
  50. package/src/components/form-sections/OriginatorFI.tsx +0 -42
  51. package/src/components/form-sections/OriginatorFIAddress.tsx +0 -14
  52. package/src/components/form-sections/PaymentInformationSection.tsx +0 -163
  53. package/src/components/form-sections/ReceiverCard.tsx +0 -94
  54. package/src/components/form-sections/WireTransferSection.tsx +0 -75
  55. package/src/components/layouts/list-page.tsx +0 -103
  56. package/src/components/transaction/ACHDetailsSection.tsx +0 -95
  57. package/src/components/transaction/WireDetailsSection.tsx +0 -112
  58. package/src/components/ui/account-card.tsx +0 -94
  59. package/src/components/ui/badge.tsx +0 -75
  60. package/src/components/ui/breadcrumb.tsx +0 -78
  61. package/src/components/ui/business-type-badge.tsx +0 -42
  62. package/src/components/ui/button.tsx +0 -56
  63. package/src/components/ui/calendar.tsx +0 -49
  64. package/src/components/ui/card.tsx +0 -223
  65. package/src/components/ui/container.tsx +0 -45
  66. package/src/components/ui/counterparty-type-badge.tsx +0 -53
  67. package/src/components/ui/data-grid.tsx +0 -99
  68. package/src/components/ui/data-table.tsx +0 -152
  69. package/src/components/ui/detail-page-layout.tsx +0 -83
  70. package/src/components/ui/dialog.tsx +0 -120
  71. package/src/components/ui/dropdown-menu.tsx +0 -82
  72. package/src/components/ui/editable-form-card.tsx +0 -106
  73. package/src/components/ui/editable-info-field.tsx +0 -67
  74. package/src/components/ui/enhanced-input.tsx +0 -78
  75. package/src/components/ui/enhanced-select.tsx +0 -101
  76. package/src/components/ui/enhanced-textarea.tsx +0 -64
  77. package/src/components/ui/entity-card.tsx +0 -140
  78. package/src/components/ui/form-card.tsx +0 -40
  79. package/src/components/ui/form-field.tsx +0 -50
  80. package/src/components/ui/form-input.tsx +0 -29
  81. package/src/components/ui/form-provider.tsx +0 -18
  82. package/src/components/ui/form-section.tsx +0 -66
  83. package/src/components/ui/form-select.tsx +0 -35
  84. package/src/components/ui/info-field.tsx +0 -36
  85. package/src/components/ui/json-viewer.tsx +0 -146
  86. package/src/components/ui/label.tsx +0 -24
  87. package/src/components/ui/metric-card.tsx +0 -80
  88. package/src/components/ui/page-layout.tsx +0 -183
  89. package/src/components/ui/popover.tsx +0 -29
  90. package/src/components/ui/responsive-grid.tsx +0 -46
  91. package/src/components/ui/separator.tsx +0 -31
  92. package/src/components/ui/sheet.tsx +0 -140
  93. package/src/components/ui/sidebar.tsx +0 -775
  94. package/src/components/ui/sonner.tsx +0 -29
  95. package/src/components/ui/stack.tsx +0 -77
  96. package/src/components/ui/status-badge.tsx +0 -68
  97. package/src/components/ui/tabs.tsx +0 -52
  98. package/src/components/ui/toast.tsx +0 -127
  99. package/src/components/ui/toaster.tsx +0 -33
  100. package/src/components/ui/tooltip.tsx +0 -28
  101. package/src/components/ui/use-toast.ts +0 -3
  102. package/src/components/ui-kit/dashboard-demo.tsx +0 -156
  103. package/src/components/ui-kit/pattern-library.tsx +0 -248
  104. package/src/components/ui-kit/showcase.tsx +0 -211
  105. package/src/hooks/use-mobile.tsx +0 -19
  106. package/src/hooks/use-toast.ts +0 -191
  107. package/src/hooks/useEditState.ts +0 -70
  108. package/src/hooks/useFormWithEditState.ts +0 -115
  109. package/src/lib/constants.ts +0 -25
  110. package/src/lib/mock-data/alert-data.ts +0 -275
  111. package/src/lib/mock-data/banking-data.ts +0 -72
  112. package/src/lib/mock-data/business-data.ts +0 -71
  113. package/src/lib/mock-data/counterparty-data.ts +0 -70
  114. package/src/lib/mock-data/index.ts +0 -5
  115. package/src/lib/mock-data/transaction-data.ts +0 -283
  116. package/src/lib/mock-data/wire-data.ts +0 -103
  117. package/src/lib/mock-data.tsx +0 -180
  118. package/src/lib/schemas/banking-schemas.ts +0 -30
  119. package/src/lib/schemas/business-schemas.ts +0 -36
  120. package/src/lib/schemas/counterparty-schemas.ts +0 -43
  121. package/src/lib/schemas/index.ts +0 -5
  122. package/src/lib/schemas/wire-schemas.ts +0 -44
  123. package/src/lib/utils.ts +0 -6
  124. package/src/main.tsx +0 -10
  125. package/src/pages/Cases.tsx +0 -16
  126. package/src/pages/Dashboard.tsx +0 -16
  127. package/src/pages/NotFound.tsx +0 -27
  128. package/src/pages/TransactionHistory.tsx +0 -532
  129. package/src/pages/UIKit.tsx +0 -51
  130. package/src/pages/alerts/AlertDetail.tsx +0 -193
  131. package/src/pages/alerts/Alerts.tsx +0 -373
  132. package/src/pages/business/Business.tsx +0 -48
  133. package/src/pages/business/Create.tsx +0 -173
  134. package/src/pages/counterparty/Create.tsx +0 -48
  135. package/src/pages/counterparty/DomesticWire.tsx +0 -78
  136. package/src/pages/counterparty/Manage.tsx +0 -79
  137. package/src/pages/transactions/NewTransaction.tsx +0 -527
  138. package/src/pages/transactions/TransactionDetail.tsx +0 -192
  139. package/src/vite-env.d.ts +0 -1
  140. package/tailwind.config.ts +0 -124
  141. package/tsconfig.app.json +0 -30
  142. package/tsconfig.json +0 -19
  143. package/tsconfig.node.json +0 -22
  144. package/vite.config.ts +0 -22
  145. /package/{src/assets/braid-logo.png → dist/braid-logo-343BOQZ2.png} +0 -0
package/README.md CHANGED
@@ -1,73 +1,356 @@
1
- # Welcome to your Lovable project
1
+ # Braid UI
2
2
 
3
- ## Project info
3
+ A comprehensive React UI component library built with TypeScript, Tailwind CSS, and Radix UI primitives.
4
4
 
5
- **URL**: https://lovable.dev/projects/aca89158-f0a1-4aec-b491-0b98086f2184
5
+ ## Installation
6
6
 
7
- ## How can I edit this code?
7
+ ```bash
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:
8
65
 
9
- There are several ways of editing your application.
66
+ ```tsx
67
+ // In your main.tsx, App.tsx, or index.tsx
68
+ import 'braid-ui/styles'
69
+ ```
10
70
 
11
- **Use Lovable**
71
+ Alternatively, import in your main CSS file:
12
72
 
13
- Simply visit the [Lovable Project](https://lovable.dev/projects/aca89158-f0a1-4aec-b491-0b98086f2184) and start prompting.
73
+ ```css
74
+ /* In your globals.css or main.css */
75
+ @import 'braid-ui/styles';
76
+ ```
14
77
 
15
- Changes made via Lovable will be committed automatically to this repo.
78
+ ### 2. Configure Tailwind CSS
16
79
 
17
- **Use your preferred IDE**
80
+ Braid UI requires Tailwind CSS to be configured in your project. Add the library's theme extensions to your `tailwind.config.js`:
18
81
 
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.
82
+ ```js
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
+ ```
20
188
 
21
- The only requirement is having Node.js & npm installed - [install with nvm](https://github.com/nvm-sh/nvm#installing-and-updating)
189
+ **Important:** Make sure `tailwindcss-animate` is installed:
22
190
 
23
- Follow these steps:
191
+ ```bash
192
+ npm install -D tailwindcss-animate
193
+ ```
24
194
 
25
- ```sh
26
- # Step 1: Clone the repository using the project's Git URL.
27
- git clone <YOUR_GIT_URL>
195
+ ## Usage
28
196
 
29
- # Step 2: Navigate to the project directory.
30
- cd <YOUR_PROJECT_NAME>
197
+ ### Importing Components
31
198
 
32
- # Step 3: Install the necessary dependencies.
33
- npm i
199
+ Import components directly from the main package:
34
200
 
35
- # Step 4: Start the development server with auto-reloading and an instant preview.
36
- npm run dev
201
+ ```tsx
202
+ import { Button, Card, Dialog, Input } from 'braid-ui'
37
203
  ```
38
204
 
39
- **Edit a file directly in GitHub**
205
+ ### Using Components
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
+ ```
40
223
 
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.
224
+ ### Using Hooks
44
225
 
45
- **Use GitHub Codespaces**
226
+ ```tsx
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
+ ```
46
261
 
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.
262
+ ## Styling Options
52
263
 
53
- ## What technologies are used for this project?
264
+ ### With Tailwind CSS (Recommended)
54
265
 
55
- This project is built with:
266
+ If you're using Tailwind CSS, import the styles and configure your Tailwind config as shown above.
56
267
 
57
- - Vite
58
- - TypeScript
59
- - React
60
- - shadcn-ui
61
- - Tailwind CSS
268
+ ### Without Tailwind CSS
269
+
270
+ If you're not using Tailwind CSS, you can use the pre-compiled CSS:
271
+
272
+ ```tsx
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
+ ```
62
345
 
63
- ## How can I deploy this project?
346
+ This prevents Next.js from trying to bundle Node.js-specific dependencies that `pdfjs-dist` might reference during webpack analysis.
64
347
 
65
- Simply open [Lovable](https://lovable.dev/projects/aca89158-f0a1-4aec-b491-0b98086f2184) and click on Share -> Publish.
348
+ **Note**: If you're not using any PDF-related components, this configuration is optional.
66
349
 
67
- ## Can I connect a custom domain to my Lovable project?
350
+ ## License
68
351
 
69
- Yes, you can!
352
+ MIT
70
353
 
71
- To connect a domain, navigate to Project > Settings > Domains and click Connect Domain.
354
+ ## Repository
72
355
 
73
- Read more here: [Setting up a custom domain](https://docs.lovable.dev/tips-tricks/custom-domain#step-by-step-guide)
356
+ [GitHub Repository](https://github.com/your-username/braid-ui-kit.git)
@@ -0,0 +1,88 @@
1
+
2
+ /* Braid UI CSS Variables */
3
+ :root {
4
+ --background: 240 10% 98%;
5
+ --foreground: 240 10% 8%;
6
+ --card: 0 0% 100%;
7
+ --card-foreground: 240 10% 8%;
8
+ --popover: 0 0% 100%;
9
+ --popover-foreground: 240 10% 8%;
10
+ --primary: 204 100% 54%;
11
+ --primary-foreground: 0 0% 100%;
12
+ --primary-glow: 204 100% 64%;
13
+ --secondary: 240 5% 96%;
14
+ --secondary-foreground: 240 6% 10%;
15
+ --muted: 240 5% 96%;
16
+ --muted-foreground: 240 4% 60%;
17
+ --accent: 240 5% 96%;
18
+ --accent-foreground: 240 6% 10%;
19
+ --destructive: 0 84% 60%;
20
+ --destructive-foreground: 0 0% 98%;
21
+ --border: 240 6% 90%;
22
+ --input: 240 6% 90%;
23
+ --ring: 204 100% 54%;
24
+ --success: 142 76% 36%;
25
+ --success-foreground: 0 0% 98%;
26
+ --warning: 38 92% 50%;
27
+ --warning-foreground: 0 0% 98%;
28
+ --form-background: 0 0% 100%;
29
+ --form-border: 240 6% 88%;
30
+ --form-border-focus: 204 100% 54%;
31
+ --form-border-error: 0 84% 60%;
32
+ --form-border-success: 142 76% 36%;
33
+ --gradient-primary: linear-gradient(135deg, hsl(204 100% 54%), hsl(204 100% 64%));
34
+ --gradient-subtle: linear-gradient(180deg, hsl(240 10% 98%), hsl(240 5% 96%));
35
+ --shadow-form: 0 1px 3px 0 hsl(240 5% 84% / 0.12), 0 1px 2px 0 hsl(240 5% 84% / 0.24);
36
+ --shadow-form-focus: 0 0 0 3px hsl(204 100% 54% / 0.12);
37
+ --shadow-form-error: 0 0 0 3px hsl(0 84% 60% / 0.12);
38
+ --transition-form: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
39
+ --radius: 0.5rem;
40
+ --sidebar-background: 0 0% 98%;
41
+ --sidebar-foreground: 240 5.3% 26.1%;
42
+ --sidebar-primary: 240 5.9% 10%;
43
+ --sidebar-primary-foreground: 0 0% 98%;
44
+ --sidebar-accent: 240 4.8% 95.9%;
45
+ --sidebar-accent-foreground: 240 5.9% 10%;
46
+ --sidebar-border: 220 13% 91%;
47
+ --sidebar-ring: 217.2 91.2% 59.8%;
48
+ }
49
+
50
+ .dark {
51
+ --background: 222.2 84% 4.9%;
52
+ --foreground: 210 40% 98%;
53
+ --card: 222.2 84% 4.9%;
54
+ --card-foreground: 210 40% 98%;
55
+ --popover: 222.2 84% 4.9%;
56
+ --popover-foreground: 210 40% 98%;
57
+ --primary: 210 40% 98%;
58
+ --primary-foreground: 222.2 47.4% 11.2%;
59
+ --secondary: 217.2 32.6% 17.5%;
60
+ --secondary-foreground: 210 40% 98%;
61
+ --muted: 217.2 32.6% 17.5%;
62
+ --muted-foreground: 215 20.2% 65.1%;
63
+ --accent: 217.2 32.6% 17.5%;
64
+ --accent-foreground: 210 40% 98%;
65
+ --destructive: 0 62.8% 30.6%;
66
+ --destructive-foreground: 210 40% 98%;
67
+ --border: 217.2 32.6% 17.5%;
68
+ --input: 217.2 32.6% 17.5%;
69
+ --ring: 212.7 26.8% 83.9%;
70
+ --sidebar-background: 240 5.9% 10%;
71
+ --sidebar-foreground: 240 4.8% 95.9%;
72
+ --sidebar-primary: 224.3 76.3% 48%;
73
+ --sidebar-primary-foreground: 0 0% 100%;
74
+ --sidebar-accent: 240 3.7% 15.9%;
75
+ --sidebar-accent-foreground: 240 4.8% 95.9%;
76
+ --sidebar-border: 240 3.7% 15.9%;
77
+ --sidebar-ring: 217.2 91.2% 59.8%;
78
+ }
79
+
80
+ @layer base {
81
+ * {
82
+ border-color: hsl(var(--border));
83
+ }
84
+ body {
85
+ background-color: hsl(var(--background));
86
+ color: hsl(var(--foreground));
87
+ }
88
+ }