@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.
- package/LICENSE +21 -0
- package/README.md +152 -0
- package/package.json +110 -0
- package/src/animations/AnimatedBackground.tsx +645 -0
- package/src/animations/index.ts +2 -0
- package/src/blocks/ArticleCard.tsx +94 -0
- package/src/blocks/ArticleList.tsx +95 -0
- package/src/blocks/CTASection.tsx +136 -0
- package/src/blocks/FeatureSection.tsx +104 -0
- package/src/blocks/Hero.tsx +102 -0
- package/src/blocks/NewsletterSection.tsx +119 -0
- package/src/blocks/StatsSection.tsx +103 -0
- package/src/blocks/SuperHero.tsx +328 -0
- package/src/blocks/TestimonialSection.tsx +122 -0
- package/src/blocks/index.ts +9 -0
- package/src/components/README.md +2018 -0
- package/src/components/breadcrumb-navigation.tsx +127 -0
- package/src/components/breadcrumb.tsx +132 -0
- package/src/components/button-download.tsx +275 -0
- package/src/components/dropdown-menu.tsx +219 -0
- package/src/components/index.ts +86 -0
- package/src/components/markdown/MarkdownMessage.tsx +338 -0
- package/src/components/markdown/index.ts +5 -0
- package/src/components/menubar.tsx +274 -0
- package/src/components/multi-select-pro/async.tsx +608 -0
- package/src/components/multi-select-pro/helpers.tsx +84 -0
- package/src/components/multi-select-pro/index.tsx +622 -0
- package/src/components/navigation-menu.tsx +153 -0
- package/src/components/pagination-static.tsx +348 -0
- package/src/components/pagination.tsx +138 -0
- package/src/components/phone-input.tsx +276 -0
- package/src/components/sidebar.tsx +866 -0
- package/src/components/sonner.tsx +31 -0
- package/src/components/ssr-pagination.tsx +237 -0
- package/src/hooks/index.ts +19 -0
- package/src/hooks/useCfgRouter.ts +153 -0
- package/src/hooks/useLocalStorage.ts +221 -0
- package/src/hooks/useQueryParams.ts +73 -0
- package/src/hooks/useSessionStorage.ts +188 -0
- package/src/hooks/useTheme.ts +57 -0
- package/src/index.ts +24 -0
- package/src/lib/index.ts +2 -0
- package/src/styles/index.css +2 -0
- package/src/theme/ForceTheme.tsx +115 -0
- package/src/theme/ThemeProvider.tsx +82 -0
- package/src/theme/ThemeToggle.tsx +52 -0
- package/src/theme/index.ts +3 -0
- package/src/tools/JsonForm/JsonSchemaForm.tsx +199 -0
- package/src/tools/JsonForm/examples/BotConfigExample.tsx +245 -0
- package/src/tools/JsonForm/examples/RealBotConfigExample.tsx +157 -0
- package/src/tools/JsonForm/index.ts +46 -0
- package/src/tools/JsonForm/templates/ArrayFieldItemTemplate.tsx +46 -0
- package/src/tools/JsonForm/templates/ArrayFieldTemplate.tsx +73 -0
- package/src/tools/JsonForm/templates/BaseInputTemplate.tsx +106 -0
- package/src/tools/JsonForm/templates/ErrorListTemplate.tsx +34 -0
- package/src/tools/JsonForm/templates/FieldTemplate.tsx +61 -0
- package/src/tools/JsonForm/templates/ObjectFieldTemplate.tsx +43 -0
- package/src/tools/JsonForm/templates/index.ts +12 -0
- package/src/tools/JsonForm/types.ts +83 -0
- package/src/tools/JsonForm/utils.ts +212 -0
- package/src/tools/JsonForm/widgets/CheckboxWidget.tsx +36 -0
- package/src/tools/JsonForm/widgets/NumberWidget.tsx +88 -0
- package/src/tools/JsonForm/widgets/SelectWidget.tsx +100 -0
- package/src/tools/JsonForm/widgets/SwitchWidget.tsx +34 -0
- package/src/tools/JsonForm/widgets/TextWidget.tsx +95 -0
- package/src/tools/JsonForm/widgets/index.ts +12 -0
- package/src/tools/JsonTree/index.tsx +252 -0
- package/src/tools/LottiePlayer/LottiePlayer.client.tsx +212 -0
- package/src/tools/LottiePlayer/index.tsx +54 -0
- package/src/tools/LottiePlayer/types.ts +108 -0
- package/src/tools/LottiePlayer/useLottie.ts +163 -0
- package/src/tools/Mermaid/Mermaid.client.tsx +341 -0
- package/src/tools/Mermaid/index.tsx +40 -0
- package/src/tools/OpenapiViewer/components/EndpointInfo.tsx +144 -0
- package/src/tools/OpenapiViewer/components/EndpointsLibrary.tsx +255 -0
- package/src/tools/OpenapiViewer/components/PlaygroundLayout.tsx +123 -0
- package/src/tools/OpenapiViewer/components/PlaygroundStepper.tsx +98 -0
- package/src/tools/OpenapiViewer/components/RequestBuilder.tsx +164 -0
- package/src/tools/OpenapiViewer/components/RequestParametersForm.tsx +253 -0
- package/src/tools/OpenapiViewer/components/ResponseViewer.tsx +169 -0
- package/src/tools/OpenapiViewer/components/VersionSelector.tsx +64 -0
- package/src/tools/OpenapiViewer/components/index.ts +14 -0
- package/src/tools/OpenapiViewer/constants.ts +39 -0
- package/src/tools/OpenapiViewer/context/PlaygroundContext.tsx +338 -0
- package/src/tools/OpenapiViewer/hooks/index.ts +8 -0
- package/src/tools/OpenapiViewer/hooks/useMobile.ts +10 -0
- package/src/tools/OpenapiViewer/hooks/useOpenApiSchema.ts +203 -0
- package/src/tools/OpenapiViewer/index.tsx +36 -0
- package/src/tools/OpenapiViewer/types.ts +152 -0
- package/src/tools/OpenapiViewer/utils/apiKeyManager.ts +149 -0
- package/src/tools/OpenapiViewer/utils/formatters.ts +71 -0
- package/src/tools/OpenapiViewer/utils/index.ts +9 -0
- package/src/tools/OpenapiViewer/utils/versionManager.ts +161 -0
- package/src/tools/PrettyCode/PrettyCode.client.tsx +217 -0
- package/src/tools/PrettyCode/index.tsx +43 -0
- package/src/tools/VideoPlayer/README.md +239 -0
- package/src/tools/VideoPlayer/VideoControls.tsx +138 -0
- package/src/tools/VideoPlayer/VideoPlayer.tsx +230 -0
- package/src/tools/VideoPlayer/index.ts +9 -0
- package/src/tools/VideoPlayer/types.ts +62 -0
- 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.
|