vanguard-uikit 1.0.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.
@@ -0,0 +1,664 @@
1
+ // TypeScript definitions for Vanguard UIKit
2
+
3
+ import * as React from 'react';
4
+
5
+ // Theme
6
+ export const theme: {
7
+ radius: {
8
+ base: string;
9
+ large: string;
10
+ xlarge: string;
11
+ card: string;
12
+ full: string;
13
+ };
14
+ glass: string;
15
+ animation: {
16
+ fast: string;
17
+ slow: string;
18
+ slower: string;
19
+ };
20
+ colors: {
21
+ primary: string;
22
+ accent: string;
23
+ success: string;
24
+ danger: string;
25
+ warning: string;
26
+ };
27
+ };
28
+
29
+ // Buttons
30
+ export interface VanguardButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
31
+ children: React.ReactNode;
32
+ icon?: React.ComponentType<{ size?: number; className?: string }>;
33
+ variant?: 'primary' | 'accent' | 'glass' | 'ghost' | 'danger';
34
+ size?: 'sm' | 'md' | 'lg';
35
+ }
36
+
37
+ export const VanguardButton: React.FC<VanguardButtonProps>;
38
+
39
+ export interface IconButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
40
+ icon: React.ComponentType<{ size?: number; className?: string }>;
41
+ variant?: 'glass' | 'primary' | 'ghost';
42
+ size?: 'sm' | 'md' | 'lg';
43
+ }
44
+
45
+ export const IconButton: React.FC<IconButtonProps>;
46
+
47
+ // Cards
48
+ export interface VanguardCardProps {
49
+ children?: React.ReactNode;
50
+ title?: string;
51
+ description?: string;
52
+ icon?: React.ComponentType<{ size?: number; className?: string }>;
53
+ tag?: string;
54
+ hoverable?: boolean;
55
+ glass?: boolean;
56
+ className?: string;
57
+ delay?: string;
58
+ }
59
+
60
+ export const VanguardCard: React.FC<VanguardCardProps>;
61
+
62
+ export interface StatCardProps {
63
+ title: string;
64
+ value: string;
65
+ change: string;
66
+ trend?: 'up' | 'down';
67
+ icon?: React.ComponentType<{ size?: number; className?: string }>;
68
+ className?: string;
69
+ }
70
+
71
+ export const StatCard: React.FC<StatCardProps>;
72
+
73
+ // Badges
74
+ export interface StatusBadgeProps {
75
+ children: React.ReactNode;
76
+ variant?: 'blue' | 'emerald' | 'rose' | 'amber' | 'purple';
77
+ }
78
+
79
+ export const StatusBadge: React.FC<StatusBadgeProps>;
80
+
81
+ export interface BadgeProps {
82
+ children: React.ReactNode;
83
+ variant?: 'default' | 'blue' | 'emerald' | 'rose' | 'amber' | 'purple';
84
+ size?: 'sm' | 'md' | 'lg';
85
+ className?: string;
86
+ }
87
+
88
+ export const Badge: React.FC<BadgeProps>;
89
+
90
+ // Form Elements
91
+ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
92
+ icon?: React.ComponentType<{ size?: number; className?: string }>;
93
+ }
94
+
95
+ export const Input: React.FC<InputProps>;
96
+
97
+ export interface SearchInputProps {
98
+ placeholder?: string;
99
+ className?: string;
100
+ }
101
+
102
+ export const SearchInput: React.FC<SearchInputProps>;
103
+
104
+ export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
105
+ placeholder?: string;
106
+ value?: string;
107
+ onChange?: (value: string) => void;
108
+ rows?: number;
109
+ }
110
+
111
+ export const Textarea: React.FC<TextareaProps>;
112
+
113
+ export interface SelectProps {
114
+ options: Array<{ label: string; value: string }>;
115
+ value?: string;
116
+ onChange?: (value: string) => void;
117
+ placeholder?: string;
118
+ className?: string;
119
+ }
120
+
121
+ export const Select: React.FC<SelectProps>;
122
+
123
+ export interface ToggleProps {
124
+ checked: boolean;
125
+ onChange: (checked: boolean) => void;
126
+ label?: string;
127
+ disabled?: boolean;
128
+ className?: string;
129
+ }
130
+
131
+ export const Toggle: React.FC<ToggleProps>;
132
+
133
+ export const Switch: React.FC<ToggleProps>;
134
+
135
+ export interface CheckboxProps {
136
+ checked: boolean;
137
+ onChange: (checked: boolean) => void;
138
+ label?: string;
139
+ disabled?: boolean;
140
+ className?: string;
141
+ }
142
+
143
+ export const Checkbox: React.FC<CheckboxProps>;
144
+
145
+ export interface RadioGroupProps {
146
+ options: Array<{ label: string; value: string }>;
147
+ value: string;
148
+ onChange: (value: string) => void;
149
+ className?: string;
150
+ }
151
+
152
+ export const RadioGroup: React.FC<RadioGroupProps>;
153
+
154
+ export interface SliderProps {
155
+ value: number;
156
+ onChange: (value: number) => void;
157
+ min?: number;
158
+ max?: number;
159
+ step?: number;
160
+ className?: string;
161
+ }
162
+
163
+ export const Slider: React.FC<SliderProps>;
164
+
165
+ // Progress
166
+ export interface ProgressBarProps {
167
+ value?: number;
168
+ max?: number;
169
+ size?: 'sm' | 'md' | 'lg';
170
+ variant?: 'blue' | 'emerald' | 'rose' | 'amber' | 'purple' | 'gradient';
171
+ showLabel?: boolean;
172
+ className?: string;
173
+ }
174
+
175
+ export const ProgressBar: React.FC<ProgressBarProps>;
176
+
177
+ export interface CircularProgressProps {
178
+ value?: number;
179
+ size?: number;
180
+ strokeWidth?: number;
181
+ variant?: 'blue' | 'emerald' | 'rose' | 'amber' | 'purple';
182
+ showValue?: boolean;
183
+ children?: React.ReactNode;
184
+ className?: string;
185
+ }
186
+
187
+ export const CircularProgress: React.FC<CircularProgressProps>;
188
+
189
+ // Navigation
190
+ export interface SidebarItemProps {
191
+ icon?: React.ComponentType<{ size?: number; className?: string }>;
192
+ label: string;
193
+ active?: boolean;
194
+ className?: string;
195
+ }
196
+
197
+ export const SidebarItem: React.FC<SidebarItemProps>;
198
+
199
+ export interface NavTabProps {
200
+ children: React.ReactNode;
201
+ active?: boolean;
202
+ onClick?: () => void;
203
+ className?: string;
204
+ }
205
+
206
+ export const NavTab: React.FC<NavTabProps>;
207
+
208
+ export interface TabsProps {
209
+ tabs: Array<{ id: string; label: string }>;
210
+ activeTab: string;
211
+ onChange: (id: string) => void;
212
+ variant?: 'pills' | 'line';
213
+ className?: string;
214
+ }
215
+
216
+ export const Tabs: React.FC<TabsProps>;
217
+
218
+ export interface TabContentProps {
219
+ children: React.ReactNode;
220
+ active?: boolean;
221
+ className?: string;
222
+ }
223
+
224
+ export const TabContent: React.FC<TabContentProps>;
225
+
226
+ export interface AccordionProps {
227
+ items: Array<{ id: string; title: string; content: React.ReactNode }>;
228
+ allowMultiple?: boolean;
229
+ className?: string;
230
+ }
231
+
232
+ export const Accordion: React.FC<AccordionProps>;
233
+
234
+ // Lists
235
+ export interface ProjectRowProps {
236
+ name: string;
237
+ status: string;
238
+ progress: number;
239
+ category: string;
240
+ className?: string;
241
+ }
242
+
243
+ export const ProjectRow: React.FC<ProjectRowProps>;
244
+
245
+ export interface AlertItemProps {
246
+ title: string;
247
+ time: string;
248
+ color?: 'blue' | 'rose' | 'emerald';
249
+ className?: string;
250
+ }
251
+
252
+ export const AlertItem: React.FC<AlertItemProps>;
253
+
254
+ // Table
255
+ export interface TableColumn {
256
+ header: string;
257
+ accessor: string;
258
+ render?: (value: any, row: any) => React.ReactNode;
259
+ }
260
+
261
+ export interface TableProps {
262
+ columns: TableColumn[];
263
+ data: any[];
264
+ onRowClick?: (row: any) => void;
265
+ emptyMessage?: string;
266
+ className?: string;
267
+ }
268
+
269
+ export const Table: React.FC<TableProps>;
270
+
271
+ export interface PaginationProps {
272
+ currentPage: number;
273
+ totalPages: number;
274
+ onPageChange: (page: number) => void;
275
+ className?: string;
276
+ }
277
+
278
+ export const Pagination: React.FC<PaginationProps>;
279
+
280
+ // Layout
281
+ export interface WorkspaceSelectorProps {
282
+ name?: string;
283
+ plan?: string;
284
+ icon?: React.ComponentType<{ size?: number; className?: string }>;
285
+ className?: string;
286
+ }
287
+
288
+ export const WorkspaceSelector: React.FC<WorkspaceSelectorProps>;
289
+
290
+ export interface AvatarProps {
291
+ src: string;
292
+ alt?: string;
293
+ size?: 'sm' | 'md' | 'lg';
294
+ className?: string;
295
+ }
296
+
297
+ export const Avatar: React.FC<AvatarProps>;
298
+
299
+ export interface UpgradeCardProps {
300
+ version?: string;
301
+ title?: string;
302
+ buttonText?: string;
303
+ className?: string;
304
+ }
305
+
306
+ export const UpgradeCard: React.FC<UpgradeCardProps>;
307
+
308
+ export interface BarChartProps {
309
+ data?: number[];
310
+ height?: number;
311
+ className?: string;
312
+ }
313
+
314
+ export const BarChart: React.FC<BarChartProps>;
315
+
316
+ export interface GlassPanelProps {
317
+ children: React.ReactNode;
318
+ className?: string;
319
+ radius?: 'base' | 'large' | 'xlarge';
320
+ }
321
+
322
+ export const GlassPanel: React.FC<GlassPanelProps>;
323
+
324
+ export const BackgroundDecor: React.FC<{ className?: string }>;
325
+
326
+ // Typography
327
+ export interface HeadingProps {
328
+ children: React.ReactNode;
329
+ level?: 1 | 2 | 3 | 4;
330
+ uppercase?: boolean;
331
+ italic?: boolean;
332
+ className?: string;
333
+ }
334
+
335
+ export const Heading: React.FC<HeadingProps>;
336
+
337
+ export interface TextProps {
338
+ children: React.ReactNode;
339
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
340
+ variant?: 'default' | 'muted' | 'subtle' | 'primary' | 'success' | 'danger';
341
+ className?: string;
342
+ }
343
+
344
+ export const Text: React.FC<TextProps>;
345
+
346
+ // Form
347
+ export interface LabelProps {
348
+ children: React.ReactNode;
349
+ required?: boolean;
350
+ className?: string;
351
+ }
352
+
353
+ export const Label: React.FC<LabelProps>;
354
+
355
+ export interface FormGroupProps {
356
+ children: React.ReactNode;
357
+ label?: string;
358
+ error?: string;
359
+ className?: string;
360
+ }
361
+
362
+ export const FormGroup: React.FC<FormGroupProps>;
363
+
364
+ // Social
365
+ export interface SocialLinkProps {
366
+ icon: React.ComponentType<{ size?: number; className?: string }>;
367
+ href?: string;
368
+ className?: string;
369
+ }
370
+
371
+ export const SocialLink: React.FC<SocialLinkProps>;
372
+ export const SocialLinks: React.FC<{ className?: string }>;
373
+
374
+ // Navbar
375
+ export interface NavbarProps {
376
+ scrolled?: boolean;
377
+ children: React.ReactNode;
378
+ className?: string;
379
+ }
380
+
381
+ export const Navbar: React.FC<NavbarProps>;
382
+
383
+ export interface LogoProps {
384
+ name?: string;
385
+ subtitle?: string;
386
+ className?: string;
387
+ }
388
+
389
+ export const Logo: React.FC<LogoProps>;
390
+
391
+ // Footer
392
+ export interface FooterLinkProps {
393
+ children: React.ReactNode;
394
+ href?: string;
395
+ className?: string;
396
+ }
397
+
398
+ export const FooterLink: React.FC<FooterLinkProps>;
399
+
400
+ export interface FooterSectionProps {
401
+ title: string;
402
+ links?: string[];
403
+ className?: string;
404
+ }
405
+
406
+ export const FooterSection: React.FC<FooterSectionProps>;
407
+
408
+ // Modal
409
+ export interface ModalProps {
410
+ isOpen: boolean;
411
+ onClose: () => void;
412
+ title?: string;
413
+ children: React.ReactNode;
414
+ size?: 'sm' | 'md' | 'lg' | 'xl' | 'full';
415
+ showClose?: boolean;
416
+ className?: string;
417
+ }
418
+
419
+ export const Modal: React.FC<ModalProps>;
420
+ export const Dialog: React.FC<ModalProps>;
421
+
422
+ export interface ConfirmDialogProps {
423
+ isOpen: boolean;
424
+ onClose: () => void;
425
+ onConfirm: () => void;
426
+ title?: string;
427
+ message?: string;
428
+ confirmText?: string;
429
+ cancelText?: string;
430
+ variant?: 'danger' | 'primary';
431
+ }
432
+
433
+ export const ConfirmDialog: React.FC<ConfirmDialogProps>;
434
+
435
+ // Dropdown
436
+ export interface DropdownProps {
437
+ trigger: React.ReactNode;
438
+ children: React.ReactNode;
439
+ align?: 'left' | 'right' | 'center';
440
+ className?: string;
441
+ }
442
+
443
+ export const Dropdown: React.FC<DropdownProps>;
444
+
445
+ export interface DropdownItemProps {
446
+ children: React.ReactNode;
447
+ icon?: React.ComponentType<{ size?: number; className?: string }>;
448
+ onClick?: () => void;
449
+ danger?: boolean;
450
+ className?: string;
451
+ }
452
+
453
+ export const DropdownItem: React.FC<DropdownItemProps>;
454
+ export const DropdownDivider: React.FC<{ className?: string }>;
455
+
456
+ // Tooltip
457
+ export interface TooltipProps {
458
+ children: React.ReactNode;
459
+ content: string;
460
+ position?: 'top' | 'bottom' | 'left' | 'right';
461
+ className?: string;
462
+ }
463
+
464
+ export const Tooltip: React.FC<TooltipProps>;
465
+
466
+ // Toast
467
+ export interface ToastProps {
468
+ title?: string;
469
+ message?: string;
470
+ variant?: 'default' | 'success' | 'error' | 'warning' | 'info';
471
+ icon?: React.ComponentType<{ size?: number; className?: string }>;
472
+ onClose: () => void;
473
+ className?: string;
474
+ }
475
+
476
+ export const Toast: React.FC<ToastProps>;
477
+
478
+ export interface ToastProviderProps {
479
+ children: React.ReactNode;
480
+ }
481
+
482
+ export const ToastProvider: React.FC<ToastProviderProps>;
483
+
484
+ export interface UseToastReturn {
485
+ addToast: (toast: Omit<ToastProps, 'onClose'>) => void;
486
+ removeToast: (id: number) => void;
487
+ }
488
+
489
+ export function useToast(): UseToastReturn;
490
+
491
+ // Loaders
492
+ export interface SkeletonProps {
493
+ width?: string | number;
494
+ height?: string | number;
495
+ variant?: 'text' | 'circle' | 'card';
496
+ className?: string;
497
+ }
498
+
499
+ export const Skeleton: React.FC<SkeletonProps>;
500
+ export const SkeletonText: React.FC<{ lines?: number; className?: string }>;
501
+ export const SkeletonCard: React.FC<{ className?: string }>;
502
+
503
+ export interface LoaderProps {
504
+ size?: 'sm' | 'md' | 'lg';
505
+ className?: string;
506
+ }
507
+
508
+ export const Loader: React.FC<LoaderProps>;
509
+ export const Spinner: React.FC<LoaderProps>;
510
+
511
+ // Empty State
512
+ export interface EmptyStateProps {
513
+ icon?: React.ComponentType<{ size?: number; className?: string }>;
514
+ title?: string;
515
+ description?: string;
516
+ action?: React.ReactNode;
517
+ className?: string;
518
+ }
519
+
520
+ export const EmptyState: React.FC<EmptyStateProps>;
521
+
522
+ // Specialized Cards
523
+ export interface PricingCardProps {
524
+ title: string;
525
+ price: string;
526
+ period?: string;
527
+ features?: string[];
528
+ popular?: boolean;
529
+ buttonText?: string;
530
+ className?: string;
531
+ }
532
+
533
+ export const PricingCard: React.FC<PricingCardProps>;
534
+
535
+ export interface TestimonialCardProps {
536
+ quote: string;
537
+ author: string;
538
+ role: string;
539
+ avatar?: string;
540
+ className?: string;
541
+ }
542
+
543
+ export const TestimonialCard: React.FC<TestimonialCardProps>;
544
+
545
+ export interface FeatureCardProps {
546
+ icon: React.ComponentType<{ size?: number; className?: string }>;
547
+ title: string;
548
+ description: string;
549
+ className?: string;
550
+ }
551
+
552
+ export const FeatureCard: React.FC<FeatureCardProps>;
553
+
554
+ // Utilities
555
+ export const Divider: React.FC<{ className?: string }>;
556
+ export const VerticalDivider: React.FC<{ className?: string }>;
557
+ export const Placeholder: React.FC<{ className?: string }>;
558
+ export const Blur: React.FC<{ children: React.ReactNode; className?: string }>;
559
+ export const Fade: React.FC<{ children: React.ReactNode; className?: string }>;
560
+ export const FadeIn: React.FC<{ children: React.ReactNode; delay?: number; className?: string }>;
561
+ export const SlideIn: React.FC<{ children: React.ReactNode; direction?: 'up' | 'down' | 'left' | 'right'; delay?: number; className?: string }>;
562
+ export const ScaleIn: React.FC<{ children: React.ReactNode; delay?: number; className?: string }>;
563
+
564
+ // Layout
565
+ export interface GridProps {
566
+ children: React.ReactNode;
567
+ cols?: number;
568
+ gap?: number;
569
+ className?: string;
570
+ }
571
+
572
+ export const Grid: React.FC<GridProps>;
573
+
574
+ export interface StackProps {
575
+ children: React.ReactNode;
576
+ direction?: 'vertical' | 'horizontal';
577
+ gap?: number;
578
+ className?: string;
579
+ }
580
+
581
+ export const Stack: React.FC<StackProps>;
582
+ export const Center: React.FC<{ children: React.ReactNode; className?: string }>;
583
+ export const Between: React.FC<{ children: React.ReactNode; className?: string }>;
584
+
585
+ // Icons
586
+ export const Icons: Record<string, React.ComponentType<{ size?: number; className?: string }>>;
587
+
588
+ export default {
589
+ VanguardButton,
590
+ IconButton,
591
+ VanguardCard,
592
+ StatCard,
593
+ StatusBadge,
594
+ Badge,
595
+ Input,
596
+ SearchInput,
597
+ Textarea,
598
+ Select,
599
+ Toggle,
600
+ Switch,
601
+ Checkbox,
602
+ RadioGroup,
603
+ Slider,
604
+ ProgressBar,
605
+ CircularProgress,
606
+ SidebarItem,
607
+ NavTab,
608
+ Tabs,
609
+ TabContent,
610
+ Accordion,
611
+ ProjectRow,
612
+ AlertItem,
613
+ Table,
614
+ Pagination,
615
+ WorkspaceSelector,
616
+ Avatar,
617
+ UpgradeCard,
618
+ BarChart,
619
+ BackgroundDecor,
620
+ GlassPanel,
621
+ Heading,
622
+ Text,
623
+ Label,
624
+ FormGroup,
625
+ SocialLink,
626
+ SocialLinks,
627
+ Navbar,
628
+ Logo,
629
+ FooterLink,
630
+ FooterSection,
631
+ Modal,
632
+ Dialog,
633
+ ConfirmDialog,
634
+ Dropdown,
635
+ DropdownItem,
636
+ DropdownDivider,
637
+ Tooltip,
638
+ Toast,
639
+ ToastProvider,
640
+ useToast,
641
+ Skeleton,
642
+ SkeletonText,
643
+ SkeletonCard,
644
+ Loader,
645
+ Spinner,
646
+ EmptyState,
647
+ PricingCard,
648
+ TestimonialCard,
649
+ FeatureCard,
650
+ Divider,
651
+ VerticalDivider,
652
+ Placeholder,
653
+ Blur,
654
+ Fade,
655
+ FadeIn,
656
+ SlideIn,
657
+ ScaleIn,
658
+ Grid,
659
+ Stack,
660
+ Center,
661
+ Between,
662
+ Icons,
663
+ theme
664
+ };
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ // Vanguard UIKit - Main Entry Point
2
+ // A modern dark-themed UI component library
3
+
4
+ export * from './vanguard-uikit';
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "vanguard-uikit",
3
+ "version": "1.0.0",
4
+ "description": "A modern dark-themed UI component library based on the Vanguard Design System",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.esm.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "keywords": [
12
+ "react",
13
+ "ui-kit",
14
+ "components",
15
+ "vanguard",
16
+ "dark-theme",
17
+ "glassmorphism",
18
+ "tailwind"
19
+ ],
20
+ "author": "Dream-Pixels-Forge",
21
+ "license": "MIT",
22
+ "peerDependencies": {
23
+ "react": ">=16.8.0",
24
+ "react-dom": ">=16.8.0",
25
+ "lucide-react": ">=0.200.0"
26
+ }
27
+ }