braid-ui 1.0.67 → 1.0.69

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 CHANGED
@@ -1,41 +1,90 @@
1
- # Braid UI Kit
1
+ # Braid UI
2
2
 
3
- A comprehensive React UI component library built with TypeScript, Tailwind CSS, and Radix UI.
3
+ A comprehensive React UI component library built with TypeScript, Tailwind CSS, and Radix UI primitives.
4
4
 
5
5
  ## Installation
6
6
 
7
7
  ```bash
8
8
  npm install braid-ui
9
+ # or
10
+ yarn add braid-ui
11
+ # or
12
+ pnpm add braid-ui
9
13
  ```
10
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
+
11
60
  ## Setup
12
61
 
13
- ### 1. Import the styles
62
+ ### 1. Import Styles
14
63
 
15
- You need to import the CSS styles for the components to display correctly:
64
+ Import the CSS styles in your application entry point:
16
65
 
17
66
  ```tsx
18
- // In your main App.tsx or main CSS file
67
+ // In your main.tsx, App.tsx, or index.tsx
19
68
  import 'braid-ui/styles'
20
69
  ```
21
70
 
22
- ### 2. Configure Tailwind CSS
23
-
24
- Your project needs Tailwind CSS configured. If you don't have it:
71
+ Alternatively, import in your main CSS file:
25
72
 
26
- ```bash
27
- npm install -D tailwindcss postcss autoprefixer
28
- npx tailwindcss init -p
73
+ ```css
74
+ /* In your globals.css or main.css */
75
+ @import 'braid-ui/styles';
29
76
  ```
30
77
 
31
- Then update your `tailwind.config.js`:
78
+ ### 2. Configure Tailwind CSS
79
+
80
+ Braid UI requires Tailwind CSS to be configured in your project. Add the library's theme extensions to your `tailwind.config.js`:
32
81
 
33
82
  ```js
34
83
  /** @type {import('tailwindcss').Config} */
35
84
  module.exports = {
36
85
  content: [
37
86
  "./src/**/*.{js,ts,jsx,tsx}",
38
- "./node_modules/braid-ui/dist/**/*.{js,ts,jsx,tsx}", // Add this line
87
+ "./node_modules/braid-ui/dist/**/*.{js,ts,jsx,tsx}",
39
88
  ],
40
89
  theme: {
41
90
  extend: {
@@ -48,164 +97,233 @@ module.exports = {
48
97
  primary: {
49
98
  DEFAULT: 'hsl(var(--primary))',
50
99
  foreground: 'hsl(var(--primary-foreground))',
100
+ glow: 'hsl(var(--primary-glow))'
51
101
  },
52
102
  secondary: {
53
103
  DEFAULT: 'hsl(var(--secondary))',
54
- foreground: 'hsl(var(--secondary-foreground))',
104
+ foreground: 'hsl(var(--secondary-foreground))'
55
105
  },
56
106
  destructive: {
57
107
  DEFAULT: 'hsl(var(--destructive))',
58
- foreground: 'hsl(var(--destructive-foreground))',
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))'
59
117
  },
60
118
  muted: {
61
119
  DEFAULT: 'hsl(var(--muted))',
62
- foreground: 'hsl(var(--muted-foreground))',
120
+ foreground: 'hsl(var(--muted-foreground))'
63
121
  },
64
122
  accent: {
65
123
  DEFAULT: 'hsl(var(--accent))',
66
- foreground: 'hsl(var(--accent-foreground))',
124
+ foreground: 'hsl(var(--accent-foreground))'
67
125
  },
68
126
  popover: {
69
127
  DEFAULT: 'hsl(var(--popover))',
70
- foreground: 'hsl(var(--popover-foreground))',
128
+ foreground: 'hsl(var(--popover-foreground))'
71
129
  },
72
130
  card: {
73
131
  DEFAULT: 'hsl(var(--card))',
74
- foreground: 'hsl(var(--card-foreground))',
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))'
75
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
+ }
76
151
  },
77
152
  borderRadius: {
78
153
  lg: 'var(--radius)',
79
154
  md: 'calc(var(--radius) - 2px)',
80
- sm: 'calc(var(--radius) - 4px)',
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)'
81
179
  },
82
- },
180
+ transitionProperty: {
181
+ 'form': 'var(--transition-form)'
182
+ }
183
+ }
83
184
  },
84
- plugins: [],
185
+ plugins: [require('tailwindcss-animate')],
85
186
  }
86
187
  ```
87
188
 
189
+ **Important:** Make sure `tailwindcss-animate` is installed:
190
+
191
+ ```bash
192
+ npm install -D tailwindcss-animate
193
+ ```
194
+
88
195
  ## Usage
89
196
 
90
- ### Import Components
197
+ ### Importing Components
198
+
199
+ Import components directly from the main package:
91
200
 
92
201
  ```tsx
93
- import { Button, Card, Dialog } from 'braid-ui-kit'
202
+ import { Button, Card, Dialog, Input } from 'braid-ui'
203
+ ```
94
204
 
95
- function App() {
205
+ ### Using Components
206
+
207
+ ```tsx
208
+ import { Button, Card, CardHeader, CardTitle, CardContent } from 'braid-ui'
209
+
210
+ function MyComponent() {
96
211
  return (
97
- <div>
98
- <Button>Click me</Button>
99
- <Card>
100
- <h2>Card Title</h2>
101
- <p>Card content</p>
102
- </Card>
103
- </div>
212
+ <Card>
213
+ <CardHeader>
214
+ <CardTitle>Card Title</CardTitle>
215
+ </CardHeader>
216
+ <CardContent>
217
+ <Button>Click me</Button>
218
+ </CardContent>
219
+ </Card>
104
220
  )
105
221
  }
106
222
  ```
107
223
 
108
- ### Import Hooks
224
+ ### Using Hooks
109
225
 
110
226
  ```tsx
111
- import { useToast, useEditState } from 'braid-ui-kit'
227
+ import { useToast, useEditState } from 'braid-ui'
112
228
 
113
229
  function MyComponent() {
114
230
  const { toast } = useToast()
115
- const editState = useEditState()
116
231
 
117
232
  return (
118
- <button onClick={() => toast({ title: "Hello!" })}>
233
+ <button onClick={() => toast({
234
+ title: 'Success!',
235
+ description: 'Action completed successfully.'
236
+ })}>
119
237
  Show Toast
120
238
  </button>
121
239
  )
122
240
  }
123
241
  ```
124
242
 
125
- ### Import Pages
243
+ ### Using Pages
126
244
 
127
245
  ```tsx
128
- import { Dashboard, Alerts, Business } from 'braid-ui-kit'
246
+ import { Dashboard, Alerts, Businesses } from 'braid-ui'
247
+ import { BrowserRouter, Routes, Route } from 'react-router-dom'
129
248
 
130
249
  function App() {
131
250
  return (
132
- <Router>
251
+ <BrowserRouter>
133
252
  <Routes>
134
253
  <Route path="/" element={<Dashboard />} />
135
254
  <Route path="/alerts" element={<Alerts />} />
136
- <Route path="/business" element={<Business />} />
255
+ <Route path="/businesses" element={<Businesses />} />
137
256
  </Routes>
138
- </Router>
257
+ </BrowserRouter>
139
258
  )
140
259
  }
141
260
  ```
142
261
 
143
- ### Import Specific Categories
144
-
145
- You can also import from specific categories:
146
-
147
- ```tsx
148
- // Import only components
149
- import { Button, Card } from 'braid-ui-kit/components'
262
+ ## Styling Options
150
263
 
151
- // Import only hooks
152
- import { useToast } from 'braid-ui-kit/hooks'
264
+ ### With Tailwind CSS (Recommended)
153
265
 
154
- // Import only pages
155
- import { Dashboard } from 'braid-ui-kit/pages'
156
- ```
266
+ If you're using Tailwind CSS, import the styles and configure your Tailwind config as shown above.
157
267
 
158
- ## Development
268
+ ### Without Tailwind CSS
159
269
 
160
- ### Build the Library
270
+ If you're not using Tailwind CSS, you can use the pre-compiled CSS:
161
271
 
162
- ```bash
163
- npm run build:lib
272
+ ```tsx
273
+ // Import pre-compiled CSS
274
+ import 'braid-ui/css'
275
+ // or minified version
276
+ import 'braid-ui/css/min'
164
277
  ```
165
278
 
166
- ### Watch Mode
279
+ You can also import just the CSS variables:
167
280
 
168
- ```bash
169
- npm run build:lib:watch
281
+ ```tsx
282
+ import 'braid-ui/css/variables'
170
283
  ```
171
284
 
172
- ## Components
285
+ ## Customizing Colors
173
286
 
174
- The library includes:
287
+ You can customize the color scheme by overriding CSS variables:
175
288
 
176
- - **UI Components**: Basic building blocks like Button, Card, Dialog, etc.
177
- - **Form Components**: Form fields, inputs, and validation components
178
- - **Layout Components**: Page layouts, containers, and grid systems
179
- - **Business Components**: Specialized components for business applications
180
- - **Alert Components**: Alert and notification components
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
+ ```
181
298
 
182
- ## Hooks
299
+ **Note:** Colors should be defined as HSL values without the `hsl()` wrapper.
183
300
 
184
- - `useToast`: Toast notification management
185
- - `useEditState`: Edit state management
186
- - `useFormWithEditState`: Form state with edit capabilities
187
- - `useMobile`: Mobile detection hook
301
+ ## Dark Mode
188
302
 
189
- ## Pages
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>`).
190
304
 
191
- Pre-built page components for common business applications:
305
+ If you're using a theme provider like `next-themes`:
192
306
 
193
- - Dashboard
194
- - Alerts management
195
- - Business management
196
- - Transaction handling
197
- - Counterparty management
307
+ ```tsx
308
+ import { ThemeProvider } from 'next-themes'
198
309
 
199
- ## Dependencies
310
+ function App() {
311
+ return (
312
+ <ThemeProvider attribute="class" defaultTheme="system">
313
+ {/* Your app */}
314
+ </ThemeProvider>
315
+ )
316
+ }
317
+ ```
200
318
 
201
- This library requires React 18+ and includes peer dependencies for:
319
+ ## TypeScript
202
320
 
203
- - React
204
- - React DOM
205
- - Various Radix UI components
206
- - Tailwind CSS
207
- - Lucide React icons
321
+ Braid UI is built with TypeScript and includes type definitions. No additional `@types` packages are required.
208
322
 
209
323
  ## License
210
324
 
211
- MIT
325
+ MIT
326
+
327
+ ## Repository
328
+
329
+ [GitHub Repository](https://github.com/your-username/braid-ui-kit.git)