@clidey/ux 0.1.0

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 ADDED
@@ -0,0 +1,284 @@
1
+ # @clidey/ux
2
+
3
+ A modern React UI component library built with Tailwind CSS and Radix UI primitives.
4
+
5
+ ## Features
6
+
7
+ - 🎨 **Modern Design**: Clean, accessible components with a modern aesthetic
8
+ - 🌙 **Dark Mode**: Built-in dark mode support with theme switching
9
+ - ♿ **Accessible**: Built on Radix UI primitives for excellent accessibility
10
+ - 🎯 **TypeScript**: Full TypeScript support with proper type definitions
11
+ - 🚀 **Lightweight**: Optimized bundle size with tree-shaking support
12
+ - 🎨 **Customizable**: Easy to customize with Tailwind CSS classes
13
+
14
+ ## Installation
15
+
16
+ ```bash
17
+ npm install @clidey/ux
18
+ # or
19
+ yarn add @clidey/ux
20
+ # or
21
+ pnpm add @clidey/ux
22
+ ```
23
+
24
+ ## Quick Start
25
+
26
+ ```tsx
27
+ import { Button, Card, ThemeProvider } from '@clidey/ux'
28
+ import '@clidey/ux/styles'
29
+
30
+ function App() {
31
+ return (
32
+ <ThemeProvider defaultTheme="dark" storageKey="my-app-theme">
33
+ <Card>
34
+ <CardHeader>
35
+ <CardTitle>Welcome to Clidey UX</CardTitle>
36
+ </CardHeader>
37
+ <CardContent>
38
+ <Button>Click me</Button>
39
+ </CardContent>
40
+ </Card>
41
+ </ThemeProvider>
42
+ )
43
+ }
44
+ ```
45
+
46
+ ## Components
47
+
48
+ ### Layout Components
49
+
50
+ - **Card** - Container component with header, content, and footer sections
51
+ - **Skeleton** - Loading state component
52
+
53
+ ### Form Components
54
+
55
+ - **Button** - Button component with multiple variants and sizes
56
+ - **Input** - Input field component
57
+ - **Label** - Form label component
58
+
59
+ ### Navigation Components
60
+
61
+ - **Breadcrumb** - Hierarchical navigation component
62
+ - **Pagination** - Page navigation component
63
+ - **Tabs** - Tabbed interface component
64
+
65
+ ### Data Display Components
66
+
67
+ - **Badge** - Status and label component
68
+ - **Table** - Data table component
69
+ - **Tooltip** - Tooltip component
70
+
71
+ ### Overlay Components
72
+
73
+ - **ContextMenu** - Context menu component
74
+ - **Drawer** - Slide-out drawer component
75
+ - **DropdownMenu** - Dropdown menu component
76
+ - **Popover** - Popover component
77
+
78
+ ### Feedback Components
79
+
80
+ - **Toaster** - Toast notification component
81
+
82
+ ### Theme Components
83
+
84
+ - **ThemeProvider** - Theme context provider
85
+ - **ModeToggle** - Theme toggle button
86
+
87
+ ## Usage Examples
88
+
89
+ ### Basic Button
90
+
91
+ ```tsx
92
+ import { Button } from '@clidey/ux'
93
+
94
+ function MyComponent() {
95
+ return (
96
+ <div>
97
+ <Button>Default Button</Button>
98
+ <Button variant="secondary">Secondary</Button>
99
+ <Button variant="destructive">Delete</Button>
100
+ <Button variant="outline">Outline</Button>
101
+ <Button variant="ghost">Ghost</Button>
102
+ <Button variant="link">Link</Button>
103
+ </div>
104
+ )
105
+ }
106
+ ```
107
+
108
+ ### Card with Content
109
+
110
+ ```tsx
111
+ import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@clidey/ux'
112
+
113
+ function MyCard() {
114
+ return (
115
+ <Card>
116
+ <CardHeader>
117
+ <CardTitle>Card Title</CardTitle>
118
+ <CardDescription>Card description goes here</CardDescription>
119
+ </CardHeader>
120
+ <CardContent>
121
+ <p>This is the main content of the card.</p>
122
+ </CardContent>
123
+ <CardFooter>
124
+ <Button>Action</Button>
125
+ </CardFooter>
126
+ </Card>
127
+ )
128
+ }
129
+ ```
130
+
131
+ ### Form with Input
132
+
133
+ ```tsx
134
+ import { Input, Label, Button } from '@clidey/ux'
135
+
136
+ function MyForm() {
137
+ return (
138
+ <form className="space-y-4">
139
+ <div>
140
+ <Label htmlFor="email">Email</Label>
141
+ <Input id="email" type="email" placeholder="Enter your email" />
142
+ </div>
143
+ <Button type="submit">Submit</Button>
144
+ </form>
145
+ )
146
+ }
147
+ ```
148
+
149
+ ### Table with Data
150
+
151
+ ```tsx
152
+ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, Badge } from '@clidey/ux'
153
+
154
+ function MyTable() {
155
+ return (
156
+ <Table>
157
+ <TableHeader>
158
+ <TableRow>
159
+ <TableHead>Name</TableHead>
160
+ <TableHead>Email</TableHead>
161
+ <TableHead>Status</TableHead>
162
+ </TableRow>
163
+ </TableHeader>
164
+ <TableBody>
165
+ <TableRow>
166
+ <TableCell>John Doe</TableCell>
167
+ <TableCell>john@example.com</TableCell>
168
+ <TableCell><Badge>Active</Badge></TableCell>
169
+ </TableRow>
170
+ </TableBody>
171
+ </Table>
172
+ )
173
+ }
174
+ ```
175
+
176
+ ### Theme Setup
177
+
178
+ ```tsx
179
+ import { ThemeProvider, ModeToggle } from '@clidey/ux'
180
+
181
+ function App() {
182
+ return (
183
+ <ThemeProvider defaultTheme="dark" storageKey="my-app-theme">
184
+ <div>
185
+ <ModeToggle />
186
+ {/* Your app content */}
187
+ </div>
188
+ </ThemeProvider>
189
+ )
190
+ }
191
+ ```
192
+
193
+ ## Styling
194
+
195
+ The components are built with Tailwind CSS. To use them properly, make sure you have Tailwind CSS configured in your project.
196
+
197
+ ### Required Tailwind CSS Configuration
198
+
199
+ Add the following to your `tailwind.config.js`:
200
+
201
+ ```js
202
+ /** @type {import('tailwindcss').Config} */
203
+ module.exports = {
204
+ darkMode: ["class"],
205
+ content: [
206
+ './pages/**/*.{ts,tsx}',
207
+ './components/**/*.{ts,tsx}',
208
+ './app/**/*.{ts,tsx}',
209
+ './src/**/*.{ts,tsx}',
210
+ './node_modules/@clidey/ux/**/*.{js,ts,jsx,tsx}',
211
+ ],
212
+ theme: {
213
+ extend: {
214
+ colors: {
215
+ border: "hsl(var(--border))",
216
+ input: "hsl(var(--input))",
217
+ ring: "hsl(var(--ring))",
218
+ background: "hsl(var(--background))",
219
+ foreground: "hsl(var(--foreground))",
220
+ primary: {
221
+ DEFAULT: "hsl(var(--primary))",
222
+ foreground: "hsl(var(--primary-foreground))",
223
+ },
224
+ secondary: {
225
+ DEFAULT: "hsl(var(--secondary))",
226
+ foreground: "hsl(var(--secondary-foreground))",
227
+ },
228
+ destructive: {
229
+ DEFAULT: "hsl(var(--destructive))",
230
+ foreground: "hsl(var(--destructive-foreground))",
231
+ },
232
+ muted: {
233
+ DEFAULT: "hsl(var(--muted))",
234
+ foreground: "hsl(var(--muted-foreground))",
235
+ },
236
+ accent: {
237
+ DEFAULT: "hsl(var(--accent))",
238
+ foreground: "hsl(var(--accent-foreground))",
239
+ },
240
+ popover: {
241
+ DEFAULT: "hsl(var(--popover))",
242
+ foreground: "hsl(var(--popover-foreground))",
243
+ },
244
+ card: {
245
+ DEFAULT: "hsl(var(--card))",
246
+ foreground: "hsl(var(--card-foreground))",
247
+ },
248
+ },
249
+ borderRadius: {
250
+ lg: "var(--radius)",
251
+ md: "calc(var(--radius) - 2px)",
252
+ sm: "calc(var(--radius) - 4px)",
253
+ },
254
+ },
255
+ },
256
+ plugins: [],
257
+ }
258
+ ```
259
+
260
+ ## Dependencies
261
+
262
+ This package has the following peer dependencies:
263
+
264
+ - `react` (^18.0.0 || ^19.0.0)
265
+ - `react-dom` (^18.0.0 || ^19.0.0)
266
+
267
+ And the following dependencies:
268
+
269
+ - `@radix-ui/react-*` - UI primitives
270
+ - `class-variance-authority` - Component variants
271
+ - `clsx` - Conditional classes
272
+ - `lucide-react` - Icons
273
+ - `next-themes` - Theme management
274
+ - `sonner` - Toast notifications
275
+ - `tailwind-merge` - Tailwind class merging
276
+ - `vaul` - Drawer component
277
+
278
+ ## License
279
+
280
+ MIT
281
+
282
+ ## Contributing
283
+
284
+ Contributions are welcome! Please feel free to submit a Pull Request.
@@ -0,0 +1 @@
1
+ export {}