@djangocfg/ui-nextjs 1.4.45

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 (101) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +152 -0
  3. package/package.json +110 -0
  4. package/src/animations/AnimatedBackground.tsx +645 -0
  5. package/src/animations/index.ts +2 -0
  6. package/src/blocks/ArticleCard.tsx +94 -0
  7. package/src/blocks/ArticleList.tsx +95 -0
  8. package/src/blocks/CTASection.tsx +136 -0
  9. package/src/blocks/FeatureSection.tsx +104 -0
  10. package/src/blocks/Hero.tsx +102 -0
  11. package/src/blocks/NewsletterSection.tsx +119 -0
  12. package/src/blocks/StatsSection.tsx +103 -0
  13. package/src/blocks/SuperHero.tsx +328 -0
  14. package/src/blocks/TestimonialSection.tsx +122 -0
  15. package/src/blocks/index.ts +9 -0
  16. package/src/components/README.md +2018 -0
  17. package/src/components/breadcrumb-navigation.tsx +127 -0
  18. package/src/components/breadcrumb.tsx +132 -0
  19. package/src/components/button-download.tsx +275 -0
  20. package/src/components/dropdown-menu.tsx +219 -0
  21. package/src/components/index.ts +86 -0
  22. package/src/components/markdown/MarkdownMessage.tsx +338 -0
  23. package/src/components/markdown/index.ts +5 -0
  24. package/src/components/menubar.tsx +274 -0
  25. package/src/components/multi-select-pro/async.tsx +608 -0
  26. package/src/components/multi-select-pro/helpers.tsx +84 -0
  27. package/src/components/multi-select-pro/index.tsx +622 -0
  28. package/src/components/navigation-menu.tsx +153 -0
  29. package/src/components/pagination-static.tsx +348 -0
  30. package/src/components/pagination.tsx +138 -0
  31. package/src/components/phone-input.tsx +276 -0
  32. package/src/components/sidebar.tsx +866 -0
  33. package/src/components/sonner.tsx +31 -0
  34. package/src/components/ssr-pagination.tsx +237 -0
  35. package/src/hooks/index.ts +19 -0
  36. package/src/hooks/useCfgRouter.ts +153 -0
  37. package/src/hooks/useLocalStorage.ts +221 -0
  38. package/src/hooks/useQueryParams.ts +73 -0
  39. package/src/hooks/useSessionStorage.ts +188 -0
  40. package/src/hooks/useTheme.ts +57 -0
  41. package/src/index.ts +24 -0
  42. package/src/lib/index.ts +2 -0
  43. package/src/styles/index.css +2 -0
  44. package/src/theme/ForceTheme.tsx +115 -0
  45. package/src/theme/ThemeProvider.tsx +82 -0
  46. package/src/theme/ThemeToggle.tsx +52 -0
  47. package/src/theme/index.ts +3 -0
  48. package/src/tools/JsonForm/JsonSchemaForm.tsx +199 -0
  49. package/src/tools/JsonForm/examples/BotConfigExample.tsx +245 -0
  50. package/src/tools/JsonForm/examples/RealBotConfigExample.tsx +157 -0
  51. package/src/tools/JsonForm/index.ts +46 -0
  52. package/src/tools/JsonForm/templates/ArrayFieldItemTemplate.tsx +46 -0
  53. package/src/tools/JsonForm/templates/ArrayFieldTemplate.tsx +73 -0
  54. package/src/tools/JsonForm/templates/BaseInputTemplate.tsx +106 -0
  55. package/src/tools/JsonForm/templates/ErrorListTemplate.tsx +34 -0
  56. package/src/tools/JsonForm/templates/FieldTemplate.tsx +61 -0
  57. package/src/tools/JsonForm/templates/ObjectFieldTemplate.tsx +43 -0
  58. package/src/tools/JsonForm/templates/index.ts +12 -0
  59. package/src/tools/JsonForm/types.ts +83 -0
  60. package/src/tools/JsonForm/utils.ts +212 -0
  61. package/src/tools/JsonForm/widgets/CheckboxWidget.tsx +36 -0
  62. package/src/tools/JsonForm/widgets/NumberWidget.tsx +88 -0
  63. package/src/tools/JsonForm/widgets/SelectWidget.tsx +100 -0
  64. package/src/tools/JsonForm/widgets/SwitchWidget.tsx +34 -0
  65. package/src/tools/JsonForm/widgets/TextWidget.tsx +95 -0
  66. package/src/tools/JsonForm/widgets/index.ts +12 -0
  67. package/src/tools/JsonTree/index.tsx +252 -0
  68. package/src/tools/LottiePlayer/LottiePlayer.client.tsx +212 -0
  69. package/src/tools/LottiePlayer/index.tsx +54 -0
  70. package/src/tools/LottiePlayer/types.ts +108 -0
  71. package/src/tools/LottiePlayer/useLottie.ts +163 -0
  72. package/src/tools/Mermaid/Mermaid.client.tsx +341 -0
  73. package/src/tools/Mermaid/index.tsx +40 -0
  74. package/src/tools/OpenapiViewer/components/EndpointInfo.tsx +144 -0
  75. package/src/tools/OpenapiViewer/components/EndpointsLibrary.tsx +255 -0
  76. package/src/tools/OpenapiViewer/components/PlaygroundLayout.tsx +123 -0
  77. package/src/tools/OpenapiViewer/components/PlaygroundStepper.tsx +98 -0
  78. package/src/tools/OpenapiViewer/components/RequestBuilder.tsx +164 -0
  79. package/src/tools/OpenapiViewer/components/RequestParametersForm.tsx +253 -0
  80. package/src/tools/OpenapiViewer/components/ResponseViewer.tsx +169 -0
  81. package/src/tools/OpenapiViewer/components/VersionSelector.tsx +64 -0
  82. package/src/tools/OpenapiViewer/components/index.ts +14 -0
  83. package/src/tools/OpenapiViewer/constants.ts +39 -0
  84. package/src/tools/OpenapiViewer/context/PlaygroundContext.tsx +338 -0
  85. package/src/tools/OpenapiViewer/hooks/index.ts +8 -0
  86. package/src/tools/OpenapiViewer/hooks/useMobile.ts +10 -0
  87. package/src/tools/OpenapiViewer/hooks/useOpenApiSchema.ts +203 -0
  88. package/src/tools/OpenapiViewer/index.tsx +36 -0
  89. package/src/tools/OpenapiViewer/types.ts +152 -0
  90. package/src/tools/OpenapiViewer/utils/apiKeyManager.ts +149 -0
  91. package/src/tools/OpenapiViewer/utils/formatters.ts +71 -0
  92. package/src/tools/OpenapiViewer/utils/index.ts +9 -0
  93. package/src/tools/OpenapiViewer/utils/versionManager.ts +161 -0
  94. package/src/tools/PrettyCode/PrettyCode.client.tsx +217 -0
  95. package/src/tools/PrettyCode/index.tsx +43 -0
  96. package/src/tools/VideoPlayer/README.md +239 -0
  97. package/src/tools/VideoPlayer/VideoControls.tsx +138 -0
  98. package/src/tools/VideoPlayer/VideoPlayer.tsx +230 -0
  99. package/src/tools/VideoPlayer/index.ts +9 -0
  100. package/src/tools/VideoPlayer/types.ts +62 -0
  101. package/src/tools/index.ts +43 -0
@@ -0,0 +1,2018 @@
1
+ # ๐Ÿงฉ LLM-Optimized Documentation for UI Package (Single File, No Glossary, No Schemas)
2
+
3
+ ## ๐ŸŽฏ Goal
4
+
5
+ Create a **single-file**, **token-efficient**, **machine-readable** documentation format that:
6
+
7
+ - Integrates smoothly with LLMs in Cursor IDE.
8
+ - Enables structured code generation and API understanding.
9
+ - Captures architecture, logic, and usage flows clearly.
10
+
11
+ ---
12
+
13
+ ## ๐Ÿงฑ Structure
14
+
15
+ Use the following structure in a single `.md` file:
16
+
17
+ ```
18
+ # Overview
19
+ # Modules
20
+ # APIs (ReadMe.LLM format)
21
+ # Flows
22
+ # Terms (inline, where needed)
23
+ ```
24
+
25
+ Each section should be concise and semantically organized using headings (`##`, `###`).
26
+
27
+ ---
28
+
29
+ ## ๐Ÿ“– Overview
30
+
31
+ This documentation provides LLM-readable references for UI package hooks, components, and blocks in the landings project.
32
+ It is optimized for use inside Cursor IDE and for retrieval-augmented prompting (RAG).
33
+
34
+ ---
35
+
36
+ ## ๐Ÿ“ฆ Modules
37
+
38
+ ### @hooks/useToast
39
+
40
+ **Purpose**:
41
+ Toast notification system with state management and auto-dismiss functionality.
42
+
43
+ **Dependencies**:
44
+ - React
45
+ - `@/components/toast`
46
+
47
+ **Exports**:
48
+ - `useToast`
49
+ - `toast`
50
+
51
+ **Used in**:
52
+ - Landing pages
53
+ - Form submissions
54
+ - User feedback
55
+
56
+ ---
57
+
58
+ ### @hooks/useAuthDialog
59
+
60
+ **Purpose**:
61
+ Authentication dialog management with event-driven architecture.
62
+
63
+ **Dependencies**:
64
+ - `@repo/auth`
65
+ - `useEventsBus`
66
+ - `DIALOG_EVENTS`
67
+
68
+ **Exports**:
69
+ - `useAuthDialog`
70
+
71
+ **Used in**:
72
+ - Protected content areas
73
+ - User authentication flows
74
+
75
+ ---
76
+
77
+ ### @hooks/useCountdown
78
+
79
+ **Purpose**:
80
+ Real-time countdown timer with moment.js integration.
81
+
82
+ **Dependencies**:
83
+ - `moment`
84
+ - React hooks
85
+
86
+ **Exports**:
87
+ - `useCountdown`
88
+
89
+ **Used in**:
90
+ - Limited-time offers
91
+ - Event countdowns
92
+ - Promotional campaigns
93
+
94
+ ---
95
+
96
+ ### @hooks/useDebouncedCallback
97
+
98
+ **Purpose**:
99
+ Debounced function execution to optimize performance.
100
+
101
+ **Dependencies**:
102
+ - React hooks
103
+
104
+ **Exports**:
105
+ - `useDebouncedCallback`
106
+
107
+ **Used in**:
108
+ - Search inputs
109
+ - Form validation
110
+ - API calls
111
+
112
+ ---
113
+
114
+ ### @hooks/useEventsBus
115
+
116
+ **Purpose**:
117
+ Event-driven communication system for component interaction.
118
+
119
+ **Dependencies**:
120
+ - React hooks
121
+
122
+ **Exports**:
123
+ - `events`
124
+ - `useEventListener`
125
+
126
+ **Used in**:
127
+ - Cross-component communication
128
+ - Dialog management
129
+ - State synchronization
130
+
131
+ ---
132
+
133
+ ### @hooks/useLocalStorage
134
+
135
+ **Purpose**:
136
+ Enhanced localStorage management with error handling and quota management.
137
+
138
+ **Dependencies**:
139
+ - React hooks
140
+ - Browser localStorage API
141
+
142
+ **Exports**:
143
+ - `useLocalStorage`
144
+
145
+ **Used in**:
146
+ - User preferences
147
+ - Form persistence
148
+ - Cache management
149
+
150
+ ---
151
+
152
+ ### @hooks/useSessionStorage
153
+
154
+ **Purpose**:
155
+ Enhanced sessionStorage management with error handling and quota management.
156
+
157
+ **Dependencies**:
158
+ - React hooks
159
+ - Browser sessionStorage API
160
+
161
+ **Exports**:
162
+ - `useSessionStorage`
163
+
164
+ **Used in**:
165
+ - Session data
166
+ - Temporary form data
167
+ - User session state
168
+
169
+ ---
170
+
171
+ ### @hooks/useMobile
172
+
173
+ **Purpose**:
174
+ Responsive design hook for mobile detection.
175
+
176
+ **Dependencies**:
177
+ - React hooks
178
+ - Browser matchMedia API
179
+
180
+ **Exports**:
181
+ - `useIsMobile`
182
+
183
+ **Used in**:
184
+ - Responsive layouts
185
+ - Mobile-specific features
186
+ - Adaptive UI
187
+
188
+ ---
189
+
190
+ ### @hooks/useDebugTools
191
+
192
+ **Purpose**:
193
+ React DevTools integration for debugging component state.
194
+
195
+ **Dependencies**:
196
+ - React `useDebugValue`
197
+
198
+ **Exports**:
199
+ - `useDebugTools`
200
+
201
+ **Used in**:
202
+ - Development debugging
203
+ - Component state inspection
204
+ - Performance monitoring
205
+
206
+ ---
207
+
208
+ ### @blocks/Hero
209
+
210
+ **Purpose**:
211
+ Landing page hero section with customizable actions and backgrounds.
212
+
213
+ **Dependencies**:
214
+ - `@/components/button`
215
+ - `@/lib/utils`
216
+ - Next.js Link
217
+
218
+ **Props**:
219
+ - `title`: string
220
+ - `subtitle?`: string
221
+ - `description?`: string
222
+ - `primaryAction?`: ActionConfig
223
+ - `secondaryAction?`: ActionConfig
224
+ - `background?`: 'gradient' | 'solid' | 'image' | 'dark'
225
+ - `className?`: string
226
+ - `children?`: ReactNode
227
+
228
+ **Used in**:
229
+ - Landing pages
230
+ - Marketing pages
231
+ - Product introductions
232
+
233
+ ---
234
+
235
+ ### @blocks/FeatureSection
236
+
237
+ **Purpose**:
238
+ Feature showcase section with grid layout and card-based presentation.
239
+
240
+ **Dependencies**:
241
+ - `@/components/card`
242
+ - `@/lib/utils`
243
+
244
+ **Props**:
245
+ - `title`: string
246
+ - `subtitle?`: string
247
+ - `features`: Feature[]
248
+ - `columns?`: 1 | 2 | 3 | 4
249
+ - `className?`: string
250
+ - `background?`: 'dark' | 'card' | 'gradient'
251
+
252
+ **Used in**:
253
+ - Product features
254
+ - Service descriptions
255
+ - Feature comparisons
256
+
257
+ ---
258
+
259
+ ### @components/Button
260
+
261
+ **Purpose**:
262
+ Versatile button component with multiple variants and link support.
263
+
264
+ **Dependencies**:
265
+ - `@radix-ui/react-slot`
266
+ - `class-variance-authority`
267
+ - `@/lib/utils`
268
+ - Next.js Link
269
+
270
+ **Variants**:
271
+ - `default`: Primary button
272
+ - `destructive`: Danger button
273
+ - `outline`: Bordered button
274
+ - `secondary`: Secondary button
275
+ - `ghost`: Transparent button
276
+ - `link`: Link-style button
277
+
278
+ **Sizes**:
279
+ - `default`: Standard size
280
+ - `sm`: Small size
281
+ - `lg`: Large size
282
+ - `icon`: Icon-only size
283
+
284
+ **Used in**:
285
+ - Forms
286
+ - Navigation
287
+ - Actions
288
+ - CTAs
289
+
290
+ ---
291
+
292
+ ### @components/Card
293
+
294
+ **Purpose**:
295
+ Card container with header, content, and footer sections.
296
+
297
+ **Dependencies**:
298
+ - `@/lib/utils`
299
+
300
+ **Exports**:
301
+ - `Card`, `CardHeader`, `CardTitle`, `CardDescription`, `CardContent`, `CardFooter`
302
+
303
+ **Props**:
304
+ - `className?`: string
305
+ - All HTML div attributes
306
+
307
+ **Used in**:
308
+ - Feature sections
309
+ - Product cards
310
+ - Content containers
311
+
312
+ ---
313
+
314
+ ### @components/Input
315
+
316
+ **Purpose**:
317
+ Form input component with consistent styling.
318
+
319
+ **Dependencies**:
320
+ - `@/lib/utils`
321
+
322
+ **Props**:
323
+ - `type?`: string
324
+ - `className?`: string
325
+ - All HTML input attributes
326
+
327
+ **Used in**:
328
+ - Forms
329
+ - Search inputs
330
+ - Data entry
331
+
332
+ ---
333
+
334
+ ### @components/Dialog
335
+
336
+ **Purpose**:
337
+ Modal dialog component with overlay and content sections.
338
+
339
+ **Dependencies**:
340
+ - `@radix-ui/react-dialog`
341
+ - `@/lib/utils`
342
+ - `lucide-react`
343
+
344
+ **Exports**:
345
+ - `Dialog`, `DialogTrigger`, `DialogContent`, `DialogHeader`, `DialogFooter`, `DialogTitle`, `DialogDescription`, `DialogClose`, `DialogOverlay`, `DialogPortal`
346
+
347
+ **Props**:
348
+ - `open?`: boolean
349
+ - `onOpenChange?`: (open: boolean) => void
350
+ - `className?`: string
351
+ - All Radix Dialog props
352
+
353
+ **Used in**:
354
+ - Modals
355
+ - Confirmations
356
+ - Forms in dialogs
357
+
358
+ ---
359
+
360
+ ### @components/Select
361
+
362
+ **Purpose**:
363
+ Dropdown select component with options and groups.
364
+
365
+ **Dependencies**:
366
+ - `@radix-ui/react-select`
367
+ - `@/lib/utils`
368
+ - `lucide-react`
369
+
370
+ **Exports**:
371
+ - `Select`, `SelectGroup`, `SelectValue`, `SelectTrigger`, `SelectContent`, `SelectLabel`, `SelectItem`, `SelectSeparator`, `SelectScrollUpButton`, `SelectScrollDownButton`
372
+
373
+ **Props**:
374
+ - `value?`: string
375
+ - `onValueChange?`: (value: string) => void
376
+ - `defaultValue?`: string
377
+ - `disabled?`: boolean
378
+ - `className?`: string
379
+ - All Radix Select props
380
+
381
+ **Used in**:
382
+ - Form selects
383
+ - Filter dropdowns
384
+ - Option selection
385
+
386
+ ---
387
+
388
+ ### @components/Accordion
389
+
390
+ **Purpose**:
391
+ Collapsible content sections with smooth animations.
392
+
393
+ **Dependencies**:
394
+ - `@radix-ui/react-accordion`
395
+ - `@/lib/utils`
396
+
397
+ **Exports**:
398
+ - `Accordion`, `AccordionItem`, `AccordionTrigger`, `AccordionContent`
399
+
400
+ **Props**:
401
+ - `type?`: 'single' | 'multiple'
402
+ - `collapsible?`: boolean
403
+ - `value?`: string | string[]
404
+ - `onValueChange?`: (value: string | string[]) => void
405
+ - `className?`: string
406
+
407
+ **Used in**:
408
+ - FAQs
409
+ - Collapsible sections
410
+ - Expandable content
411
+
412
+ ---
413
+
414
+ ### @components/Alert
415
+
416
+ **Purpose**:
417
+ Alert component for notifications and warnings.
418
+
419
+ **Dependencies**:
420
+ - `@/lib/utils`
421
+ - `lucide-react`
422
+
423
+ **Exports**:
424
+ - `Alert`, `AlertTitle`, `AlertDescription`
425
+
426
+ **Props**:
427
+ - `variant?`: 'default' | 'destructive'
428
+ - `className?`: string
429
+ - All HTML div attributes
430
+
431
+ **Used in**:
432
+ - Error messages
433
+ - Success notifications
434
+ - Warning alerts
435
+
436
+ ---
437
+
438
+ ### @components/AlertDialog
439
+
440
+ **Purpose**:
441
+ Confirmation dialog with destructive actions.
442
+
443
+ **Dependencies**:
444
+ - `@radix-ui/react-alert-dialog`
445
+ - `@/lib/utils`
446
+ - `lucide-react`
447
+
448
+ **Exports**:
449
+ - `AlertDialog`, `AlertDialogTrigger`, `AlertDialogContent`, `AlertDialogHeader`, `AlertDialogFooter`, `AlertDialogTitle`, `AlertDialogDescription`, `AlertDialogAction`, `AlertDialogCancel`
450
+
451
+ **Props**:
452
+ - `open?`: boolean
453
+ - `onOpenChange?`: (open: boolean) => void
454
+ - `className?`: string
455
+ - All Radix AlertDialog props
456
+
457
+ **Used in**:
458
+ - Delete confirmations
459
+ - Destructive actions
460
+ - Critical confirmations
461
+
462
+ ---
463
+
464
+ ### @components/Avatar
465
+
466
+ **Purpose**:
467
+ User avatar component with fallback and image support.
468
+
469
+ **Dependencies**:
470
+ - `@radix-ui/react-avatar`
471
+ - `@/lib/utils`
472
+
473
+ **Exports**:
474
+ - `Avatar`, `AvatarImage`, `AvatarFallback`
475
+
476
+ **Props**:
477
+ - `src?`: string
478
+ - `alt?`: string
479
+ - `fallback?`: ReactNode
480
+ - `className?`: string
481
+ - All Radix Avatar props
482
+
483
+ **Used in**:
484
+ - User profiles
485
+ - Comment sections
486
+ - User lists
487
+
488
+ ---
489
+
490
+ ### @components/Badge
491
+
492
+ **Purpose**:
493
+ Small status indicator with variants.
494
+
495
+ **Dependencies**:
496
+ - `@/lib/utils`
497
+
498
+ **Props**:
499
+ - `variant?`: 'default' | 'secondary' | 'destructive' | 'outline'
500
+ - `className?`: string
501
+ - All HTML span attributes
502
+
503
+ **Used in**:
504
+ - Status indicators
505
+ - Tags
506
+ - Labels
507
+
508
+ ---
509
+
510
+ ### @components/Breadcrumb
511
+
512
+ **Purpose**:
513
+ Navigation breadcrumb component.
514
+
515
+ **Dependencies**:
516
+ - `@radix-ui/react-navigation-menu`
517
+ - `@/lib/utils`
518
+ - `lucide-react`
519
+
520
+ **Exports**:
521
+ - `Breadcrumb`, `BreadcrumbList`, `BreadcrumbItem`, `BreadcrumbLink`, `BreadcrumbPage`, `BreadcrumbSeparator`
522
+
523
+ **Props**:
524
+ - `className?`: string
525
+ - All Radix NavigationMenu props
526
+
527
+ **Used in**:
528
+ - Page navigation
529
+ - Site structure
530
+ - Breadcrumb trails
531
+
532
+ ---
533
+
534
+ ### @components/Calendar
535
+
536
+ **Purpose**:
537
+ Date picker calendar component.
538
+
539
+ **Dependencies**:
540
+ - `react-day-picker`
541
+ - `@/lib/utils`
542
+ - `date-fns`
543
+
544
+ **Props**:
545
+ - `mode?`: 'single' | 'multiple' | 'range'
546
+ - `selected?`: Date | Date[] | DateRange
547
+ - `onSelect?`: (date: Date | Date[] | DateRange | undefined) => void
548
+ - `disabled?`: Date[] | ((date: Date) => boolean)
549
+ - `className?`: string
550
+
551
+ **Used in**:
552
+ - Date selection
553
+ - Date range pickers
554
+ - Event scheduling
555
+
556
+ ---
557
+
558
+ ### @components/Carousel
559
+
560
+ **Purpose**:
561
+ Image carousel with navigation and indicators.
562
+
563
+ **Dependencies**:
564
+ - `embla-carousel-react`
565
+ - `@/lib/utils`
566
+ - `lucide-react`
567
+
568
+ **Exports**:
569
+ - `Carousel`, `CarouselContent`, `CarouselItem`, `CarouselPrevious`, `CarouselNext`
570
+
571
+ **Props**:
572
+ - `opts?`: EmblaOptionsType
573
+ - `plugins?`: EmblaPluginType[]
574
+ - `orientation?`: 'horizontal' | 'vertical'
575
+ - `className?`: string
576
+
577
+ **Used in**:
578
+ - Image galleries
579
+ - Product showcases
580
+ - Content sliders
581
+
582
+ ---
583
+
584
+ ### @components/Checkbox
585
+
586
+ **Purpose**:
587
+ Checkbox input component.
588
+
589
+ **Dependencies**:
590
+ - `@radix-ui/react-checkbox`
591
+ - `@/lib/utils`
592
+ - `lucide-react`
593
+
594
+ **Exports**:
595
+ - `Checkbox`
596
+
597
+ **Props**:
598
+ - `checked?`: boolean
599
+ - `onCheckedChange?`: (checked: boolean) => void
600
+ - `disabled?`: boolean
601
+ - `className?`: string
602
+ - All Radix Checkbox props
603
+
604
+ **Used in**:
605
+ - Form checkboxes
606
+ - Settings toggles
607
+ - Multi-select lists
608
+
609
+ ---
610
+
611
+ ### @components/Collapsible
612
+
613
+ **Purpose**:
614
+ Simple collapsible content component.
615
+
616
+ **Dependencies**:
617
+ - `@radix-ui/react-collapsible`
618
+ - `@/lib/utils`
619
+
620
+ **Exports**:
621
+ - `Collapsible`, `CollapsibleTrigger`, `CollapsibleContent`
622
+
623
+ **Props**:
624
+ - `open?`: boolean
625
+ - `onOpenChange?`: (open: boolean) => void
626
+ - `className?`: string
627
+ - All Radix Collapsible props
628
+
629
+ **Used in**:
630
+ - Expandable content
631
+ - Collapsible sections
632
+ - Toggle content
633
+
634
+ ---
635
+
636
+ ### @components/Command
637
+
638
+ **Purpose**:
639
+ Command palette component with search and navigation.
640
+
641
+ **Dependencies**:
642
+ - `cmdk`
643
+ - `@/lib/utils`
644
+ - `lucide-react`
645
+
646
+ **Exports**:
647
+ - `Command`, `CommandDialog`, `CommandInput`, `CommandList`, `CommandEmpty`, `CommandGroup`, `CommandItem`, `CommandSeparator`, `CommandShortcut`
648
+
649
+ **Props**:
650
+ - `value?`: string
651
+ - `onValueChange?`: (value: string) => void
652
+ - `className?`: string
653
+ - All cmdk props
654
+
655
+ **Used in**:
656
+ - Command palettes
657
+ - Search interfaces
658
+ - Keyboard navigation
659
+
660
+ ---
661
+
662
+ ### @components/ContextMenu
663
+
664
+ **Purpose**:
665
+ Right-click context menu component.
666
+
667
+ **Dependencies**:
668
+ - `@radix-ui/react-context-menu`
669
+ - `@/lib/utils`
670
+ - `lucide-react`
671
+
672
+ **Exports**:
673
+ - `ContextMenu`, `ContextMenuTrigger`, `ContextMenuContent`, `ContextMenuItem`, `ContextMenuCheckboxItem`, `ContextMenuRadioItem`, `ContextMenuLabel`, `ContextMenuSeparator`, `ContextMenuShortcut`, `ContextMenuGroup`, `ContextMenuPortal`, `ContextMenuSub`, `ContextMenuSubContent`, `ContextMenuSubTrigger`, `ContextMenuRadioGroup`
674
+
675
+ **Props**:
676
+ - `className?`: string
677
+ - All Radix ContextMenu props
678
+
679
+ **Used in**:
680
+ - Right-click menus
681
+ - Context actions
682
+ - Quick actions
683
+
684
+ ---
685
+
686
+ ### @components/DropdownMenu
687
+
688
+ **Purpose**:
689
+ Dropdown menu component with items and submenus.
690
+
691
+ **Dependencies**:
692
+ - `@radix-ui/react-dropdown-menu`
693
+ - `@/lib/utils`
694
+ - `lucide-react`
695
+
696
+ **Exports**:
697
+ - `DropdownMenu`, `DropdownMenuTrigger`, `DropdownMenuContent`, `DropdownMenuItem`, `DropdownMenuCheckboxItem`, `DropdownMenuRadioItem`, `DropdownMenuLabel`, `DropdownMenuSeparator`, `DropdownMenuShortcut`, `DropdownMenuGroup`, `DropdownMenuPortal`, `DropdownMenuSub`, `DropdownMenuSubContent`, `DropdownMenuSubTrigger`, `DropdownMenuRadioGroup`
698
+
699
+ **Props**:
700
+ - `open?`: boolean
701
+ - `onOpenChange?`: (open: boolean) => void
702
+ - `className?`: string
703
+ - All Radix DropdownMenu props
704
+
705
+ **Used in**:
706
+ - User menus
707
+ - Action dropdowns
708
+ - Settings menus
709
+
710
+ ---
711
+
712
+ ### @components/Drawer
713
+
714
+ **Purpose**:
715
+ Slide-out drawer component for mobile navigation.
716
+
717
+ **Dependencies**:
718
+ - `vaul`
719
+ - `@/lib/utils`
720
+ - `lucide-react`
721
+
722
+ **Exports**:
723
+ - `Drawer`, `DrawerTrigger`, `DrawerClose`, `DrawerContent`, `DrawerDescription`, `DrawerFooter`, `DrawerHeader`, `DrawerTitle`
724
+
725
+ **Props**:
726
+ - `open?`: boolean
727
+ - `onOpenChange?`: (open: boolean) => void
728
+ - `shouldScaleBackground?`: boolean
729
+ - `className?`: string
730
+ - All vaul props
731
+
732
+ **Used in**:
733
+ - Mobile navigation
734
+ - Slide-out panels
735
+ - Mobile menus
736
+
737
+ ---
738
+
739
+ ### @components/Form
740
+
741
+ **Purpose**:
742
+ Form component with validation and field management.
743
+
744
+ **Dependencies**:
745
+ - `react-hook-form`
746
+ - `@hookform/resolvers`
747
+ - `zod`
748
+ - `@/lib/utils`
749
+
750
+ **Exports**:
751
+ - `Form`, `FormField`, `FormItem`, `FormLabel`, `FormControl`, `FormDescription`, `FormMessage`, `useFormField`
752
+
753
+ **Props**:
754
+ - `form`: UseFormReturn
755
+ - `className?`: string
756
+ - All react-hook-form props
757
+
758
+ **Used in**:
759
+ - Form validation
760
+ - Data entry forms
761
+ - User input handling
762
+
763
+ ---
764
+
765
+ ### @components/HoverCard
766
+
767
+ **Purpose**:
768
+ Hover card component for additional information.
769
+
770
+ **Dependencies**:
771
+ - `@radix-ui/react-hover-card`
772
+ - `@/lib/utils`
773
+
774
+ **Exports**:
775
+ - `HoverCard`, `HoverCardTrigger`, `HoverCardContent`
776
+
777
+ **Props**:
778
+ - `openDelay?`: number
779
+ - `closeDelay?`: number
780
+ - `className?`: string
781
+ - All Radix HoverCard props
782
+
783
+ **Used in**:
784
+ - Tooltips
785
+ - User previews
786
+ - Additional info
787
+
788
+ ---
789
+
790
+ ### @components/InputOTP
791
+
792
+ **Purpose**:
793
+ One-time password input component.
794
+
795
+ **Dependencies**:
796
+ - `input-otp`
797
+ - `@/lib/utils`
798
+
799
+ **Exports**:
800
+ - `InputOTP`, `InputOTPGroup`, `InputOTPSlot`, `InputOTPSeparator`
801
+
802
+ **Props**:
803
+ - `value?`: string
804
+ - `onChange?`: (value: string) => void
805
+ - `maxLength?`: number
806
+ - `pattern?`: RegExp
807
+ - `className?`: string
808
+
809
+ **Used in**:
810
+ - 2FA codes
811
+ - Verification codes
812
+ - PIN inputs
813
+
814
+ ---
815
+
816
+ ### @components/Label
817
+
818
+ **Purpose**:
819
+ Form label component with accessibility.
820
+
821
+ **Dependencies**:
822
+ - `@radix-ui/react-label`
823
+ - `@/lib/utils`
824
+
825
+ **Props**:
826
+ - `htmlFor?`: string
827
+ - `className?`: string
828
+ - All Radix Label props
829
+
830
+ **Used in**:
831
+ - Form labels
832
+ - Input associations
833
+ - Accessibility
834
+
835
+ ---
836
+
837
+ ### @components/Menubar
838
+
839
+ **Purpose**:
840
+ Application menubar component.
841
+
842
+ **Dependencies**:
843
+ - `@radix-ui/react-menubar`
844
+ - `@/lib/utils`
845
+ - `lucide-react`
846
+
847
+ **Exports**:
848
+ - `Menubar`, `MenubarTrigger`, `MenubarContent`, `MenubarItem`, `MenubarCheckboxItem`, `MenubarRadioItem`, `MenubarLabel`, `MenubarSeparator`, `MenubarShortcut`, `MenubarGroup`, `MenubarPortal`, `MenubarSub`, `MenubarSubContent`, `MenubarSubTrigger`, `MenubarRadioGroup`
849
+
850
+ **Props**:
851
+ - `className?`: string
852
+ - All Radix Menubar props
853
+
854
+ **Used in**:
855
+ - Application menus
856
+ - Desktop navigation
857
+ - Menu systems
858
+
859
+ ---
860
+
861
+ ### @components/NavigationMenu
862
+
863
+ **Purpose**:
864
+ Navigation menu component with dropdowns.
865
+
866
+ **Dependencies**:
867
+ - `@radix-ui/react-navigation-menu`
868
+ - `@/lib/utils`
869
+ - `lucide-react`
870
+
871
+ **Exports**:
872
+ - `NavigationMenu`, `NavigationMenuList`, `NavigationMenuItem`, `NavigationMenuContent`, `NavigationMenuTrigger`, `NavigationMenuLink`, `NavigationMenuIndicator`, `NavigationMenuViewport`
873
+
874
+ **Props**:
875
+ - `value?`: string
876
+ - `onValueChange?`: (value: string) => void
877
+ - `orientation?`: 'horizontal' | 'vertical'
878
+ - `className?`: string
879
+ - All Radix NavigationMenu props
880
+
881
+ **Used in**:
882
+ - Main navigation
883
+ - Site menus
884
+ - Navigation systems
885
+
886
+ ---
887
+
888
+ ### @components/Pagination
889
+
890
+ **Purpose**:
891
+ Pagination component for data lists.
892
+
893
+ **Dependencies**:
894
+ - `@/lib/utils`
895
+ - `lucide-react`
896
+
897
+ **Exports**:
898
+ - `Pagination`, `PaginationContent`, `PaginationEllipsis`, `PaginationItem`, `PaginationLink`, `PaginationNext`, `PaginationPrevious`
899
+
900
+ **Props**:
901
+ - `pageCount`: number
902
+ - `currentPage?`: number
903
+ - `onPageChange?`: (page: number) => void
904
+ - `className?`: string
905
+
906
+ **Used in**:
907
+ - Data tables
908
+ - Search results
909
+ - Content pagination
910
+
911
+ ---
912
+
913
+ ### @components/Popover
914
+
915
+ **Purpose**:
916
+ Popover component for floating content.
917
+
918
+ **Dependencies**:
919
+ - `@radix-ui/react-popover`
920
+ - `@/lib/utils`
921
+
922
+ **Exports**:
923
+ - `Popover`, `PopoverTrigger`, `PopoverContent`
924
+
925
+ **Props**:
926
+ - `open?`: boolean
927
+ - `onOpenChange?`: (open: boolean) => void
928
+ - `className?`: string
929
+ - All Radix Popover props
930
+
931
+ **Used in**:
932
+ - Floating content
933
+ - Information overlays
934
+ - Quick actions
935
+
936
+ ---
937
+
938
+ ### @components/Progress
939
+
940
+ **Purpose**:
941
+ Progress bar component.
942
+
943
+ **Dependencies**:
944
+ - `@radix-ui/react-progress`
945
+ - `@/lib/utils`
946
+
947
+ **Props**:
948
+ - `value?`: number
949
+ - `max?`: number
950
+ - `className?`: string
951
+ - All Radix Progress props
952
+
953
+ **Used in**:
954
+ - Loading indicators
955
+ - Progress tracking
956
+ - Status bars
957
+
958
+ ---
959
+
960
+ ### @components/RadioGroup
961
+
962
+ **Purpose**:
963
+ Radio button group component.
964
+
965
+ **Dependencies**:
966
+ - `@radix-ui/react-radio-group`
967
+ - `@/lib/utils`
968
+
969
+ **Exports**:
970
+ - `RadioGroup`, `RadioGroupItem`
971
+
972
+ **Props**:
973
+ - `value?`: string
974
+ - `onValueChange?`: (value: string) => void
975
+ - `disabled?`: boolean
976
+ - `className?`: string
977
+ - All Radix RadioGroup props
978
+
979
+ **Used in**:
980
+ - Form selections
981
+ - Option groups
982
+ - Single choice inputs
983
+
984
+ ---
985
+
986
+ ### @components/Resizable
987
+
988
+ **Purpose**:
989
+ Resizable panel component.
990
+
991
+ **Dependencies**:
992
+ - `react-resizable-panels`
993
+ - `@/lib/utils`
994
+ - `lucide-react`
995
+
996
+ **Exports**:
997
+ - `ResizablePanelGroup`, `ResizablePanel`, `ResizableHandle`
998
+
999
+ **Props**:
1000
+ - `defaultSize?`: number
1001
+ - `minSize?`: number
1002
+ - `maxSize?`: number
1003
+ - `collapsible?`: boolean
1004
+ - `collapsedSize?`: number
1005
+ - `className?`: string
1006
+
1007
+ **Used in**:
1008
+ - Split views
1009
+ - Resizable layouts
1010
+ - Panel systems
1011
+
1012
+ ---
1013
+
1014
+ ### @components/ScrollArea
1015
+
1016
+ **Purpose**:
1017
+ Custom scrollable area component.
1018
+
1019
+ **Dependencies**:
1020
+ - `@radix-ui/react-scroll-area`
1021
+ - `@/lib/utils`
1022
+
1023
+ **Props**:
1024
+ - `type?`: 'auto' | 'always' | 'scroll' | 'hover'
1025
+ - `scrollHideDelay?`: number
1026
+ - `className?`: string
1027
+ - All Radix ScrollArea props
1028
+
1029
+ **Used in**:
1030
+ - Custom scrollbars
1031
+ - Scrollable content
1032
+ - Overflow handling
1033
+
1034
+ ---
1035
+
1036
+ ### @components/Section
1037
+
1038
+ **Purpose**:
1039
+ Page section component with consistent spacing.
1040
+
1041
+ **Dependencies**:
1042
+ - `@/lib/utils`
1043
+
1044
+ **Props**:
1045
+ - `className?`: string
1046
+ - `children?`: ReactNode
1047
+ - All HTML section attributes
1048
+
1049
+ **Used in**:
1050
+ - Page sections
1051
+ - Content blocks
1052
+ - Layout structure
1053
+
1054
+ ---
1055
+
1056
+ ### @components/Sheet
1057
+
1058
+ **Purpose**:
1059
+ Slide-out sheet component.
1060
+
1061
+ **Dependencies**:
1062
+ - `@radix-ui/react-dialog`
1063
+ - `@/lib/utils`
1064
+ - `lucide-react`
1065
+
1066
+ **Exports**:
1067
+ - `Sheet`, `SheetTrigger`, `SheetClose`, `SheetContent`, `SheetDescription`, `SheetFooter`, `SheetHeader`, `SheetTitle`
1068
+
1069
+ **Props**:
1070
+ - `open?`: boolean
1071
+ - `onOpenChange?`: (open: boolean) => void
1072
+ - `side?`: 'top' | 'right' | 'bottom' | 'left'
1073
+ - `className?`: string
1074
+ - All Radix Dialog props
1075
+
1076
+ **Used in**:
1077
+ - Mobile menus
1078
+ - Slide-out panels
1079
+ - Side navigation
1080
+
1081
+ ---
1082
+
1083
+ ### @components/Sidebar
1084
+
1085
+ **Purpose**:
1086
+ Sidebar navigation component.
1087
+
1088
+ **Dependencies**:
1089
+ - `@/lib/utils`
1090
+ - `lucide-react`
1091
+
1092
+ **Exports**:
1093
+ - `Sidebar`, `SidebarHeader`, `SidebarContent`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarGroupSeparator`, `SidebarMenu`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuLabel`, `SidebarMenuSeparator`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubContent`, `SidebarMenuSubLabel`, `SidebarMenuSubSeparator`, `SidebarMenuSubTrigger`
1094
+
1095
+ **Props**:
1096
+ - `collapsed?`: boolean
1097
+ - `collapsible?`: boolean
1098
+ - `className?`: string
1099
+
1100
+ **Used in**:
1101
+ - Application navigation
1102
+ - Side navigation
1103
+ - Collapsible menus
1104
+
1105
+ ---
1106
+
1107
+ ### @components/Skeleton
1108
+
1109
+ **Purpose**:
1110
+ Loading skeleton component.
1111
+
1112
+ **Dependencies**:
1113
+ - `@/lib/utils`
1114
+
1115
+ **Props**:
1116
+ - `className?`: string
1117
+ - All HTML div attributes
1118
+
1119
+ **Used in**:
1120
+ - Loading states
1121
+ - Content placeholders
1122
+ - Loading indicators
1123
+
1124
+ ---
1125
+
1126
+ ### @components/Slider
1127
+
1128
+ **Purpose**:
1129
+ Range slider component.
1130
+
1131
+ **Dependencies**:
1132
+ - `@radix-ui/react-slider`
1133
+ - `@/lib/utils`
1134
+
1135
+ **Props**:
1136
+ - `value?`: number[]
1137
+ - `onValueChange?`: (value: number[]) => void
1138
+ - `min?`: number
1139
+ - `max?`: number
1140
+ - `step?`: number
1141
+ - `disabled?`: boolean
1142
+ - `className?`: string
1143
+ - All Radix Slider props
1144
+
1145
+ **Used in**:
1146
+ - Range selection
1147
+ - Volume controls
1148
+ - Price filters
1149
+
1150
+ ---
1151
+
1152
+ ### @components/Sonner
1153
+
1154
+ **Purpose**:
1155
+ Toast notification component.
1156
+
1157
+ **Dependencies**:
1158
+ - `sonner`
1159
+
1160
+ **Props**:
1161
+ - `position?`: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'top-center' | 'bottom-center'
1162
+ - `toastOptions?`: ToastOptions
1163
+ - `className?`: string
1164
+
1165
+ **Used in**:
1166
+ - Notifications
1167
+ - Toast messages
1168
+ - User feedback
1169
+
1170
+ ---
1171
+
1172
+ ### @components/Switch
1173
+
1174
+ **Purpose**:
1175
+ Toggle switch component.
1176
+
1177
+ **Dependencies**:
1178
+ - `@radix-ui/react-switch`
1179
+ - `@/lib/utils`
1180
+
1181
+ **Props**:
1182
+ - `checked?`: boolean
1183
+ - `onCheckedChange?`: (checked: boolean) => void
1184
+ - `disabled?`: boolean
1185
+ - `className?`: string
1186
+ - All Radix Switch props
1187
+
1188
+ **Used in**:
1189
+ - Toggle switches
1190
+ - Settings
1191
+ - Boolean inputs
1192
+
1193
+ ---
1194
+
1195
+ ### @components/Table
1196
+
1197
+ **Purpose**:
1198
+ Data table component.
1199
+
1200
+ **Dependencies**:
1201
+ - `@/lib/utils`
1202
+
1203
+ **Exports**:
1204
+ - `Table`, `TableHeader`, `TableBody`, `TableFooter`, `TableHead`, `TableRow`, `TableCell`, `TableCaption`
1205
+
1206
+ **Props**:
1207
+ - `className?`: string
1208
+ - All HTML table attributes
1209
+
1210
+ **Used in**:
1211
+ - Data tables
1212
+ - Lists
1213
+ - Information display
1214
+
1215
+ ---
1216
+
1217
+ ### @components/Tabs
1218
+
1219
+ **Purpose**:
1220
+ Tab navigation component.
1221
+
1222
+ **Dependencies**:
1223
+ - `@radix-ui/react-tabs`
1224
+ - `@/lib/utils`
1225
+
1226
+ **Exports**:
1227
+ - `Tabs`, `TabsList`, `TabsTrigger`, `TabsContent`
1228
+
1229
+ **Props**:
1230
+ - `value?`: string
1231
+ - `onValueChange?`: (value: string) => void
1232
+ - `defaultValue?`: string
1233
+ - `orientation?`: 'horizontal' | 'vertical'
1234
+ - `className?`: string
1235
+ - All Radix Tabs props
1236
+
1237
+ **Used in**:
1238
+ - Tab navigation
1239
+ - Content organization
1240
+ - Multi-panel interfaces
1241
+
1242
+ ---
1243
+
1244
+ ### @components/Textarea
1245
+
1246
+ **Purpose**:
1247
+ Multi-line text input component.
1248
+
1249
+ **Dependencies**:
1250
+ - `@/lib/utils`
1251
+
1252
+ **Props**:
1253
+ - `className?`: string
1254
+ - All HTML textarea attributes
1255
+
1256
+ **Used in**:
1257
+ - Long text input
1258
+ - Comments
1259
+ - Descriptions
1260
+
1261
+ ---
1262
+
1263
+ ### @components/Toast
1264
+
1265
+ **Purpose**:
1266
+ Toast notification component.
1267
+
1268
+ **Dependencies**:
1269
+ - `@radix-ui/react-toast`
1270
+ - `@/lib/utils`
1271
+ - `lucide-react`
1272
+
1273
+ **Exports**:
1274
+ - `Toast`, `ToastAction`, `ToastClose`, `ToastDescription`, `ToastProvider`, `ToastTitle`, `ToastViewport`
1275
+
1276
+ **Props**:
1277
+ - `variant?`: 'default' | 'destructive'
1278
+ - `className?`: string
1279
+ - All Radix Toast props
1280
+
1281
+ **Used in**:
1282
+ - Notifications
1283
+ - User feedback
1284
+ - Status messages
1285
+
1286
+ ---
1287
+
1288
+ ### @components/Toaster
1289
+
1290
+ **Purpose**:
1291
+ Toast container component.
1292
+
1293
+ **Dependencies**:
1294
+ - `@/components/toast`
1295
+
1296
+ **Props**:
1297
+ - `className?`: string
1298
+
1299
+ **Used in**:
1300
+ - Toast management
1301
+ - Notification system
1302
+ - User feedback
1303
+
1304
+ ---
1305
+
1306
+ ### @components/Toggle
1307
+
1308
+ **Purpose**:
1309
+ Toggle button component.
1310
+
1311
+ **Dependencies**:
1312
+ - `@radix-ui/react-toggle`
1313
+ - `@/lib/utils`
1314
+
1315
+ **Props**:
1316
+ - `pressed?`: boolean
1317
+ - `onPressedChange?`: (pressed: boolean) => void
1318
+ - `disabled?`: boolean
1319
+ - `className?`: string
1320
+ - All Radix Toggle props
1321
+
1322
+ **Used in**:
1323
+ - Toggle buttons
1324
+ - State toggles
1325
+ - Action buttons
1326
+
1327
+ ---
1328
+
1329
+ ### @components/ToggleGroup
1330
+
1331
+ **Purpose**:
1332
+ Toggle button group component.
1333
+
1334
+ **Dependencies**:
1335
+ - `@radix-ui/react-toggle-group`
1336
+ - `@/lib/utils`
1337
+
1338
+ **Props**:
1339
+ - `type?`: 'single' | 'multiple'
1340
+ - `value?`: string | string[]
1341
+ - `onValueChange?`: (value: string | string[]) => void
1342
+ - `disabled?`: boolean
1343
+ - `className?`: string
1344
+ - All Radix ToggleGroup props
1345
+
1346
+ **Used in**:
1347
+ - Filter groups
1348
+ - Option groups
1349
+ - Multi-select toggles
1350
+
1351
+ ---
1352
+
1353
+ ### @components/Tooltip
1354
+
1355
+ **Purpose**:
1356
+ Tooltip component for additional information.
1357
+
1358
+ **Dependencies**:
1359
+ - `@radix-ui/react-tooltip`
1360
+ - `@/lib/utils`
1361
+
1362
+ **Exports**:
1363
+ - `Tooltip`, `TooltipTrigger`, `TooltipContent`, `TooltipProvider`
1364
+
1365
+ **Props**:
1366
+ - `delayDuration?`: number
1367
+ - `skipDelayDuration?`: number
1368
+ - `className?`: string
1369
+ - All Radix Tooltip props
1370
+
1371
+ **Used in**:
1372
+ - Help text
1373
+ - Additional info
1374
+ - Hover explanations
1375
+
1376
+ ---
1377
+
1378
+ ### @components/AspectRatio
1379
+
1380
+ **Purpose**:
1381
+ Aspect ratio container component.
1382
+
1383
+ **Dependencies**:
1384
+ - `@radix-ui/react-aspect-ratio`
1385
+
1386
+ **Props**:
1387
+ - `ratio?`: number
1388
+ - `className?`: string
1389
+ - All Radix AspectRatio props
1390
+
1391
+ **Used in**:
1392
+ - Image containers
1393
+ - Video containers
1394
+ - Responsive media
1395
+
1396
+ ---
1397
+
1398
+ ### @components/Chart
1399
+
1400
+ **Purpose**:
1401
+ Chart component for data visualization.
1402
+
1403
+ **Dependencies**:
1404
+ - `recharts`
1405
+ - `@/lib/utils`
1406
+
1407
+ **Props**:
1408
+ - `data`: any[]
1409
+ - `type?`: 'line' | 'bar' | 'area' | 'pie'
1410
+ - `width?`: number
1411
+ - `height?`: number
1412
+ - `className?`: string
1413
+
1414
+ **Used in**:
1415
+ - Data visualization
1416
+ - Analytics
1417
+ - Charts and graphs
1418
+
1419
+ ---
1420
+
1421
+ ## ๐Ÿงพ APIs (ReadMe.LLM Format)
1422
+
1423
+ ````markdown
1424
+ %%README.LLM id=useToast%%
1425
+
1426
+ ## ๐Ÿงญ Library Description
1427
+
1428
+ Toast notification system with state management, auto-dismiss, and queue management.
1429
+
1430
+ ## โœ… Rules
1431
+
1432
+ - Always use `useToast` hook for toast management.
1433
+ - Toast limit is 1 concurrent toast.
1434
+ - Auto-dismiss after 1000000ms (configurable).
1435
+ - Use `toast()` function for direct toast creation.
1436
+
1437
+ ## ๐Ÿงช Functions
1438
+
1439
+ ### useToast(): ToastState
1440
+
1441
+ **Returns toast state and management functions.**
1442
+
1443
+ ```ts
1444
+ const { toasts, toast, dismiss } = useToast();
1445
+ ```
1446
+
1447
+ ### toast(props: ToastProps): ToastController
1448
+
1449
+ **Creates a new toast notification.**
1450
+
1451
+ ```ts
1452
+ const controller = toast({
1453
+ title: "Success",
1454
+ description: "Operation completed",
1455
+ variant: "default"
1456
+ });
1457
+ ```
1458
+
1459
+ ### dismiss(toastId?: string): void
1460
+
1461
+ **Dismisses specific toast or all toasts.**
1462
+
1463
+ ```ts
1464
+ dismiss(); // Dismiss all
1465
+ dismiss("toast-id"); // Dismiss specific
1466
+ ```
1467
+
1468
+ %%END%%
1469
+ ````
1470
+
1471
+ ````markdown
1472
+ %%README.LLM id=useAuthDialog%%
1473
+
1474
+ ## ๐Ÿงญ Library Description
1475
+
1476
+ Authentication dialog management with event-driven architecture and callback support.
1477
+
1478
+ ## โœ… Rules
1479
+
1480
+ - Always use `requireAuth` for protected content.
1481
+ - Set up event listeners for auth success/failure.
1482
+ - Clean up listeners automatically.
1483
+ - Use `showAuthDialog` for manual dialog display.
1484
+
1485
+ ## ๐Ÿงช Functions
1486
+
1487
+ ### useAuthDialog(): AuthDialogState
1488
+
1489
+ **Returns authentication dialog management functions.**
1490
+
1491
+ ```ts
1492
+ const { isAuthenticated, showAuthDialog, requireAuth } = useAuthDialog();
1493
+ ```
1494
+
1495
+ ### requireAuth(message?, onSuccess?, onFailure?): boolean
1496
+
1497
+ **Requires authentication with optional callbacks.**
1498
+
1499
+ ```ts
1500
+ const isAuth = requireAuth(
1501
+ "Please sign in",
1502
+ () => console.log("Success"),
1503
+ () => console.log("Failed")
1504
+ );
1505
+ ```
1506
+
1507
+ ### showAuthDialog(message?: string): void
1508
+
1509
+ **Shows authentication dialog with custom message.**
1510
+
1511
+ ```ts
1512
+ showAuthDialog("Please sign in to continue");
1513
+ ```
1514
+
1515
+ %%END%%
1516
+ ````
1517
+
1518
+ ````markdown
1519
+ %%README.LLM id=useCountdown%%
1520
+
1521
+ ## ๐Ÿงญ Library Description
1522
+
1523
+ Real-time countdown timer with moment.js integration and UTC support.
1524
+
1525
+ ## โœ… Rules
1526
+
1527
+ - Always pass UTC date string.
1528
+ - Updates every second automatically.
1529
+ - Returns structured countdown object.
1530
+ - Handles expired state automatically.
1531
+
1532
+ ## ๐Ÿงช Functions
1533
+
1534
+ ### useCountdown(targetDate: string | null): CountdownState
1535
+
1536
+ **Returns countdown state with time units.**
1537
+
1538
+ ```ts
1539
+ const countdown = useCountdown("2024-12-31T23:59:59Z");
1540
+ // Returns: { days, hours, minutes, seconds, isExpired, totalSeconds }
1541
+ ```
1542
+
1543
+ %%END%%
1544
+ ````
1545
+
1546
+ ````markdown
1547
+ %%README.LLM id=useDebouncedCallback%%
1548
+
1549
+ ## ๐Ÿงญ Library Description
1550
+
1551
+ Debounced function execution to optimize performance and reduce API calls.
1552
+
1553
+ ## โœ… Rules
1554
+
1555
+ - Always provide delay in milliseconds.
1556
+ - Function includes cancel method.
1557
+ - Automatically cleans up on unmount.
1558
+ - Preserves function reference stability.
1559
+
1560
+ ## ๐Ÿงช Functions
1561
+
1562
+ ### useDebouncedCallback<T>(callback: T, delay: number): DebouncedFunction<T>
1563
+
1564
+ **Returns debounced version of callback function.**
1565
+
1566
+ ```ts
1567
+ const debouncedSearch = useDebouncedCallback(
1568
+ (query: string) => searchAPI(query),
1569
+ 300
1570
+ );
1571
+ ```
1572
+
1573
+ ### cancel(): void
1574
+
1575
+ **Cancels pending debounced execution.**
1576
+
1577
+ ```ts
1578
+ debouncedSearch.cancel();
1579
+ ```
1580
+
1581
+ %%END%%
1582
+ ````
1583
+
1584
+ ````markdown
1585
+ %%README.LLM id=useLocalStorage%%
1586
+
1587
+ ## ๐Ÿงญ Library Description
1588
+
1589
+ Enhanced localStorage management with error handling, quota management, and data size limits.
1590
+
1591
+ ## โœ… Rules
1592
+
1593
+ - Always provide initial value.
1594
+ - Data size limited to 1MB per item.
1595
+ - Automatic cleanup of old data.
1596
+ - Graceful fallback on quota errors.
1597
+
1598
+ ## ๐Ÿงช Functions
1599
+
1600
+ ### useLocalStorage<T>(key: string, initialValue: T): [T, Setter, Remover]
1601
+
1602
+ **Returns localStorage value with setter and remover.**
1603
+
1604
+ ```ts
1605
+ const [value, setValue, removeValue] = useLocalStorage("key", "default");
1606
+ ```
1607
+
1608
+ ### setValue(value: T | (val: T) => T): void
1609
+
1610
+ **Sets localStorage value with error handling.**
1611
+
1612
+ ```ts
1613
+ setValue("new value");
1614
+ setValue(prev => prev + " updated");
1615
+ ```
1616
+
1617
+ ### removeValue(): void
1618
+
1619
+ **Removes localStorage value and resets to initial.**
1620
+
1621
+ ```ts
1622
+ removeValue();
1623
+ ```
1624
+
1625
+ %%END%%
1626
+ ````
1627
+
1628
+ ````markdown
1629
+ %%README.LLM id=useSessionStorage%%
1630
+
1631
+ ## ๐Ÿงญ Library Description
1632
+
1633
+ Enhanced sessionStorage management with error handling, quota management, and data size limits.
1634
+
1635
+ ## โœ… Rules
1636
+
1637
+ - Always provide initial value.
1638
+ - Data size limited to 1MB per item.
1639
+ - Automatic cleanup of old data.
1640
+ - Graceful fallback on quota errors.
1641
+
1642
+ ## ๐Ÿงช Functions
1643
+
1644
+ ### useSessionStorage<T>(key: string, initialValue: T): [T, Setter, Remover]
1645
+
1646
+ **Returns sessionStorage value with setter and remover.**
1647
+
1648
+ ```ts
1649
+ const [value, setValue, removeValue] = useSessionStorage("key", "default");
1650
+ ```
1651
+
1652
+ ### setValue(value: T | (val: T) => T): void
1653
+
1654
+ **Sets sessionStorage value with error handling.**
1655
+
1656
+ ```ts
1657
+ setValue("new value");
1658
+ setValue(prev => prev + " updated");
1659
+ ```
1660
+
1661
+ ### removeValue(): void
1662
+
1663
+ **Removes sessionStorage value and resets to initial.**
1664
+
1665
+ ```ts
1666
+ removeValue();
1667
+ ```
1668
+
1669
+ %%END%%
1670
+ ````
1671
+
1672
+ ````markdown
1673
+ %%README.LLM id=useMobile%%
1674
+
1675
+ ## ๐Ÿงญ Library Description
1676
+
1677
+ Responsive design hook for mobile detection using matchMedia API.
1678
+
1679
+ ## โœ… Rules
1680
+
1681
+ - Uses 768px breakpoint for mobile detection.
1682
+ - Updates automatically on window resize.
1683
+ - Returns boolean for mobile state.
1684
+ - Handles SSR gracefully.
1685
+
1686
+ ## ๐Ÿงช Functions
1687
+
1688
+ ### useIsMobile(): boolean
1689
+
1690
+ **Returns true if screen width is below 768px.**
1691
+
1692
+ ```ts
1693
+ const isMobile = useIsMobile();
1694
+ ```
1695
+
1696
+ %%END%%
1697
+ ````
1698
+
1699
+ ````markdown
1700
+ %%README.LLM id=useDebugTools%%
1701
+
1702
+ ## ๐Ÿงญ Library Description
1703
+
1704
+ React DevTools integration for debugging component state and values.
1705
+
1706
+ ## โœ… Rules
1707
+
1708
+ - Only use in development mode.
1709
+ - Accepts objects, arrays, or primitives.
1710
+ - Provides formatted debug labels.
1711
+ - Handles circular references gracefully.
1712
+
1713
+ ## ๐Ÿงช Functions
1714
+
1715
+ ### useDebugTools(values: DebugValue, prefix?: string): void
1716
+
1717
+ **Registers values for React DevTools debugging.**
1718
+
1719
+ ```ts
1720
+ useDebugTools({ count, name }, "UserState");
1721
+ ```
1722
+
1723
+ %%END%%
1724
+ ````
1725
+
1726
+ ````markdown
1727
+ %%README.LLM id=Hero%%
1728
+
1729
+ ## ๐Ÿงญ Library Description
1730
+
1731
+ Landing page hero section with customizable actions, backgrounds, and animations.
1732
+
1733
+ ## โœ… Rules
1734
+
1735
+ - Always provide title prop.
1736
+ - Use semantic HTML structure.
1737
+ - Supports multiple background types.
1738
+ - Includes built-in animations.
1739
+
1740
+ ## ๐Ÿงช Props
1741
+
1742
+ ### title: string (required)
1743
+
1744
+ **Main hero heading text.**
1745
+
1746
+ ```tsx
1747
+ <Hero title="Welcome to Our Platform" />
1748
+ ```
1749
+
1750
+ ### subtitle?: string
1751
+
1752
+ **Optional subtitle text.**
1753
+
1754
+ ```tsx
1755
+ <Hero title="Main Title" subtitle="Supporting text" />
1756
+ ```
1757
+
1758
+ ### description?: string
1759
+
1760
+ **Optional description paragraph.**
1761
+
1762
+ ```tsx
1763
+ <Hero
1764
+ title="Title"
1765
+ description="Detailed explanation of the value proposition"
1766
+ />
1767
+ ```
1768
+
1769
+ ### primaryAction?: ActionConfig
1770
+
1771
+ **Primary call-to-action button.**
1772
+
1773
+ ```tsx
1774
+ <Hero
1775
+ title="Title"
1776
+ primaryAction={{
1777
+ label: "Get Started",
1778
+ href: "/signup",
1779
+ variant: "default"
1780
+ }}
1781
+ />
1782
+ ```
1783
+
1784
+ ### secondaryAction?: ActionConfig
1785
+
1786
+ **Secondary call-to-action button.**
1787
+
1788
+ ```tsx
1789
+ <Hero
1790
+ title="Title"
1791
+ secondaryAction={{
1792
+ label: "Learn More",
1793
+ href: "/docs",
1794
+ variant: "outline"
1795
+ }}
1796
+ />
1797
+ ```
1798
+
1799
+ ### background?: 'gradient' | 'solid' | 'image' | 'dark'
1800
+
1801
+ **Background style variant.**
1802
+
1803
+ ```tsx
1804
+ <Hero title="Title" background="gradient" />
1805
+ ```
1806
+
1807
+ %%END%%
1808
+ ````
1809
+
1810
+ ````markdown
1811
+ %%README.LLM id=FeatureSection%%
1812
+
1813
+ ## ๐Ÿงญ Library Description
1814
+
1815
+ Feature showcase section with grid layout, card-based presentation, and customizable columns.
1816
+
1817
+ ## โœ… Rules
1818
+
1819
+ - Always provide title and features array.
1820
+ - Features array cannot be empty.
1821
+ - Supports 1-4 column layouts.
1822
+ - Includes hover animations.
1823
+
1824
+ ## ๐Ÿงช Props
1825
+
1826
+ ### title: string (required)
1827
+
1828
+ **Section heading text.**
1829
+
1830
+ ```tsx
1831
+ <FeatureSection title="Our Features" features={[]} />
1832
+ ```
1833
+
1834
+ ### subtitle?: string
1835
+
1836
+ **Optional section subtitle.**
1837
+
1838
+ ```tsx
1839
+ <FeatureSection
1840
+ title="Features"
1841
+ subtitle="Discover what makes us special"
1842
+ features={[]}
1843
+ />
1844
+ ```
1845
+
1846
+ ### features: Feature[] (required)
1847
+
1848
+ **Array of feature objects.**
1849
+
1850
+ ```tsx
1851
+ <FeatureSection
1852
+ title="Features"
1853
+ features={[
1854
+ {
1855
+ icon: <Icon />,
1856
+ title: "Feature Name",
1857
+ description: "Feature description",
1858
+ gradient: "bg-gradient-to-r from-blue-500 to-purple-500"
1859
+ }
1860
+ ]}
1861
+ />
1862
+ ```
1863
+
1864
+ ### columns?: 1 | 2 | 3 | 4
1865
+
1866
+ **Number of columns in grid layout.**
1867
+
1868
+ ```tsx
1869
+ <FeatureSection title="Features" features={[]} columns={2} />
1870
+ ```
1871
+
1872
+ ### background?: 'dark' | 'card' | 'gradient'
1873
+
1874
+ **Background style variant.**
1875
+
1876
+ ```tsx
1877
+ <FeatureSection title="Features" features={[]} background="gradient" />
1878
+ ```
1879
+
1880
+ %%END%%
1881
+ ````
1882
+
1883
+ ````markdown
1884
+ %%README.LLM id=Button%%
1885
+
1886
+ ## ๐Ÿงญ Library Description
1887
+
1888
+ Versatile button component with multiple variants, sizes, and link support.
1889
+
1890
+ ## โœ… Rules
1891
+
1892
+ - Use semantic variants for different purposes.
1893
+ - Support both button and link modes.
1894
+ - Include proper accessibility attributes.
1895
+ - Handle loading states gracefully.
1896
+
1897
+ ## ๐Ÿงช Props
1898
+
1899
+ ### variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link'
1900
+
1901
+ **Button style variant.**
1902
+
1903
+ ```tsx
1904
+ <Button variant="destructive">Delete</Button>
1905
+ ```
1906
+
1907
+ ### size?: 'default' | 'sm' | 'lg' | 'icon'
1908
+
1909
+ **Button size variant.**
1910
+
1911
+ ```tsx
1912
+ <Button size="lg">Large Button</Button>
1913
+ ```
1914
+
1915
+ ### asChild?: boolean
1916
+
1917
+ **Render as child component (for links).**
1918
+
1919
+ ```tsx
1920
+ <Button asChild>
1921
+ <Link href="/page">Link Button</Link>
1922
+ </Button>
1923
+ ```
1924
+
1925
+ ### disabled?: boolean
1926
+
1927
+ **Disable button interaction.**
1928
+
1929
+ ```tsx
1930
+ <Button disabled>Disabled Button</Button>
1931
+ ```
1932
+
1933
+ %%END%%
1934
+ ````
1935
+
1936
+ ---
1937
+
1938
+ ## ๐Ÿ” Flows
1939
+
1940
+ ### Toast Notification Flow
1941
+
1942
+ 1. User triggers action โ†’ calls `toast()` function.
1943
+ 2. Toast added to state โ†’ renders in UI.
1944
+ 3. Auto-dismiss timer starts โ†’ removes after delay.
1945
+ 4. User can manually dismiss โ†’ calls `dismiss()`.
1946
+
1947
+ **Modules**:
1948
+ - `@hooks/useToast`
1949
+ - `@components/toast`
1950
+ - `@components/toaster`
1951
+
1952
+ ---
1953
+
1954
+ ### Authentication Dialog Flow
1955
+
1956
+ 1. User accesses protected content โ†’ `requireAuth()` called.
1957
+ 2. Check authentication status โ†’ show dialog if needed.
1958
+ 3. User completes auth โ†’ event published.
1959
+ 4. Success callback executed โ†’ content unlocked.
1960
+
1961
+ **Modules**:
1962
+ - `@hooks/useAuthDialog`
1963
+ - `@hooks/useEventsBus`
1964
+ - `@events/dialogEvents`
1965
+
1966
+ ---
1967
+
1968
+ ### Responsive Design Flow
1969
+
1970
+ 1. Component mounts โ†’ `useMobile()` initializes.
1971
+ 2. MatchMedia listener set up โ†’ monitors screen size.
1972
+ 3. Window resize detected โ†’ state updates.
1973
+ 4. Component re-renders โ†’ responsive layout applied.
1974
+
1975
+ **Modules**:
1976
+ - `@hooks/useMobile`
1977
+ - Responsive components
1978
+ - Layout components
1979
+
1980
+ ---
1981
+
1982
+ ### Form Persistence Flow
1983
+
1984
+ 1. User inputs data โ†’ `useLocalStorage` updates.
1985
+ 2. Data saved to localStorage โ†’ with error handling.
1986
+ 3. Page refresh โ†’ data restored from storage.
1987
+ 4. Form submission โ†’ data cleared from storage.
1988
+
1989
+ **Modules**:
1990
+ - `@hooks/useLocalStorage`
1991
+ - Form components
1992
+ - Validation hooks
1993
+
1994
+ ---
1995
+
1996
+ ### Landing Page Flow
1997
+
1998
+ 1. Page loads โ†’ Hero section renders.
1999
+ 2. User scrolls โ†’ FeatureSection animates in.
2000
+ 3. User clicks CTA โ†’ navigation occurs.
2001
+ 4. Toast notification โ†’ confirms action.
2002
+
2003
+ **Modules**:
2004
+ - `@blocks/Hero`
2005
+ - `@blocks/FeatureSection`
2006
+ - `@components/Button`
2007
+ - `@hooks/useToast`
2008
+
2009
+ ---
2010
+
2011
+ ## ๐Ÿง  Notes
2012
+
2013
+ - Terms like "RAG" and "LLM-first" are explained inline where used.
2014
+ - Avoid external references or multi-file links.
2015
+ - All content in this single `.md` is optimized for token-friendly usage.
2016
+ - Component variants follow consistent naming patterns.
2017
+ - Hooks include proper cleanup and error handling.
2018
+ - Blocks are designed for landing page use cases.