pelatform-ui 1.2.9 → 1.3.1

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 (42) hide show
  1. package/README.md +254 -120
  2. package/css/theme.css +1 -59
  3. package/dist/animation.d.ts +379 -3
  4. package/dist/animation.js +1785 -2
  5. package/dist/badge-Rr33PgV_.d.ts +15 -0
  6. package/dist/base.d.ts +1452 -1
  7. package/dist/base.js +12148 -2
  8. package/dist/button-Bc3N6jWT.d.ts +22 -0
  9. package/dist/chunk-4Z3DBWB6.js +193 -0
  10. package/dist/chunk-NW6KWHKZ.js +22 -0
  11. package/dist/chunk-Q2RH7YQE.js +857 -0
  12. package/dist/{chunk-NOAZYT3J.js → chunk-V3ET2B55.js} +2 -4
  13. package/dist/chunk-XKN6BR2K.js +59 -0
  14. package/dist/components.d.ts +472 -2129
  15. package/dist/components.js +969 -1421
  16. package/dist/hooks.d.ts +1197 -4
  17. package/dist/hooks.js +912 -5
  18. package/dist/index.d.ts +7 -84
  19. package/dist/index.js +1 -623
  20. package/dist/radix.d.ts +1440 -1
  21. package/dist/radix.js +11360 -2
  22. package/package.json +33 -22
  23. package/css/components/apexcharts.css +0 -101
  24. package/css/components/book.css +0 -19
  25. package/css/components/extra.css +0 -12
  26. package/css/components/image-input.css +0 -51
  27. package/css/components/leaflet.css +0 -25
  28. package/css/components/patterns.css +0 -34
  29. package/css/components/rating.css +0 -89
  30. package/css/components/scrollable.css +0 -118
  31. package/css/components/theme-transition.css +0 -51
  32. package/dist/chunk-HW52LCWN.js +0 -22
  33. package/dist/chunk-QEWGMDVY.js +0 -10
  34. package/dist/colors-CUDWvz1g.d.ts +0 -42
  35. package/dist/components-B1rw2xzN.d.ts +0 -46
  36. package/dist/utils.d.ts +0 -6
  37. package/dist/utils.js +0 -14
  38. /package/css/{shadcn → color}/gray.css +0 -0
  39. /package/css/{shadcn → color}/neutral.css +0 -0
  40. /package/css/{shadcn → color}/slate.css +0 -0
  41. /package/css/{shadcn → color}/stone.css +0 -0
  42. /package/css/{shadcn → color}/zinc.css +0 -0
@@ -1,1311 +1,145 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React$1 from 'react';
3
- import React__default, { ComponentProps, ReactNode, HTMLAttributes, FC, DragEvent, RefObject } from 'react';
4
- import { Alert, badgeVariants, Button } from '@pelatform/ui.components/radix';
5
- import { B as BaseComponentProps, L as LinkComponentProps, I as ImageComponentProps } from './components-B1rw2xzN.js';
3
+ import React__default, { ReactNode, ComponentProps } from 'react';
6
4
  import { QueryClient } from '@tanstack/react-query';
7
5
  import { ThemeProvider as ThemeProvider$1 } from 'next-themes';
8
- import { VariantProps } from 'class-variance-authority';
9
- import { a as ThemeMode } from './colors-CUDWvz1g.js';
6
+ import { A as Alert, B as Button } from './button-Bc3N6jWT.js';
7
+ import { B as Badge } from './badge-Rr33PgV_.js';
8
+ import { ThemeMode } from '@pelatform/utils';
9
+ import 'class-variance-authority/types';
10
+ import 'class-variance-authority';
10
11
 
11
12
  /**
12
- * Configuration options for the alert toast notification
13
- */
14
- interface AlertToastOptions {
15
- /** Custom message to display in the toast */
16
- message?: string;
17
- /** Icon variant to display in the alert - determines which icon is shown */
18
- icon?: "primary" | "destructive" | "success" | "info" | "warning";
19
- /** Visual variant of the alert component - affects styling and colors */
20
- variant?: ComponentProps<typeof Alert>["variant"];
21
- }
22
- /**
23
- * Creates and displays a customizable alert toast notification
24
- *
25
- * @param options - Configuration options for the toast
26
- * @param options.message - The message to display (default: 'This is a toast')
27
- * @param options.icon - The icon variant to show (default: 'success')
28
- * @param options.variant - The visual style variant (default: 'default')
29
- *
30
- * @example
31
- * ```tsx
32
- * // Show a success message
33
- * AlertToast({ message: 'Data saved successfully!' });
34
- *
35
- * // Show an error message
36
- * AlertToast({
37
- * message: 'Failed to save data',
38
- * icon: 'destructive',
39
- * variant: 'destructive'
40
- * });
41
- * ```
42
- */
43
- declare function AlertToast({ message, icon, variant, }: AlertToastOptions): void;
44
- /**
45
- * Alert Notification Component
46
- *
47
- * Renders a static alert notification with appropriate icon and styling
48
- * based on the variant. This component is used for displaying persistent
49
- * alerts that don't auto-dismiss like toast notifications.
50
- *
51
- * @param props - Component props
52
- * @param props.message - The message to display in the alert
53
- * @param props.variant - The visual style variant (default: 'info')
54
- *
55
- * @returns JSX element or null if no message is provided
56
- *
57
- * @example
58
- * ```tsx
59
- * // Basic info alert
60
- * <AlertNotification message="Please verify your email address" />
61
- *
62
- * // Error alert
63
- * <AlertNotification
64
- * message="Failed to load data"
65
- * variant="destructive"
66
- * />
67
- *
68
- * // Success alert
69
- * <AlertNotification
70
- * message="Profile updated successfully"
71
- * variant="success"
72
- * />
73
- *
74
- * // Warning alert
75
- * <AlertNotification
76
- * message="Your session will expire soon"
77
- * variant="warning"
78
- * />
79
- * ```
80
- */
81
- declare function AlertNotification({ message, variant }: AlertToastOptions): react_jsx_runtime.JSX.Element | null;
82
- /**
83
- * Displays a standardized "coming soon" toast notification
84
- *
85
- * This function creates a consistent user experience for features that are
86
- * not yet implemented. It uses a custom toast with alert styling to inform
87
- * users that the feature they're trying to access is under development.
88
- *
89
- * @param options - Configuration options for the toast appearance and message
90
- *
91
- * @example
92
- * ```tsx
93
- * // Basic usage with default message
94
- * AlertComingsoon();
95
- *
96
- * // Custom message with warning variant
97
- * AlertComingsoon({
98
- * message: 'Advanced analytics coming in Q2 2024',
99
- * icon: 'warning',
100
- * variant: 'warning'
101
- * });
102
- *
103
- * // Success variant for positive messaging
104
- * AlertComingsoon({
105
- * message: 'New dashboard features are on the way!',
106
- * icon: 'success',
107
- * variant: 'success'
108
- * });
109
- *
110
- * // Use in event handlers
111
- * const handlePremiumFeature = () => {
112
- * AlertComingsoon({
113
- * message: 'Premium features available soon',
114
- * icon: 'info',
115
- * variant: 'info'
116
- * });
117
- * };
118
- * ```
119
- */
120
- declare const AlertComingsoon: ({ message, variant, }?: AlertToastOptions) => void;
121
-
122
- /**
123
- * Confirm Dismiss Dialog Component
124
- * Provides a reusable confirmation dialog for destructive actions like discarding changes
125
- * Built on top of AlertDialog with customizable content and actions
126
- */
127
- /**
128
- * Props interface for the ConfirmDismissDialog component
129
- */
130
- interface ConfirmDismissDialogProps {
131
- /** Whether the dialog is open */
132
- open: boolean;
133
- /** Callback to handle dialog open state changes */
134
- onOpenChange: (open: boolean) => void;
135
- /** Callback executed when user confirms the action */
136
- onConfirm: () => void;
137
- /** Optional callback executed when user cancels (defaults to closing dialog) */
138
- onCancel?: () => void;
139
- /** Dialog title text (defaults to "Discard changes?") */
140
- title?: string;
141
- /** Dialog description text (defaults to unsaved changes message) */
142
- description?: string;
143
- /** Confirm button text (defaults to "Discard changes") */
144
- confirmText?: string;
145
- /** Cancel button text (defaults to "Cancel") */
146
- cancelText?: string;
147
- /** CSS class for maximum width (defaults to "md:max-w-[375px]") */
148
- maxWidth?: string;
149
- }
150
- /**
151
- * Reusable confirmation dialog for destructive actions
152
- *
153
- * This component provides a standardized way to confirm destructive actions
154
- * like discarding unsaved changes, deleting items, or leaving forms.
155
- * It includes customizable text and handles both confirm and cancel actions.
156
- *
157
- * @param props - Component props for dialog configuration
158
- * @returns JSX element containing the confirmation dialog
159
- *
160
- * @example
161
- * ```tsx
162
- * // Basic usage for form dismissal
163
- * function FormComponent() {
164
- * const [showDialog, setShowDialog] = useState(false);
165
- * const [hasChanges, setHasChanges] = useState(false);
166
- *
167
- * const handleClose = () => {
168
- * if (hasChanges) {
169
- * setShowDialog(true);
170
- * } else {
171
- * // Close form directly
172
- * onClose();
173
- * }
174
- * };
175
- *
176
- * return (
177
- * <>
178
- * <form>
179
- * <button type="button" onClick={handleClose}>Close</button>
180
- * </form>
181
- *
182
- * <ConfirmDismissDialog
183
- * open={showDialog}
184
- * onOpenChange={setShowDialog}
185
- * onConfirm={() => {
186
- * setShowDialog(false);
187
- * onClose(); // Actually close the form
188
- * }}
189
- * />
190
- * </>
191
- * );
192
- * }
193
- *
194
- * // Custom dialog for deletion
195
- * <ConfirmDismissDialog
196
- * open={showDeleteDialog}
197
- * onOpenChange={setShowDeleteDialog}
198
- * title="Delete item?"
199
- * description="This action cannot be undone. Are you sure you want to delete this item?"
200
- * confirmText="Delete"
201
- * cancelText="Keep"
202
- * onConfirm={handleDelete}
203
- * />
204
- * ```
205
- */
206
- declare const ConfirmDismissDialog: ({ open, onOpenChange, onConfirm, onCancel, title, description, confirmText, cancelText, maxWidth, }: ConfirmDismissDialogProps) => react_jsx_runtime.JSX.Element;
207
-
208
- /**
209
- * Screen Loader Component
210
- * Provides a full-screen loading overlay with spinner and customizable text
211
- * Perfect for page transitions, data loading, and async operations
212
- */
213
- /**
214
- * Props interface for the ScreenLoader component
215
- */
216
- interface ScreenLoaderProps {
217
- /** Loading text to display below the spinner */
218
- loadingText?: string;
219
- /** Additional CSS classes for the container */
220
- className?: string;
221
- /** Additional CSS classes for the spinner icon */
222
- spinnerClassName?: string;
223
- /** Additional CSS classes for the loading text */
224
- textClassName?: string;
225
- /** Display loader for content */
226
- contentLoader?: boolean;
227
- }
228
- /**
229
- * ScreenLoader Component
230
- *
231
- * A full-screen loading overlay that covers the entire viewport.
232
- * Features a spinning icon and customizable loading text with
233
- * smooth fade transitions. Positioned with high z-index to
234
- * appear above all other content.
235
- *
236
- * @param props - Component props
237
- * @returns JSX element containing the full-screen loader
238
- *
239
- * @example
240
- * ```tsx
241
- * // Basic usage
242
- * function App() {
243
- * const [isLoading, setIsLoading] = useState(true);
244
- *
245
- * useEffect(() => {
246
- * // Simulate loading
247
- * setTimeout(() => setIsLoading(false), 2000);
248
- * }, []);
249
- *
250
- * return (
251
- * <div>
252
- * {isLoading && <ScreenLoader />}
253
- * <main>Your app content</main>
254
- * </div>
255
- * );
256
- * }
257
- *
258
- * // Custom loading text
259
- * <ScreenLoader loadingText="Preparing your dashboard..." />
260
- *
261
- * // Custom styling
262
- * <ScreenLoader
263
- * loadingText="Please wait"
264
- * className="bg-black/80 backdrop-blur-sm"
265
- * spinnerClassName="size-8 animate-spin text-blue-500"
266
- * textClassName="text-white text-lg font-semibold"
267
- * />
268
- *
269
- * // With conditional rendering
270
- * {isSubmitting && (
271
- * <ScreenLoader
272
- * loadingText="Submitting form..."
273
- * className="bg-white/90"
274
- * />
275
- * )}
276
- *
277
- * // Different spinner sizes
278
- * <ScreenLoader
279
- * spinnerClassName="size-12 animate-spin text-purple-600"
280
- * textClassName="text-purple-600 font-bold"
281
- * />
282
- * ```
283
- */
284
- declare function ScreenLoader({ loadingText, className, spinnerClassName, textClassName, contentLoader, }?: ScreenLoaderProps): react_jsx_runtime.JSX.Element;
285
-
286
- /**
287
- * LayoutAuth Component
288
- *
289
- * A centered authentication page layout that vertically and horizontally
290
- * centers its content. Optionally renders a `logo` above the card.
291
- *
292
- * @param props - Component props
293
- * @returns JSX element containing the authentication layout
294
- *
295
- * @example
296
- * ```tsx
297
- * <LayoutAuth logo={<MyLogo />}>
298
- * <LoginForm />
299
- * </LayoutAuth>
300
- * ```
301
- */
302
- declare function LayoutAuth({ children, className, logo, }: BaseComponentProps & {
303
- logo?: ReactNode;
304
- }): react_jsx_runtime.JSX.Element;
305
-
306
- /**
307
- * Props interface for the `LayoutBlank` component
308
- * Inherits `children` and `className` from `BaseProps`, and `Link` from `SharedLink`.
309
- */
310
- interface LayoutBlankProps extends BaseComponentProps {
311
- /** Optional footer content displayed at the bottom */
312
- footer?: ReactNode;
313
- /** Optional logo element displayed at the top */
314
- logo?: ReactNode;
315
- }
316
- /**
317
- * LayoutBlank Component
318
- *
319
- * A minimal full-screen layout with a subtle background grid and configurable
320
- * header logo and footer content. Useful for simple landing or blank pages.
321
- *
322
- * @param props - Component props
323
- * @returns JSX element containing the blank layout
324
- *
325
- * @example
326
- * ```tsx
327
- * <LayoutBlank logo={<Logo />} logoHref="/">
328
- * <Content />
329
- * </LayoutBlank>
330
- * ```
331
- */
332
- declare function LayoutBlank({ children, footer, className, logo }: LayoutBlankProps): react_jsx_runtime.JSX.Element;
333
-
334
- /**
335
- * Body Component
336
- *
337
- * A wrapper component for the HTML body element that applies dynamic
338
- * class names based on the provided slug. Useful for implementing
339
- * theme switching, page-specific styling, or mode-based layouts.
340
- *
341
- * @param props - Component props
342
- * @param props.children - Content to render inside the body
343
- * @param props.slug - Slug used to determine additional class names
344
- * @param props.className - Additional CSS classes to merge
345
- * @returns JSX body element with combined class names
346
- *
347
- * @example
348
- * ```tsx
349
- * // Basic usage with theme slug
350
- * <Body slug={['dark', 'compact']} className="font-sans">
351
- * <div>Page content</div>
352
- * </Body>
353
- *
354
- * // With single slug
355
- * <Body slug="admin" className="bg-gray-100">
356
- * <AdminPanel />
357
- * </Body>
358
- *
359
- * // Dynamic theme switching
360
- * function App() {
361
- * const [theme, setTheme] = useState(['light']);
362
- *
363
- * return (
364
- * <Body slug={theme} className="transition-colors">
365
- * <ThemeToggle onThemeChange={setTheme} />
366
- * <MainContent />
367
- * </Body>
368
- * );
369
- * }
370
- * ```
371
- */
372
- declare function Body({ slug, children, className }: BaseComponentProps & {
373
- slug: string;
374
- }): react_jsx_runtime.JSX.Element;
375
-
376
- /**
377
- * Coming Soon Component
378
- * Displays a full-height section with an animated hover background and
379
- * optional title and description. Ideal for placeholder pages or upcoming
380
- * feature announcements.
381
- */
382
- /**
383
- * Props interface for the `ComingSoon` component
384
- */
385
- interface ComingSoonProps {
386
- /** Additional CSS classes for the wrapper */
387
- className?: string;
388
- /** Optional highlighted title text */
389
- title?: string;
390
- /** Optional descriptive text below the title */
391
- description?: string;
392
- }
393
- /**
394
- * ComingSoon Component
395
- *
396
- * Renders a full-height container with animated hover background objects
397
- * and optional title/description content centered on the screen.
398
- *
399
- * @param props - Component props
400
- * @returns JSX element containing the coming soon layout
401
- *
402
- * @example
403
- * ```tsx
404
- * <ComingSoon title="Coming Soon" description="We are cooking something nice." />
405
- * ```
406
- */
407
- declare function ComingSoon({ className, title, description }: ComingSoonProps): react_jsx_runtime.JSX.Element;
408
-
409
- /**
410
- * Props interface for the `ErrorComponents` component
411
- */
412
- interface ErrorComponentsProps {
413
- /** Additional CSS classes for the container */
414
- className?: string;
415
- /** Error variant to display */
416
- type?: "default" | "404" | "500" | "custom";
417
- /** Optional title content */
418
- textTitle?: ReactNode;
419
- /** Optional subtitle content */
420
- textSubtitle?: ReactNode;
421
- /** Optional action button (e.g., retry) */
422
- button?: ReactNode;
423
- /** Function to generate asset URLs (e.g., for CDN integration) */
424
- assetsUrl?: (path: string) => string;
425
- }
426
- /**
427
- * ErrorComponents Component
428
- *
429
- * A reusable error layout supporting multiple variants (404, 500, default, custom).
430
- * Displays illustrations and optional title, subtitle, and button.
431
- *
432
- * @param props - Component props
433
- * @returns JSX element containing the error layout
434
- *
435
- * @example
436
- * ```tsx
437
- * <ErrorComponents
438
- * type="404"
439
- * textTitle="Page not found"
440
- * textSubtitle="The page you are looking for does not exist."
441
- * />
442
- * ```
443
- */
444
- declare function ErrorComponents({ className, type, textTitle, textSubtitle, button, assetsUrl, }: ErrorComponentsProps): react_jsx_runtime.JSX.Element;
445
-
446
- /**
447
- * Grid Component
448
- * Renders an SVG grid pattern overlay for background decoration
449
- * Useful for creating grid-based layouts or visual guides
450
- */
451
- /**
452
- * Grid Component
453
- *
454
- * Renders an SVG-based grid pattern that can be used as a background
455
- * overlay. The grid is responsive and fills its container while
456
- * maintaining consistent cell sizes and stroke widths.
457
- *
458
- * @param props - Component props
459
- * @param props.cellSize - Size of each grid cell (default: 12px)
460
- * @param props.strokeWidth - Width of grid lines (default: 1px)
461
- * @param props.patternOffset - Grid offset position (default: [0, 0])
462
- * @param props.className - Additional CSS classes
463
- * @returns JSX SVG element with grid pattern
464
- *
465
- * @example
466
- * ```tsx
467
- * // Basic grid overlay
468
- * <div className="relative">
469
- * <Grid />
470
- * <div>Content over grid</div>
471
- * </div>
472
- *
473
- * // Custom grid with larger cells
474
- * <Grid
475
- * cellSize={24}
476
- * strokeWidth={2}
477
- * className="text-blue-500/20"
478
- * />
479
- *
480
- * // Offset grid pattern
481
- * <Grid
482
- * cellSize={16}
483
- * patternOffset={[8, 8]}
484
- * className="text-gray-300/30"
485
- * />
486
- *
487
- * // Fine grid for detailed layouts
488
- * <Grid
489
- * cellSize={8}
490
- * strokeWidth={0.5}
491
- * className="text-slate-400/15"
492
- * />
493
- * ```
494
- */
495
- declare function Grid({ cellSize, strokeWidth, patternOffset, className, }: {
496
- /** Size of each grid cell in pixels */
497
- cellSize?: number;
498
- /** Width of the grid lines in pixels */
499
- strokeWidth?: number;
500
- /** Offset position for the grid pattern [x, y] */
501
- patternOffset?: [number, number];
502
- /** Additional CSS classes to apply to the grid */
503
- className?: string;
504
- }): react_jsx_runtime.JSX.Element;
505
-
506
- /**
507
- * Props interface for the Section component
508
- */
509
- type SectionProps = {
510
- /** Additional CSS classes to apply to the section element */
511
- sectionClassName?: string;
512
- } & HTMLAttributes<HTMLDivElement>;
513
- /**
514
- * Section Component
515
- *
516
- * A layout component that creates structured sections with a grid background
517
- * and decorative corner elements. Provides consistent spacing and visual
518
- * hierarchy for page content sections.
519
- *
520
- * @param props - Component props extending HTMLDivElement attributes
521
- * @param props.children - Content to render inside the section
522
- * @param props.sectionClassName - CSS classes for the section element
523
- * @param props.className - CSS classes for the content container
524
- * @returns JSX section element with grid background and decorative elements
525
- *
526
- * @example
527
- * ```tsx
528
- * // Basic section
529
- * <Section>
530
- * <h2>Section Title</h2>
531
- * <p>Section content</p>
532
- * </Section>
533
- *
534
- * // With custom styling
535
- * <Section
536
- * sectionClassName="py-16 bg-gray-50"
537
- * className="text-center"
538
- * >
539
- * <Hero />
540
- * </Section>
541
- *
542
- * // Multiple sections
543
- * <main>
544
- * <Section sectionClassName="bg-white">
545
- * <Introduction />
546
- * </Section>
547
- * <Section sectionClassName="bg-gray-100">
548
- * <Features />
549
- * </Section>
550
- * <Section sectionClassName="bg-blue-50">
551
- * <CallToAction />
552
- * </Section>
553
- * </main>
554
- *
555
- * // With additional props
556
- * <Section
557
- * id="about"
558
- * sectionClassName="scroll-mt-16"
559
- * className="space-y-8"
560
- * >
561
- * <AboutContent />
562
- * </Section>
563
- * ```
564
- */
565
- declare const Section: ({ children, sectionClassName, className, ...props }: SectionProps) => react_jsx_runtime.JSX.Element;
566
-
567
- /**
568
- * SiteFooter Component
569
- *
570
- * A responsive footer component that provides consistent styling
571
- * and layout for site-wide footer content. Features a top border,
572
- * responsive padding, and flexible content arrangement.
573
- *
574
- * Features:
575
- * - Responsive design (stacked on mobile, horizontal on desktop)
576
- * - Consistent container width and padding
577
- * - Top border for visual separation
578
- * - Flexible content arrangement
579
- * - Semantic footer element
580
- *
581
- * @param props - Component props
582
- * @returns JSX element containing the site footer
583
- *
584
- * @example
585
- * ```tsx
586
- * // Basic usage with copyright and links
587
- * <SiteFooter>
588
- * <div className="flex flex-col items-center gap-4 md:flex-row">
589
- * <p className="text-sm text-muted-foreground">
590
- * © 2024 Your Company. All rights reserved.
591
- * </p>
592
- * <nav className="flex gap-4">
593
- * <Link href="/privacy" className="text-sm hover:underline">
594
- * Privacy Policy
595
- * </Link>
596
- * <Link href="/terms" className="text-sm hover:underline">
597
- * Terms of Service
598
- * </Link>
599
- * </nav>
600
- * </div>
601
- * </SiteFooter>
602
- *
603
- * // With social links and newsletter
604
- * <SiteFooter>
605
- * <div className="text-sm text-muted-foreground">
606
- * © 2024 Your Company
607
- * </div>
608
- * <div className="flex items-center gap-4">
609
- * <SocialLinks />
610
- * <NewsletterSignup />
611
- * </div>
612
- * </SiteFooter>
613
- *
614
- * // Custom styling
615
- * <SiteFooter className="bg-gray-50 dark:bg-gray-900">
616
- * <FooterContent />
617
- * </SiteFooter>
618
- * ```
619
- */
620
- declare function SiteFooter({ children, className }: BaseComponentProps): react_jsx_runtime.JSX.Element;
621
-
622
- /**
623
- * SiteHeader Component
624
- *
625
- * A sticky header component with modern styling including backdrop blur,
626
- * semi-transparent background, and responsive design. Positioned at the
627
- * top of the viewport with high z-index for proper layering.
628
- *
629
- * Features:
630
- * - Sticky positioning at top of viewport
631
- * - Backdrop blur effect for modern appearance
632
- * - Semi-transparent background with fallback
633
- * - Bottom border for visual separation
634
- * - Responsive container with consistent spacing
635
- * - High z-index for proper layering
636
- * - Dark mode support
637
- *
638
- * @param props - Component props
639
- * @returns JSX element containing the site header
640
- *
641
- * @example
642
- * ```tsx
643
- * // Basic usage with logo and navigation
644
- * <SiteHeader>
645
- * <div className="flex items-center gap-4">
646
- * <Logo />
647
- * <MainNav items={navItems} />
648
- * </div>
649
- * <div className="flex items-center gap-2">
650
- * <ThemeToggle />
651
- * <UserMenu />
652
- * </div>
653
- * </SiteHeader>
654
- *
655
- * // With mobile navigation
656
- * <SiteHeader>
657
- * <div className="flex items-center gap-4">
658
- * <MobileNav>
659
- * <MobileNavItems />
660
- * </MobileNav>
661
- * <Logo />
662
- * <MainNav items={navItems} className="hidden md:flex" />
663
- * </div>
664
- * <HeaderActions />
665
- * </SiteHeader>
666
- *
667
- * // Custom styling
668
- * <SiteHeader className="bg-white/80 border-gray-200">
669
- * <HeaderContent />
670
- * </SiteHeader>
671
- * ```
672
- */
673
- declare function SiteHeader({ className, children }: BaseComponentProps): react_jsx_runtime.JSX.Element;
674
-
675
- /**
676
- * MaxWidthWrapper Component
677
- *
678
- * A responsive container component that constrains content to a maximum
679
- * width while providing consistent padding and centering. Ideal for
680
- * creating readable layouts that work well across different screen sizes.
681
- *
682
- * @param props - Component props
683
- * @param props.className - Additional CSS classes to merge
684
- * @param props.children - Content to render inside the wrapper
685
- * @returns JSX div element with max-width constraints and responsive padding
686
- *
687
- * @example
688
- * ```tsx
689
- * // Basic content wrapper
690
- * <MaxWidthWrapper>
691
- * <h1>Page Title</h1>
692
- * <p>Content that won't exceed the maximum width</p>
693
- * </MaxWidthWrapper>
694
- *
695
- * // With custom styling
696
- * <MaxWidthWrapper className="bg-gray-50 rounded-lg">
697
- * <Article />
698
- * </MaxWidthWrapper>
699
- *
700
- * // Multiple sections
701
- * <main>
702
- * <MaxWidthWrapper>
703
- * <Header />
704
- * </MaxWidthWrapper>
705
- * <MaxWidthWrapper className="py-8">
706
- * <MainContent />
707
- * </MaxWidthWrapper>
708
- * <MaxWidthWrapper>
709
- * <Footer />
710
- * </MaxWidthWrapper>
711
- * </main>
712
- *
713
- * // Nested with other layout components
714
- * <Section>
715
- * <MaxWidthWrapper>
716
- * <Grid>
717
- * <Card>Content</Card>
718
- * </Grid>
719
- * </MaxWidthWrapper>
720
- * </Section>
721
- * ```
722
- */
723
- declare function MaxWidthWrapper({ className, children }: BaseComponentProps): react_jsx_runtime.JSX.Element;
724
-
725
- /**
726
- * CodeDisplay Component
727
- *
728
- * A responsive layout component that displays code examples alongside
729
- * their rendered output. Features a two-column layout on desktop
730
- * and stacked layout on mobile devices.
731
- *
732
- * @param props - Component props
733
- * @param props.children - Code content (typically syntax-highlighted)
734
- * @param props.component - The rendered component to showcase
735
- * @returns JSX element with side-by-side code and component display
736
- *
737
- * @example
738
- * ```tsx
739
- * // Basic usage in MDX documentation
740
- * <CodeDisplay component={<Button>Click me</Button>}>
741
- * ```tsx
742
- * <Button>Click me</Button>
743
- * ```
744
- * </CodeDisplay>
745
- *
746
- * // With complex component
747
- * <CodeDisplay
748
- * component={
749
- * <Card className="w-64">
750
- * <CardHeader>
751
- * <CardTitle>Example Card</CardTitle>
752
- * </CardHeader>
753
- * <CardContent>
754
- * <p>Card content here</p>
755
- * </CardContent>
756
- * </Card>
757
- * }
758
- * >
759
- * ```tsx
760
- * <Card className="w-64">
761
- * <CardHeader>
762
- * <CardTitle>Example Card</CardTitle>
763
- * </CardHeader>
764
- * <CardContent>
765
- * <p>Card content here</p>
766
- * </CardContent>
767
- * </Card>
768
- * ```
769
- * </CodeDisplay>
770
- *
771
- * // Interactive component showcase
772
- * <CodeDisplay component={<InteractiveDemo />}>
773
- * ```tsx
774
- * function InteractiveDemo() {
775
- * const [count, setCount] = useState(0);
776
- * return (
777
- * <Button onClick={() => setCount(count + 1)}>
778
- * Clicked {count} times
779
- * </Button>
780
- * );
781
- * }
782
- * ```
783
- * </CodeDisplay>
784
- * ```
785
- */
786
- declare function CodeDisplay({ children, component, }: {
787
- children: ReactNode;
788
- component: ReactNode;
789
- }): react_jsx_runtime.JSX.Element;
790
-
791
- /**
792
- * DownloadFile Component
793
- *
794
- * A styled download button component that opens files in a new tab
795
- * with proper security attributes. Features a download icon and
796
- * rounded button styling.
797
- *
798
- * @param props - Component props
799
- * @param props.children - Button label or content
800
- * @param props.href - URL of the file to download
801
- * @param props.className - Additional CSS classes
802
- * @returns JSX element with download button
803
- *
804
- * @example
805
- * ```tsx
806
- * // Basic file download
807
- * <DownloadFile href="/files/document.pdf">
808
- * Download PDF
809
- * </DownloadFile>
810
- *
811
- * // Custom styling
812
- * <DownloadFile
813
- * href="/assets/template.zip"
814
- * className="bg-blue-600 hover:bg-blue-700"
815
- * >
816
- * Download Template
817
- * </DownloadFile>
818
- *
819
- * // Multiple download options
820
- * <div className="flex gap-4">
821
- * <DownloadFile href="/files/guide.pdf">
822
- * User Guide (PDF)
823
- * </DownloadFile>
824
- * <DownloadFile href="/files/guide.docx">
825
- * User Guide (Word)
826
- * </DownloadFile>
827
- * </div>
828
- *
829
- * // In MDX content
830
- * Here's the latest version of our software:
831
- *
832
- * <DownloadFile href="/releases/app-v2.1.0.zip">
833
- * Download v2.1.0
834
- * </DownloadFile>
835
- * ```
836
- */
837
- declare function DownloadFile({ children, className, href }: BaseComponentProps & {
838
- href: string;
839
- }): react_jsx_runtime.JSX.Element;
840
-
841
- /**
842
- * Shared Component Types and Default Implementations
843
- * Provides reusable component interfaces and default implementations
844
- * for common UI elements like images, links, and navigation
845
- */
846
-
847
- /**
848
- * Interface for components that accept a custom Image component
849
- * Allows injection of custom image implementations (e.g., Next.js Image)
850
- */
851
- interface SharedImage {
852
- /** Custom Image component implementation */
853
- Image?: ImageComponentProps;
854
- }
855
- /**
856
- * Interface for components that accept a custom Link component
857
- * Allows injection of custom link implementations (e.g., Next.js Link)
858
- */
859
- interface SharedLink {
860
- /** Custom Link component implementation */
861
- Link?: LinkComponentProps;
862
- }
863
- /**
864
- * Interface for components that accept a custom navigation function
865
- * Allows injection of custom navigation implementations (e.g., Next.js router)
866
- */
867
- interface SharedNavigate {
868
- /** Custom navigation function */
869
- navigate?: (href: string) => void;
870
- }
871
- /**
872
- * Default Image Component
873
- *
874
- * A basic HTML img element implementation that serves as the default
875
- * when no custom Image component is provided. Supports standard
876
- * image attributes and CSS classes.
877
- *
878
- * @param props - Image component props
879
- * @param props.src - Source URL of the image
880
- * @param props.alt - Alt text for accessibility
881
- * @param props.className - Additional CSS classes
882
- * @returns JSX element containing a standard img tag
883
- *
884
- * @example
885
- * ```tsx
886
- * // Basic usage
887
- * <DefaultImage
888
- * src="/images/logo.png"
889
- * alt="Company Logo"
890
- * className="w-32 h-auto"
891
- * />
892
- * ```
893
- */
894
- declare const DefaultImage: ImageComponentProps;
895
- /**
896
- * Default Link Component
897
- *
898
- * A basic HTML anchor element implementation that serves as the default
899
- * when no custom Link component is provided. Supports standard
900
- * link attributes and CSS classes.
901
- *
902
- * @param props - Link component props
903
- * @param props.href - Destination URL
904
- * @param props.className - Additional CSS classes
905
- * @param props.children - Link content
906
- * @returns JSX element containing a standard anchor tag
907
- *
908
- * @example
909
- * ```tsx
910
- * // Basic usage
911
- * <DefaultLink
912
- * href="/about"
913
- * className="text-blue-600 hover:underline"
914
- * >
915
- * About Us
916
- * </DefaultLink>
917
- * ```
13
+ * Props interface for icon components
14
+ * Extends standard HTML SVG element attributes for full customization
918
15
  */
919
- declare const DefaultLink: LinkComponentProps;
16
+ type IconProps = React__default.HTMLAttributes<SVGElement>;
920
17
  /**
921
- * Default Navigation Function
18
+ * Collection of brand and service icons
922
19
  *
923
- * A basic navigation implementation using window.location.href
924
- * that serves as the default when no custom navigation function
925
- * is provided. Performs a full page navigation.
926
- *
927
- * @param href - Destination URL to navigate to
20
+ * This object contains SVG icons for popular brands, services, and technologies.
21
+ * All icons are designed to be scalable and themeable using CSS currentColor.
22
+ * Icon keys use PascalCase (capitalized first letter) for consistency.
928
23
  *
929
24
  * @example
930
25
  * ```tsx
931
26
  * // Basic usage
932
- * const handleNavigation = () => {
933
- * DefaultNavigate('/dashboard');
934
- * };
935
- *
936
- * // In a component
937
- * <button onClick={() => DefaultNavigate('/contact')}>
938
- * Contact Us
939
- * </button>
940
- * ```
941
- */
942
- declare const DefaultNavigate: (href: string) => void;
943
-
944
- /**
945
- * ExtraLink component for external and internal links in MDX content
946
- *
947
- * This component provides a consistent styled link experience across MDX documents
948
- * with support for custom Link implementations (e.g., Next.js Link, React Router Link)
949
- * and automatic styling with underline decoration.
950
- *
951
- * Features:
952
- * - Custom Link component support (defaults to standard anchor tag)
953
- * - Consistent underline styling with 4px offset
954
- * - Medium font weight for emphasis
955
- * - Customizable className for additional styling
956
- * - Full accessibility support via Link component
957
- *
958
- * @param props - Component props extending SharedLink and LinkComponent
959
- * @param props.Link - Custom Link component (defaults to DefaultLink/anchor)
960
- * @param props.href - Target URL for the link
961
- * @param props.target - Target attribute (_blank, _self, etc.)
962
- * @param props.className - Additional CSS classes to apply
963
- * @param props.children - Link text or child elements
964
- * @returns JSX element representing the styled link
965
- *
966
- * @example
967
- * ```tsx
968
- * // Basic usage in MDX
969
- * <ExtraLink href="https://example.com">
970
- * Visit Example
971
- * </ExtraLink>
972
- *
973
- * // With custom Link component (Next.js)
974
- * import NextLink from 'next/link';
975
- *
976
- * <ExtraLink Link={NextLink} href="/about">
977
- * About Us
978
- * </ExtraLink>
979
- *
980
- * // With target and custom styling
981
- * <ExtraLink
982
- * href="https://external.com"
983
- * target="_blank"
984
- * className="text-primary hover:text-primary-dark"
985
- * >
986
- * External Resource
987
- * </ExtraLink>
988
- * ```
989
- */
990
- declare function ExtraLink({ Link, href, target, className, children, }: SharedLink & ComponentProps<LinkComponentProps>): react_jsx_runtime.JSX.Element;
991
-
992
- /**
993
- * Video Component
994
- *
995
- * A styled video component that extends the native HTML video element
996
- * with consistent styling, responsive design, and automatic controls.
997
- * Perfect for embedding videos in MDX documentation or content.
27
+ * <Icons.Google className="w-6 h-6" />
998
28
  *
999
- * @param props - Standard HTML video element props
1000
- * @param props.className - Additional CSS classes to merge
1001
- * @returns JSX video element with enhanced styling
1002
- *
1003
- * @example
1004
- * ```tsx
1005
- * // Basic video with source
1006
- * <Video src="/videos/demo.mp4" />
1007
- *
1008
- * // Video with multiple sources
1009
- * <Video>
1010
- * <source src="/videos/demo.webm" type="video/webm" />
1011
- * <source src="/videos/demo.mp4" type="video/mp4" />
1012
- * Your browser does not support the video tag.
1013
- * </Video>
1014
- *
1015
- * // Custom styling
1016
- * <Video
1017
- * src="/videos/tutorial.mp4"
1018
- * className="max-w-md mx-auto"
1019
- * />
1020
- *
1021
- * // With additional attributes
1022
- * <Video
1023
- * src="/videos/background.mp4"
1024
- * autoPlay
1025
- * muted
1026
- * playsInline
1027
- * className="w-full h-64 object-cover"
29
+ * // With custom styling
30
+ * <Icons.Github
31
+ * className="w-8 h-8 text-gray-600 hover:text-gray-900"
32
+ * onClick={handleGitHubClick}
1028
33
  * />
1029
34
  *
1030
- * // In MDX content
1031
- * Here's a demonstration of the feature:
1032
- *
1033
- * <Video src="/demos/feature-walkthrough.mp4" />
1034
- * ```
1035
- */
1036
- declare function Video({ className, ...props }: ComponentProps<"video">): react_jsx_runtime.JSX.Element;
1037
-
1038
- /**
1039
- * Wrapper Component
1040
- *
1041
- * A decorative container component with gradient background and border styling.
1042
- * Features a radial gradient from blue with transparency and responsive design.
1043
- * Ideal for highlighting important content, callouts, or special sections in MDX.
1044
- *
1045
- * @param props - Component props
1046
- * @param props.children - Content to render inside the wrapper
1047
- * @param props.className - Additional CSS classes to merge
1048
- * @returns JSX element with styled wrapper container
1049
- *
1050
- * @example
1051
- * ```tsx
1052
- * // Basic content wrapper
1053
- * <Wrapper>
1054
- * <h3>Important Notice</h3>
1055
- * <p>This is highlighted content that stands out from the rest.</p>
1056
- * </Wrapper>
1057
- *
1058
- * // Custom styling
1059
- * <Wrapper className="my-8 text-center">
1060
- * <blockquote>
1061
- * "This is a featured quote or testimonial."
1062
- * </blockquote>
1063
- * </Wrapper>
1064
- *
1065
- * // Code example highlight
1066
- * <Wrapper>
1067
- * <h4>Pro Tip</h4>
1068
- * <p>Use this pattern for better performance:</p>
1069
- * <code>const memoizedValue = useMemo(() => expensiveCalculation(), [deps]);</code>
1070
- * </Wrapper>
1071
- *
1072
- * // In MDX content for callouts
1073
- * <Wrapper>
1074
- * **Warning:** This feature is experimental and may change in future versions.
1075
- * </Wrapper>
1076
- *
1077
- * // Multiple wrappers for different content types
1078
- * <div className="space-y-6">
1079
- * <Wrapper>
1080
- * <h3>Feature Highlight</h3>
1081
- * <p>New functionality description</p>
1082
- * </Wrapper>
1083
- * <Wrapper className="border-green-200 bg-green-50">
1084
- * <h3>Success Story</h3>
1085
- * <p>Customer testimonial</p>
1086
- * </Wrapper>
1087
- * </div>
35
+ * // Colorful variants
36
+ * <Icons.GoogleColorful className="w-10 h-10" />
37
+ * <Icons.FacebookColorful className="w-10 h-10" />
1088
38
  * ```
1089
39
  */
1090
- declare function Wrapper({ children, className }: BaseComponentProps): react_jsx_runtime.JSX.Element;
40
+ declare const Icons: {
41
+ Anthropic: (props: IconProps) => react_jsx_runtime.JSX.Element;
42
+ Apple: (props: IconProps) => react_jsx_runtime.JSX.Element;
43
+ Aria: (props: IconProps) => react_jsx_runtime.JSX.Element;
44
+ Discord: (props: IconProps) => react_jsx_runtime.JSX.Element;
45
+ Dropbox: (props: IconProps) => react_jsx_runtime.JSX.Element;
46
+ Facebook: (props: IconProps) => react_jsx_runtime.JSX.Element;
47
+ FacebookColorful: (props: IconProps) => react_jsx_runtime.JSX.Element;
48
+ Github: (props: IconProps) => react_jsx_runtime.JSX.Element;
49
+ Gitlab: (props: IconProps) => react_jsx_runtime.JSX.Element;
50
+ Google: (props: IconProps) => react_jsx_runtime.JSX.Element;
51
+ GoogleColorful: (props: IconProps) => react_jsx_runtime.JSX.Element;
52
+ Huggingface: (props: IconProps) => react_jsx_runtime.JSX.Element;
53
+ Instagram: (props: IconProps) => react_jsx_runtime.JSX.Element;
54
+ Kick: (props: IconProps) => react_jsx_runtime.JSX.Element;
55
+ Linear: (props: IconProps) => react_jsx_runtime.JSX.Element;
56
+ Linkedin: (props: IconProps) => react_jsx_runtime.JSX.Element;
57
+ LinkedinColorful: (props: IconProps) => react_jsx_runtime.JSX.Element;
58
+ Microsoft: (props: IconProps) => react_jsx_runtime.JSX.Element;
59
+ Nextjs: (props: IconProps) => react_jsx_runtime.JSX.Element;
60
+ Notion: (props: IconProps) => react_jsx_runtime.JSX.Element;
61
+ Npm: (props: IconProps) => react_jsx_runtime.JSX.Element;
62
+ Openai: (props: IconProps) => react_jsx_runtime.JSX.Element;
63
+ Paypal: (props: IconProps) => react_jsx_runtime.JSX.Element;
64
+ Pelatform: (props: IconProps) => react_jsx_runtime.JSX.Element;
65
+ Pnpm: (props: IconProps) => react_jsx_runtime.JSX.Element;
66
+ Postgresql: (props: IconProps) => react_jsx_runtime.JSX.Element;
67
+ Prisma: (props: IconProps) => react_jsx_runtime.JSX.Element;
68
+ Radix: (props: IconProps) => react_jsx_runtime.JSX.Element;
69
+ Radixui: (props: IconProps) => react_jsx_runtime.JSX.Element;
70
+ React: (props: IconProps) => react_jsx_runtime.JSX.Element;
71
+ Reddit: (props: IconProps) => react_jsx_runtime.JSX.Element;
72
+ Roblox: (props: IconProps) => react_jsx_runtime.JSX.Element;
73
+ Scira: (props: IconProps) => react_jsx_runtime.JSX.Element;
74
+ Scribble: (props: IconProps) => react_jsx_runtime.JSX.Element;
75
+ Slack: (props: IconProps) => react_jsx_runtime.JSX.Element;
76
+ Spotify: (props: IconProps) => react_jsx_runtime.JSX.Element;
77
+ Supabase: (props: IconProps) => react_jsx_runtime.JSX.Element;
78
+ Tailwind: (props: IconProps) => react_jsx_runtime.JSX.Element;
79
+ Telegram: (props: IconProps) => react_jsx_runtime.JSX.Element;
80
+ Tiktok: (props: IconProps) => react_jsx_runtime.JSX.Element;
81
+ Twitch: (props: IconProps) => react_jsx_runtime.JSX.Element;
82
+ Twitter: (props: IconProps) => react_jsx_runtime.JSX.Element;
83
+ Vk: (props: IconProps) => react_jsx_runtime.JSX.Element;
84
+ WhatsApp: (props: IconProps) => react_jsx_runtime.JSX.Element;
85
+ X: (props: IconProps) => react_jsx_runtime.JSX.Element;
86
+ Yarn: (props: IconProps) => react_jsx_runtime.JSX.Element;
87
+ Youtube: (props: IconProps) => react_jsx_runtime.JSX.Element;
88
+ Zoom: (props: IconProps) => react_jsx_runtime.JSX.Element;
89
+ };
1091
90
 
1092
91
  /**
1093
- * Youtube Component
1094
- * Embeds YouTube videos in MDX content with responsive design
1095
- * Features 16:9 aspect ratio and rounded corners for consistent styling
92
+ * Logo Component
93
+ * Displays the application logo as an SVG icon
94
+ * Supports theming through currentColor and customizable sizing
1096
95
  */
1097
96
  /**
1098
- * Youtube Component
97
+ * Logo Component
1099
98
  *
1100
- * Embeds YouTube videos using an iframe with responsive design and
1101
- * consistent styling. Automatically maintains 16:9 aspect ratio
1102
- * and includes proper accessibility attributes.
99
+ * Renders the application's logo as a scalable SVG icon.
100
+ * The logo uses currentColor for theming and can be customized
101
+ * with additional CSS classes for size and styling.
1103
102
  *
1104
103
  * @param props - Component props
1105
- * @param props.id - YouTube video ID (the part after 'v=' in YouTube URLs)
1106
- * @returns JSX iframe element for YouTube video embedding
104
+ * @param props.className - Additional CSS classes for styling
105
+ * @returns JSX element with the application logo
1107
106
  *
1108
107
  * @example
1109
108
  * ```tsx
1110
- * // Basic YouTube video embed
1111
- * <Youtube id="dQw4w9WgXcQ" />
1112
- *
1113
- * // Extract ID from YouTube URL
1114
- * // URL: https://www.youtube.com/watch?v=dQw4w9WgXcQ
1115
- * // ID: dQw4w9WgXcQ
1116
- * <Youtube id="dQw4w9WgXcQ" />
1117
- *
1118
- * // In MDX content
1119
- * Here's a tutorial video:
1120
- *
1121
- * <Youtube id="ScMzIvxBSi4" />
1122
- *
1123
- * // Multiple videos in sequence
1124
- * <div className="space-y-8">
1125
- * <div>
1126
- * <h3>Introduction</h3>
1127
- * <Youtube id="intro-video-id" />
1128
- * </div>
1129
- * <div>
1130
- * <h3>Advanced Tutorial</h3>
1131
- * <Youtube id="advanced-video-id" />
1132
- * </div>
1133
- * </div>
1134
- *
1135
- * // With surrounding content
1136
- * ## Video Tutorial
1137
- *
1138
- * Watch this comprehensive guide to get started:
1139
- *
1140
- * <Youtube id="tutorial-video-id" />
1141
- *
1142
- * After watching the video, you can proceed to the next section.
1143
- * ```
1144
- */
1145
- declare function Youtube({ id }: {
1146
- id: string;
1147
- }): react_jsx_runtime.JSX.Element;
1148
-
1149
- /**
1150
- * Props interface for the BackLink component
1151
- */
1152
- interface BackLinkProps extends SharedLink, BaseComponentProps {
1153
- /** URL to navigate back to */
1154
- href: string;
1155
- }
1156
- /**
1157
- * BackLink Component
1158
- *
1159
- * A navigation component that provides a styled back link with a chevron icon
1160
- * and smooth hover animations. Features a secondary button with icon and
1161
- * customizable link component support.
1162
- *
1163
- * @param props - Component props
1164
- * @param props.Link - Custom link component (defaults to DefaultLink)
1165
- * @param props.children - Text content for the back link
1166
- * @param props.href - Destination URL for the back navigation
1167
- * @param props.className - Additional CSS classes
1168
- * @returns JSX element with back navigation link
109
+ * // Basic logo
110
+ * <Logo />
1169
111
  *
1170
- * @example
1171
- * ```tsx
1172
- * // Basic back link
1173
- * <BackLink href="/dashboard">
1174
- * Back to Dashboard
1175
- * </BackLink>
112
+ * // Custom sized logo
113
+ * <Logo className="w-12 h-12" />
1176
114
  *
1177
- * // With custom Link component (Next.js)
1178
- * <BackLink Link={NextLink} href="/products">
1179
- * Back to Products
1180
- * </BackLink>
115
+ * // Colored logo
116
+ * <Logo className="text-blue-600 w-16 h-16" />
1181
117
  *
1182
- * // Custom styling
1183
- * <BackLink
1184
- * href="/settings"
1185
- * className="text-blue-600 hover:text-blue-800"
1186
- * >
1187
- * Back to Settings
1188
- * </BackLink>
1189
- *
1190
- * // In breadcrumb navigation
1191
- * <nav className="flex items-center space-x-2">
1192
- * <BackLink href="/docs">
1193
- * Documentation
1194
- * </BackLink>
1195
- * <span>/</span>
1196
- * <span>Current Page</span>
118
+ * // Logo in navigation
119
+ * <nav className="flex items-center space-x-4">
120
+ * <Logo className="w-8 h-8" />
121
+ * <span className="font-bold">App Name</span>
1197
122
  * </nav>
1198
123
  *
1199
- * // Dynamic back navigation
1200
- * function ProductDetail({ productId }: { productId: string }) {
1201
- * return (
1202
- * <div>
1203
- * <BackLink href={`/category/${categoryId}`}>
1204
- * Back to Category
1205
- * </BackLink>
1206
- * <h1>Product Details</h1>
124
+ * // Logo in header
125
+ * <header className="bg-white shadow-sm">
126
+ * <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
127
+ * <div className="flex justify-between items-center py-6">
128
+ * <Logo className="w-10 h-10 text-primary" />
1207
129
  * </div>
1208
- * );
1209
- * }
130
+ * </div>
131
+ * </header>
1210
132
  * ```
1211
133
  */
1212
- declare function BackLink({ Link, children, href, className }: BackLinkProps): react_jsx_runtime.JSX.Element;
134
+ declare function Logo({ className }: {
135
+ className?: string;
136
+ }): react_jsx_runtime.JSX.Element;
1213
137
 
1214
138
  /**
1215
- * Props interface for the CommandMenu component
1216
- * Extends DialogProps from Radix UI for full dialog customization
1217
- */
1218
- interface CommandMenuProps {
1219
- /** Child elements to render inside the command list (command items, groups, etc.) */
1220
- children: React$1.ReactNode;
1221
- /** Additional CSS classes for the trigger button */
1222
- classButton?: string;
1223
- /** Additional CSS classes for the command dialog */
1224
- classDialog?: string;
1225
- /** Text displayed on the search trigger button */
1226
- searchButtonText?: string;
1227
- /** Placeholder text for the command input field */
1228
- commandInputPlaceholder?: string;
1229
- /** Keyboard shortcut hint displayed on the button (e.g., "⌘K", "Ctrl+K") */
1230
- keyHint?: string;
1231
- }
1232
- /**
1233
- * CommandMenu Component
1234
- *
1235
- * A comprehensive command palette that provides users with quick access to application
1236
- * features through keyboard shortcuts and search. Automatically tracks user interactions
1237
- * for analytics and provides a responsive, accessible interface.
1238
- *
1239
- * The component listens for keyboard shortcuts (Cmd+K, Ctrl+K, /) and opens a dialog
1240
- * with a search input and command list. It intelligently avoids triggering when the
1241
- * user is typing in form fields or content-editable areas.
1242
- *
1243
- * @param props - Component props extending DialogProps
1244
- * @returns JSX element containing the command menu trigger and dialog
1245
- *
1246
- * @example
1247
- * ```tsx
1248
- * // Basic usage with command items
1249
- * <CommandMenu>
1250
- * <CommandGroup heading="Navigation">
1251
- * <CommandItem onSelect={() => router.push('/')}>
1252
- * <IconHome className="mr-2 h-4 w-4" />
1253
- * <span>Home</span>
1254
- * </CommandItem>
1255
- * <CommandItem onSelect={() => router.push('/dashboard')}>
1256
- * <IconDashboard className="mr-2 h-4 w-4" />
1257
- * <span>Dashboard</span>
1258
- * </CommandItem>
1259
- * </CommandGroup>
1260
- *
1261
- * <CommandGroup heading="Actions">
1262
- * <CommandItem onSelect={() => setTheme('dark')}>
1263
- * <IconMoon className="mr-2 h-4 w-4" />
1264
- * <span>Toggle Dark Mode</span>
1265
- * </CommandItem>
1266
- * </CommandGroup>
1267
- * </CommandMenu>
1268
- *
1269
- * // Custom styling and text
1270
- * <CommandMenu
1271
- * searchButtonText="Search commands..."
1272
- * commandInputPlaceholder="What would you like to do?"
1273
- * keyHint="⌘K"
1274
- * classButton="w-64 bg-gray-50"
1275
- * classDialog="max-w-2xl"
1276
- * >
1277
- * <CommandEmpty>No results found.</CommandEmpty>
1278
- * <CommandGroup heading="Quick Actions">
1279
- * <CommandItem onSelect={handleCreateNew}>
1280
- * <IconPlus className="mr-2 h-4 w-4" />
1281
- * <span>Create New Project</span>
1282
- * <CommandShortcut>⌘N</CommandShortcut>
1283
- * </CommandItem>
1284
- * </CommandGroup>
1285
- * </CommandMenu>
1286
- *
1287
- * // With search functionality
1288
- * <CommandMenu
1289
- * searchButtonText="Search docs..."
1290
- * commandInputPlaceholder="Search documentation..."
1291
- * >
1292
- * <CommandEmpty>No documentation found.</CommandEmpty>
1293
- * <CommandGroup heading="Documentation">
1294
- * {docs.map((doc) => (
1295
- * <CommandItem
1296
- * key={doc.id}
1297
- * onSelect={() => router.push(`/docs/${doc.slug}`)}
1298
- * >
1299
- * <IconBook className="mr-2 h-4 w-4" />
1300
- * <span>{doc.title}</span>
1301
- * </CommandItem>
1302
- * ))}
1303
- * </CommandGroup>
1304
- * </CommandMenu>
1305
- * ```
139
+ * Main Navigation Component
140
+ * Provides a responsive navigation menu with dropdown support, active state detection,
141
+ * and analytics tracking for user interactions
1306
142
  */
1307
- declare function CommandMenu({ children, classButton, classDialog, searchButtonText, commandInputPlaceholder, keyHint, ...props }: CommandMenuProps): react_jsx_runtime.JSX.Element;
1308
-
1309
143
  /**
1310
144
  * Interface defining the structure of a navigation item
1311
145
  */
@@ -1324,7 +158,7 @@ interface NavItem {
1324
158
  /**
1325
159
  * Props interface for the MainNav component
1326
160
  */
1327
- interface NavigationProps extends SharedLink {
161
+ interface NavigationProps {
1328
162
  /** Current pathname */
1329
163
  pathname: string;
1330
164
  /** Array of navigation items to display */
@@ -1382,7 +216,7 @@ interface NavigationProps extends SharedLink {
1382
216
  * <MainNav items={navItems} />
1383
217
  * ```
1384
218
  */
1385
- declare function MainNav({ Link, pathname, items, className }: NavigationProps): react_jsx_runtime.JSX.Element;
219
+ declare function MainNav({ pathname, items, className }: NavigationProps): react_jsx_runtime.JSX.Element;
1386
220
 
1387
221
  /**
1388
222
  * MobileNav Component
@@ -1433,17 +267,134 @@ declare function MainNav({ Link, pathname, items, className }: NavigationProps):
1433
267
  * <UserProfile />
1434
268
  * <ThemeToggle />
1435
269
  * </div>
1436
- * </MobileNav>
270
+ * </MobileNav>
271
+ * ```
272
+ */
273
+ declare function MobileNav({ children, className }: {
274
+ children: ReactNode;
275
+ className?: string;
276
+ }): react_jsx_runtime.JSX.Element;
277
+ interface MobileNavItemRendererProps {
278
+ item: NavItem;
279
+ pathname: string | null;
280
+ level: number;
281
+ onOpenChange: (open: boolean) => void;
282
+ }
283
+ declare function MobileNavItemRenderer({ item, pathname, level, onOpenChange, }: MobileNavItemRendererProps): react_jsx_runtime.JSX.Element;
284
+
285
+ /**
286
+ * SiteFooter Component
287
+ *
288
+ * A responsive footer component that provides consistent styling
289
+ * and layout for site-wide footer content. Features a top border,
290
+ * responsive padding, and flexible content arrangement.
291
+ *
292
+ * Features:
293
+ * - Responsive design (stacked on mobile, horizontal on desktop)
294
+ * - Consistent container width and padding
295
+ * - Top border for visual separation
296
+ * - Flexible content arrangement
297
+ * - Semantic footer element
298
+ *
299
+ * @param props - Component props
300
+ * @returns JSX element containing the site footer
301
+ *
302
+ * @example
303
+ * ```tsx
304
+ * // Basic usage with copyright and links
305
+ * <SiteFooter>
306
+ * <div className="flex flex-col items-center gap-4 md:flex-row">
307
+ * <p className="text-sm text-muted-foreground">
308
+ * © 2024 Your Company. All rights reserved.
309
+ * </p>
310
+ * <nav className="flex gap-4">
311
+ * <Link href="/privacy" className="text-sm hover:underline">
312
+ * Privacy Policy
313
+ * </Link>
314
+ * <Link href="/terms" className="text-sm hover:underline">
315
+ * Terms of Service
316
+ * </Link>
317
+ * </nav>
318
+ * </div>
319
+ * </SiteFooter>
320
+ *
321
+ * // With social links and newsletter
322
+ * <SiteFooter>
323
+ * <div className="text-sm text-muted-foreground">
324
+ * © 2024 Your Company
325
+ * </div>
326
+ * <div className="flex items-center gap-4">
327
+ * <SocialLinks />
328
+ * <NewsletterSignup />
329
+ * </div>
330
+ * </SiteFooter>
331
+ *
332
+ * // Custom styling
333
+ * <SiteFooter className="bg-gray-50 dark:bg-gray-900">
334
+ * <FooterContent />
335
+ * </SiteFooter>
336
+ * ```
337
+ */
338
+ declare function SiteFooter({ children, className }: {
339
+ children: ReactNode;
340
+ className?: string;
341
+ }): react_jsx_runtime.JSX.Element;
342
+
343
+ /**
344
+ * SiteHeader Component
345
+ *
346
+ * A sticky header component with modern styling including backdrop blur,
347
+ * semi-transparent background, and responsive design. Positioned at the
348
+ * top of the viewport with high z-index for proper layering.
349
+ *
350
+ * Features:
351
+ * - Sticky positioning at top of viewport
352
+ * - Backdrop blur effect for modern appearance
353
+ * - Semi-transparent background with fallback
354
+ * - Bottom border for visual separation
355
+ * - Responsive container with consistent spacing
356
+ * - High z-index for proper layering
357
+ * - Dark mode support
358
+ *
359
+ * @param props - Component props
360
+ * @returns JSX element containing the site header
361
+ *
362
+ * @example
363
+ * ```tsx
364
+ * // Basic usage with logo and navigation
365
+ * <SiteHeader>
366
+ * <div className="flex items-center gap-4">
367
+ * <Logo />
368
+ * <MainNav items={navItems} />
369
+ * </div>
370
+ * <div className="flex items-center gap-2">
371
+ * <ThemeToggle />
372
+ * <UserMenu />
373
+ * </div>
374
+ * </SiteHeader>
375
+ *
376
+ * // With mobile navigation
377
+ * <SiteHeader>
378
+ * <div className="flex items-center gap-4">
379
+ * <MobileNav>
380
+ * <MobileNavItems />
381
+ * </MobileNav>
382
+ * <Logo />
383
+ * <MainNav items={navItems} className="hidden md:flex" />
384
+ * </div>
385
+ * <HeaderActions />
386
+ * </SiteHeader>
387
+ *
388
+ * // Custom styling
389
+ * <SiteHeader className="bg-white/80 border-gray-200">
390
+ * <HeaderContent />
391
+ * </SiteHeader>
1437
392
  * ```
1438
393
  */
1439
- declare function MobileNav({ children, className }: BaseComponentProps): react_jsx_runtime.JSX.Element;
1440
- interface MobileNavItemRendererProps extends SharedLink, SharedNavigate {
1441
- item: NavItem;
1442
- pathname: string | null;
1443
- level: number;
1444
- onOpenChange: (open: boolean) => void;
1445
- }
1446
- declare function MobileNavItemRenderer({ Link, navigate, item, pathname, level, onOpenChange, }: MobileNavItemRendererProps): react_jsx_runtime.JSX.Element;
394
+ declare function SiteHeader({ children, className }: {
395
+ children: ReactNode;
396
+ className?: string;
397
+ }): react_jsx_runtime.JSX.Element;
1447
398
 
1448
399
  /**
1449
400
  * React Query provider component with optimized configuration
@@ -1551,702 +502,234 @@ interface ThemeProviderProps extends React$1.ComponentProps<typeof ThemeProvider
1551
502
  declare function ThemeProvider({ children, ...props }: ThemeProviderProps): react_jsx_runtime.JSX.Element;
1552
503
 
1553
504
  /**
1554
- * Props interface for the Announcement component
505
+ * Configuration options for the alert toast notification
1555
506
  */
1556
- type AnnouncementProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof badgeVariants> & {
1557
- /** Whether to apply themed styling with special background treatment */
1558
- themed?: boolean;
1559
- };
507
+ interface AlertToastOptions {
508
+ /** Custom message to display in the toast */
509
+ message?: string;
510
+ /** Icon variant to display in the alert - determines which icon is shown */
511
+ icon?: "primary" | "destructive" | "success" | "info" | "warning";
512
+ /** Visual variant of the alert component - affects styling and colors */
513
+ variant?: ComponentProps<typeof Alert>["variant"];
514
+ }
1560
515
  /**
1561
- * Announcement Component
1562
- *
1563
- * A styled badge component for displaying announcements, notifications,
1564
- * and promotional content. Features rounded design with hover effects
1565
- * and optional themed styling.
516
+ * Creates and displays a customizable alert toast notification
1566
517
  *
1567
- * @param props - Component props
1568
- * @param props.variant - Badge variant style (default: 'outline')
1569
- * @param props.themed - Whether to apply themed styling
1570
- * @param props.className - Additional CSS classes
1571
- * @returns JSX element with announcement badge
518
+ * @param options - Configuration options for the toast
519
+ * @param options.message - The message to display (default: 'This is a toast')
520
+ * @param options.icon - The icon variant to show (default: 'success')
521
+ * @param options.variant - The visual style variant (default: 'default')
1572
522
  *
1573
523
  * @example
1574
524
  * ```tsx
1575
- * // Basic announcement
1576
- * <Announcement>
1577
- * New feature available!
1578
- * </Announcement>
1579
- *
1580
- * // Themed announcement with tag
1581
- * <Announcement themed variant="secondary">
1582
- * <AnnouncementTag>NEW</AnnouncementTag>
1583
- * <AnnouncementTitle>
1584
- * Product Update v2.0
1585
- * </AnnouncementTitle>
1586
- * </Announcement>
1587
- *
1588
- * // Custom styled announcement
1589
- * <Announcement
1590
- * variant="destructive"
1591
- * className="border-red-500"
1592
- * >
1593
- * Important Notice
1594
- * </Announcement>
1595
- * ```
1596
- */
1597
- declare const Announcement: ({ variant, themed, className, ...props }: AnnouncementProps) => react_jsx_runtime.JSX.Element;
1598
- /**
1599
- * Props interface for the AnnouncementTag component
1600
- */
1601
- type AnnouncementTagProps = HTMLAttributes<HTMLDivElement>;
1602
- /**
1603
- * AnnouncementTag Component
1604
- *
1605
- * A small tag component designed to be used within announcements
1606
- * to highlight categories, status, or importance levels.
1607
- *
1608
- * @param props - Component props
1609
- * @param props.className - Additional CSS classes
1610
- * @returns JSX element with announcement tag
525
+ * // Show a success message
526
+ * AlertToast({ message: 'Data saved successfully!' });
1611
527
  *
1612
- * @example
1613
- * ```tsx
1614
- * <Announcement>
1615
- * <AnnouncementTag>BETA</AnnouncementTag>
1616
- * <AnnouncementTitle>New Dashboard</AnnouncementTitle>
1617
- * </Announcement>
528
+ * // Show an error message
529
+ * AlertToast({
530
+ * message: 'Failed to save data',
531
+ * icon: 'destructive',
532
+ * variant: 'destructive'
533
+ * });
1618
534
  * ```
1619
535
  */
1620
- declare const AnnouncementTag: ({ className, ...props }: AnnouncementTagProps) => react_jsx_runtime.JSX.Element;
1621
- /**
1622
- * Props interface for the AnnouncementTitle component
1623
- */
1624
- type AnnouncementTitleProps = HTMLAttributes<HTMLDivElement>;
536
+ declare function AlertToast({ message, icon, variant, }: AlertToastOptions): void;
1625
537
  /**
1626
- * AnnouncementTitle Component
538
+ * Alert Notification Component
1627
539
  *
1628
- * A title component designed for use within announcements,
1629
- * providing proper spacing and alignment for announcement content.
540
+ * Renders a static alert notification with appropriate icon and styling
541
+ * based on the variant. This component is used for displaying persistent
542
+ * alerts that don't auto-dismiss like toast notifications.
1630
543
  *
1631
544
  * @param props - Component props
1632
- * @param props.className - Additional CSS classes
1633
- * @returns JSX element with announcement title
1634
- *
1635
- * @example
1636
- * ```tsx
1637
- * <Announcement>
1638
- * <AnnouncementTag>UPDATE</AnnouncementTag>
1639
- * <AnnouncementTitle>
1640
- * System Maintenance Scheduled
1641
- * </AnnouncementTitle>
1642
- * </Announcement>
1643
- * ```
1644
- */
1645
- declare const AnnouncementTitle: ({ className, ...props }: AnnouncementTitleProps) => react_jsx_runtime.JSX.Element;
1646
-
1647
- /**
1648
- * Background Paths Components
1649
- * Provides animated SVG path backgrounds with motion effects
1650
- * Perfect for creating dynamic visual backgrounds and decorative elements
1651
- */
1652
- /**
1653
- * FloatingPaths Component
1654
- *
1655
- * Creates animated floating SVG paths with customizable position and color.
1656
- * Features smooth animations with varying opacity and path lengths for
1657
- * a dynamic background effect.
545
+ * @param props.message - The message to display in the alert
546
+ * @param props.variant - The visual style variant (default: 'info')
1658
547
  *
1659
- * @param props - Component props
1660
- * @param props.position - Position multiplier for path positioning (affects curve placement)
1661
- * @param props.color - CSS color class for the paths (default: 'text-slate-950 dark:text-white')
1662
- * @returns JSX element with animated SVG paths
548
+ * @returns JSX element or null if no message is provided
1663
549
  *
1664
550
  * @example
1665
551
  * ```tsx
1666
- * // Basic floating paths
1667
- * <FloatingPaths position={1} />
552
+ * // Basic info alert
553
+ * <AlertNotification message="Please verify your email address" />
1668
554
  *
1669
- * // Custom colored paths
1670
- * <FloatingPaths
1671
- * position={2}
1672
- * color="text-blue-500 dark:text-blue-300"
555
+ * // Error alert
556
+ * <AlertNotification
557
+ * message="Failed to load data"
558
+ * variant="destructive"
1673
559
  * />
1674
560
  *
1675
- * // Multiple layers with different positions
1676
- * <div className="relative">
1677
- * <FloatingPaths position={1} color="text-gray-300" />
1678
- * <FloatingPaths position={2} color="text-gray-400" />
1679
- * <FloatingPaths position={3} color="text-gray-500" />
1680
- * </div>
1681
- *
1682
- * // In a hero section
1683
- * <section className="relative min-h-screen">
1684
- * <FloatingPaths position={1.5} />
1685
- * <div className="relative z-10">
1686
- * <h1>Your Content Here</h1>
1687
- * </div>
1688
- * </section>
1689
- * ```
1690
- */
1691
- declare function FloatingPaths({ position, color, }: {
1692
- position: number;
1693
- color?: string;
1694
- }): react_jsx_runtime.JSX.Element;
1695
- /**
1696
- * BackgroundPaths Component
1697
- *
1698
- * A simplified wrapper around FloatingPaths with a fixed position,
1699
- * providing an easy way to add animated background paths to any container.
1700
- *
1701
- * @param props - Component props
1702
- * @param props.color - CSS color class for the paths (default: 'text-slate-950 dark:text-white')
1703
- * @returns JSX element with animated background paths
1704
- *
1705
- * @example
1706
- * ```tsx
1707
- * // Basic background paths
1708
- * <div className="relative">
1709
- * <BackgroundPaths />
1710
- * <div className="relative z-10">
1711
- * Your content here
1712
- * </div>
1713
- * </div>
1714
- *
1715
- * // Custom colored background
1716
- * <BackgroundPaths color="text-purple-500 dark:text-purple-300" />
1717
- *
1718
- * // In a card component
1719
- * <div className="relative p-6 bg-white rounded-lg shadow-lg">
1720
- * <BackgroundPaths color="text-gray-100" />
1721
- * <div className="relative z-10">
1722
- * <h2>Card Title</h2>
1723
- * <p>Card content...</p>
1724
- * </div>
1725
- * </div>
1726
- * ```
1727
- */
1728
- declare function BackgroundPaths({ color }: {
1729
- color?: string;
1730
- }): react_jsx_runtime.JSX.Element;
1731
-
1732
- /**
1733
- * Props interface for the Book component
1734
- */
1735
- interface BookProps {
1736
- /** Content to display inside the book */
1737
- children: React__default.ReactNode;
1738
- /** Book cover color (default: '#f50537') */
1739
- color?: string;
1740
- /** Text color for book content */
1741
- textColor?: string;
1742
- /** Whether to apply texture effects */
1743
- texture?: boolean;
1744
- /** Book depth in container query width units */
1745
- depth?: number;
1746
- /** Book variant style (default: 'default') */
1747
- variant?: "default" | "simple";
1748
- /** Optional illustration to display on the book */
1749
- illustration?: React__default.ReactNode;
1750
- /** Book width in pixels (default: 196) */
1751
- width?: number;
1752
- }
1753
- /**
1754
- * Book Component
1755
- *
1756
- * A 3D book component with hover animations and customizable styling.
1757
- * Features perspective transforms, shadow effects, and flexible content layout.
1758
- *
1759
- * @param props - Component props
1760
- * @returns JSX element with 3D book appearance
1761
- *
1762
- * @example
1763
- * ```tsx
1764
- * // Basic book
1765
- * <Book>
1766
- * <h3>Book Title</h3>
1767
- * <p>Book description...</p>
1768
- * </Book>
1769
- *
1770
- * // Customized book
1771
- * <Book
1772
- * color="#3b82f6"
1773
- * textColor="#ffffff"
1774
- * width={240}
1775
- * depth={6}
1776
- * >
1777
- * <div className="p-4">
1778
- * <h2>Custom Book</h2>
1779
- * <p>Custom content</p>
1780
- * </div>
1781
- * </Book>
1782
- *
1783
- * // Simple variant with illustration
1784
- * <Book
1785
- * variant="simple"
1786
- * illustration={<BookIcon />}
1787
- * >
1788
- * Simple book content
1789
- * </Book>
1790
- *
1791
- * // Book gallery
1792
- * <div className="flex gap-4">
1793
- * <Book color="#ef4444">Red Book</Book>
1794
- * <Book color="#10b981">Green Book</Book>
1795
- * <Book color="#8b5cf6">Purple Book</Book>
1796
- * </div>
1797
- * ```
1798
- */
1799
- declare function Book(props: BookProps): react_jsx_runtime.JSX.Element;
1800
- type FlexAlignItems = "stretch" | "start" | "end" | "center";
1801
- type FlexJustifyContent = "stretch" | "start" | "end" | "space-between" | "space-around" | "space-evenly" | "center";
1802
- interface StackProps extends React__default.ComponentProps<"div"> {
1803
- children: React__default.ReactNode;
1804
- direction?: "column" | "row";
1805
- align?: FlexAlignItems;
1806
- justify?: FlexJustifyContent;
1807
- gap?: number;
1808
- padding?: number;
1809
- grow?: boolean;
1810
- shrink?: boolean;
1811
- wrap?: boolean;
1812
- className?: string;
1813
- }
1814
- declare function Stack(props: StackProps): react_jsx_runtime.JSX.Element;
1815
-
1816
- /**
1817
- * DotsPattern Component
1818
- * Creates a customizable dots pattern background using SVG
1819
- * Perfect for adding subtle texture and visual interest to backgrounds
1820
- */
1821
- /**
1822
- * DotsPattern Component
1823
- *
1824
- * Generates an SVG-based dots pattern that can be used as a background element.
1825
- * Features customizable dot size, spacing, and positioning with automatic
1826
- * pattern generation using unique IDs.
1827
- *
1828
- * @param props - Component props
1829
- * @param props.dotSize - Size of each dot in pixels (default: 2)
1830
- * @param props.gapSize - Space between dots in pixels (default: 10)
1831
- * @param props.patternOffset - X and Y offset for pattern positioning (default: [0, 0])
1832
- * @param props.className - Additional CSS classes
1833
- * @returns JSX element with SVG dots pattern
1834
- *
1835
- * @example
1836
- * ```tsx
1837
- * // Basic dots pattern
1838
- * <div className="relative h-64 bg-gray-50">
1839
- * <DotsPattern />
1840
- * <div className="relative z-10 p-4">
1841
- * Content over dots pattern
1842
- * </div>
1843
- * </div>
1844
- *
1845
- * // Customized dots pattern
1846
- * <DotsPattern
1847
- * dotSize={3}
1848
- * gapSize={15}
1849
- * className="text-blue-500/20"
561
+ * // Success alert
562
+ * <AlertNotification
563
+ * message="Profile updated successfully"
564
+ * variant="success"
1850
565
  * />
1851
566
  *
1852
- * // Offset pattern
1853
- * <DotsPattern
1854
- * patternOffset={[5, 5]}
1855
- * dotSize={1}
1856
- * gapSize={8}
567
+ * // Warning alert
568
+ * <AlertNotification
569
+ * message="Your session will expire soon"
570
+ * variant="warning"
1857
571
  * />
1858
- *
1859
- * // Hero section with dots background
1860
- * <section className="relative min-h-screen bg-white">
1861
- * <DotsPattern
1862
- * dotSize={2}
1863
- * gapSize={12}
1864
- * className="text-gray-300"
1865
- * />
1866
- * <div className="relative z-10 flex items-center justify-center min-h-screen">
1867
- * <h1>Hero Content</h1>
1868
- * </div>
1869
- * </section>
1870
- *
1871
- * // Card with dots pattern
1872
- * <div className="relative p-6 bg-white rounded-lg shadow-lg overflow-hidden">
1873
- * <DotsPattern
1874
- * dotSize={1}
1875
- * gapSize={6}
1876
- * className="text-gray-100"
1877
- * />
1878
- * <div className="relative z-10">
1879
- * <h3>Card Title</h3>
1880
- * <p>Card content...</p>
1881
- * </div>
1882
- * </div>
1883
572
  * ```
1884
573
  */
1885
- declare function DotsPattern({ dotSize, gapSize, patternOffset, className, }: {
1886
- dotSize?: number;
1887
- gapSize?: number;
1888
- patternOffset?: [number, number];
1889
- className?: string;
1890
- }): react_jsx_runtime.JSX.Element;
1891
-
1892
- /**
1893
- * Grid Background Component
1894
- * Creates a customizable grid background with vertical lines and dots pattern
1895
- * Perfect for adding structured visual backgrounds to layouts and sections
1896
- */
1897
-
1898
- /**
1899
- * Props interface for the GridBackground component
1900
- */
1901
- interface GridBackgroundProps {
1902
- /** Number of grid columns to display (default: 4) */
1903
- columns?: number;
1904
- /** Additional CSS classes for styling */
1905
- className?: string;
1906
- /** CSS class for maximum width container (default: 'grid-container') */
1907
- maxWidthClass?: string;
1908
- }
574
+ declare function AlertNotification({ message, variant }: AlertToastOptions): react_jsx_runtime.JSX.Element | null;
1909
575
  /**
1910
- * GridBackground Component
576
+ * Displays a standardized "coming soon" toast notification
1911
577
  *
1912
- * Creates a customizable grid background with vertical lines and dots pattern.
1913
- * Features configurable column count and styling options for creating
1914
- * structured visual backgrounds.
578
+ * This function creates a consistent user experience for features that are
579
+ * not yet implemented. It uses a custom toast with alert styling to inform
580
+ * users that the feature they're trying to access is under development.
1915
581
  *
1916
- * @param props - Component props
1917
- * @param props.columns - Number of grid columns to display
1918
- * @param props.className - Additional CSS classes for styling
1919
- * @param props.maxWidthClass - CSS class for maximum width container
1920
- * @returns JSX element with grid background pattern
582
+ * @param options - Configuration options for the toast appearance and message
1921
583
  *
1922
584
  * @example
1923
585
  * ```tsx
1924
- * // Basic grid background
1925
- * <div className="relative">
1926
- * <GridBackground />
1927
- * <div className="relative z-10">Content over grid</div>
1928
- * </div>
1929
- *
1930
- * // Custom column count
1931
- * <GridBackground columns={6} />
1932
- *
1933
- * // With custom styling
1934
- * <GridBackground
1935
- * columns={3}
1936
- * className="opacity-50"
1937
- * maxWidthClass="max-w-6xl"
1938
- * />
1939
- * ```
1940
- */
1941
- declare const GridBackground: FC<GridBackgroundProps>;
1942
-
1943
- /**
1944
- * Props interface for HexagonBadge component
1945
- */
1946
- interface HexagonBadgeProps {
1947
- /** Content to be displayed inside the hexagon badge */
1948
- children?: ReactNode;
1949
- /** Custom class names for different parts of the component */
1950
- classNames?: {
1951
- /** Class name for the base container element */
1952
- base?: string;
1953
- /** Class name for the SVG hexagon shape */
1954
- svg?: string;
1955
- /** Class name for the content wrapper (note: typo 'wraper' kept for backward compatibility) */
1956
- wraper?: string;
1957
- };
1958
- }
1959
- /**
1960
- * HexagonBadge component
1961
- *
1962
- * Creates a hexagon-shaped badge container using SVG for the border shape.
1963
- * The hexagon provides a distinctive visual element for displaying icons,
1964
- * status indicators, or small pieces of content.
1965
- *
1966
- * Features:
1967
- * - SVG-based hexagon shape with fill and stroke
1968
- * - Perfectly centered content using absolute positioning
1969
- * - Customizable styling via classNames prop
1970
- * - RTL (right-to-left) layout support
1971
- * - Responsive sizing based on container
1972
- *
1973
- * The component uses a 44x48 viewBox for the SVG hexagon and automatically
1974
- * centers the content within the hexagonal boundary.
586
+ * // Basic usage with default message
587
+ * AlertComingsoon();
1975
588
  *
1976
- * @param props - Component props
1977
- * @param props.children - Content to display inside the hexagon (icons, text, etc.)
1978
- * @param props.classNames - Object containing custom class names for styling
1979
- * @param props.classNames.base - Classes for the outer container
1980
- * @param props.classNames.svg - Classes for the SVG hexagon element
1981
- * @param props.classNames.wraper - Classes for the content wrapper element
1982
- * @returns JSX element representing the hexagon badge
589
+ * // Custom message with warning variant
590
+ * AlertComingsoon({
591
+ * message: 'Advanced analytics coming in Q2 2024',
592
+ * icon: 'warning',
593
+ * variant: 'warning'
594
+ * });
1983
595
  *
1984
- * @example
1985
- * ```tsx
1986
- * // Basic usage with an icon
1987
- * <HexagonBadge>
1988
- * <StarIcon className="w-6 h-6" />
1989
- * </HexagonBadge>
596
+ * // Success variant for positive messaging
597
+ * AlertComingsoon({
598
+ * message: 'New dashboard features are on the way!',
599
+ * icon: 'success',
600
+ * variant: 'success'
601
+ * });
1990
602
  *
1991
- * // With custom styling
1992
- * <HexagonBadge
1993
- * classNames={{
1994
- * base: 'w-16 h-16',
1995
- * svg: 'text-primary fill-primary/10',
1996
- * wraper: 'text-white'
1997
- * }}
1998
- * >
1999
- * <span className="font-bold">A</span>
2000
- * </HexagonBadge>
2001
- *
2002
- * // As a status badge
2003
- * <HexagonBadge
2004
- * classNames={{
2005
- * svg: 'text-green-500 fill-green-50'
2006
- * }}
2007
- * >
2008
- * <CheckIcon />
2009
- * </HexagonBadge>
603
+ * // Use in event handlers
604
+ * const handlePremiumFeature = () => {
605
+ * AlertComingsoon({
606
+ * message: 'Premium features available soon',
607
+ * icon: 'info',
608
+ * variant: 'info'
609
+ * });
610
+ * };
2010
611
  * ```
2011
612
  */
2012
- declare const HexagonBadge: ({ children, classNames }: HexagonBadgeProps) => react_jsx_runtime.JSX.Element;
2013
-
2014
- /**
2015
- * Image Input Component
2016
- * Provides a comprehensive image upload solution with drag-and-drop support,
2017
- * multiple file selection, preview generation, and file management capabilities
2018
- */
613
+ declare const AlertComingsoon: ({ message, variant, }?: AlertToastOptions) => void;
2019
614
 
2020
615
  /**
2021
- * Interface representing a single image file with metadata
2022
- */
2023
- interface ImageInputFile {
2024
- /** Base64 data URL of the image for preview */
2025
- dataURL?: string;
2026
- /** Original File object */
2027
- file?: File;
2028
- /** Additional custom properties */
2029
- [key: string]: unknown;
2030
- }
2031
- /**
2032
- * Type representing an array of image files
2033
- */
2034
- type ImageInputFiles = ImageInputFile[];
2035
- /**
2036
- * Props interface for the ImageInput component
2037
- */
2038
- interface ImageInputProps {
2039
- /** Current array of image files */
2040
- value: ImageInputFiles;
2041
- /** Callback when files change, includes updated file indices */
2042
- onChange: (value: ImageInputFiles, addUpdatedIndex?: number[]) => void;
2043
- /** Render prop function that receives image input controls */
2044
- children?: (props: ImageInputExport) => ReactNode;
2045
- /** Whether to allow multiple file selection */
2046
- multiple?: boolean;
2047
- /** Maximum number of files allowed (not implemented in current version) */
2048
- maxNumber?: number;
2049
- /** Array of accepted file extensions (without dots) */
2050
- acceptType?: string[];
2051
- /** Key name for the data URL property in file objects */
2052
- dataURLKey?: string;
2053
- /** Additional props to pass to the hidden input element */
2054
- inputProps?: React__default.HTMLProps<HTMLInputElement>;
2055
- }
2056
- /**
2057
- * Interface for the object passed to the children render prop
2058
- * Contains all necessary functions and state for image management
2059
- */
2060
- interface ImageInputExport {
2061
- /** Current list of image files */
2062
- fileList: ImageInputFiles;
2063
- /** Function to trigger file selection dialog */
2064
- onImageUpload: () => void;
2065
- /** Function to remove all images */
2066
- onImageRemoveAll: () => void;
2067
- /** Function to update/replace an image at specific index */
2068
- onImageUpdate: (index: number) => void;
2069
- /** Function to remove an image at specific index */
2070
- onImageRemove: (index: number) => void;
2071
- /** Whether drag operation is currently active */
2072
- isDragging: boolean;
2073
- /** Drag and drop event handlers */
2074
- dragProps: {
2075
- onDrop: (e: DragEvent<HTMLDivElement>) => void;
2076
- onDragEnter: (e: DragEvent<HTMLDivElement>) => void;
2077
- onDragLeave: (e: DragEvent<HTMLDivElement>) => void;
2078
- onDragOver: (e: DragEvent<HTMLDivElement>) => void;
2079
- onDragStart: (e: DragEvent<HTMLDivElement>) => void;
2080
- };
2081
- }
2082
- /** Default index value indicating no selection */
2083
- declare const DEFAULT_NULL_INDEX = -1;
2084
- /** Default key name for storing data URL in file objects */
2085
- declare const DEFAULT_DATA_URL_KEY = "dataURL";
2086
- /**
2087
- * Utility Functions for Image Input Component
2088
- */
2089
- /**
2090
- * Programmatically opens the file selection dialog
2091
- *
2092
- * @param inputRef - Reference to the hidden input element
2093
- *
2094
- * @example
2095
- * ```tsx
2096
- * const inputRef = useRef<HTMLInputElement>(null);
2097
- *
2098
- * const handleUploadClick = () => {
2099
- * openFileDialog(inputRef);
2100
- * };
2101
- * ```
616
+ * Coming Soon Component
617
+ * Displays a full-height section with an animated hover background and
618
+ * optional title and description. Ideal for placeholder pages or upcoming
619
+ * feature announcements.
2102
620
  */
2103
- declare const openFileDialog: (inputRef: RefObject<HTMLInputElement | null>) => void;
2104
621
  /**
2105
- * Generates the accept attribute string for file input
2106
- *
2107
- * @param acceptType - Array of file extensions without dots
2108
- * @param allowNonImageType - Whether to allow non-image files
2109
- * @returns Accept attribute string for input element
2110
- *
2111
- * @example
2112
- * ```tsx
2113
- * getAcceptTypeString(['jpg', 'png']); // '.jpg, .png'
2114
- * getAcceptTypeString(); // 'image/*'
2115
- * getAcceptTypeString([], true); // ''
2116
- * ```
622
+ * Props interface for the `ComingSoon` component
2117
623
  */
2118
- declare const getAcceptTypeString: (acceptType?: string[], allowNonImageType?: boolean) => string;
624
+ interface ComingSoonProps {
625
+ /** Additional CSS classes for the wrapper */
626
+ className?: string;
627
+ /** Optional highlighted title text */
628
+ title?: string;
629
+ /** Optional descriptive text below the title */
630
+ description?: string;
631
+ }
2119
632
  /**
2120
- * Converts a File object to a base64 data URL string
633
+ * ComingSoon Component
634
+ *
635
+ * Renders a full-height container with animated hover background objects
636
+ * and optional title/description content centered on the screen.
2121
637
  *
2122
- * @param file - The file to convert
2123
- * @returns Promise resolving to base64 data URL
638
+ * @param props - Component props
639
+ * @returns JSX element containing the coming soon layout
2124
640
  *
2125
641
  * @example
2126
642
  * ```tsx
2127
- * const file = new File([''], 'image.jpg', { type: 'image/jpeg' });
2128
- * const dataURL = await getBase64(file);
2129
- * console.log(dataURL); // 'data:image/jpeg;base64,/9j/4AAQ...'
643
+ * <ComingSoon title="Coming Soon" description="We are cooking something nice." />
2130
644
  * ```
2131
645
  */
2132
- declare const getBase64: (file: File) => Promise<string>;
646
+ declare function ComingSoon({ className, title, description }: ComingSoonProps): react_jsx_runtime.JSX.Element;
647
+
2133
648
  /**
2134
- * Creates an HTMLImageElement from a File object
2135
- * Useful for getting image dimensions or other metadata
2136
- *
2137
- * @param file - The image file to load
2138
- * @returns Promise resolving to HTMLImageElement
2139
- *
2140
- * @example
2141
- * ```tsx
2142
- * const file = new File([''], 'image.jpg', { type: 'image/jpeg' });
2143
- * const image = await getImage(file);
2144
- * console.log(`Dimensions: ${image.width}x${image.height}`);
2145
- * ```
649
+ * Confirm Dismiss Dialog Component
650
+ * Provides a reusable confirmation dialog for destructive actions like discarding changes
651
+ * Built on top of AlertDialog with customizable content and actions
2146
652
  */
2147
- declare const getImage: (file: File) => Promise<HTMLImageElement>;
2148
653
  /**
2149
- * Converts a FileList to an array of ImageInputFile objects
2150
- * Each file is converted to base64 for preview purposes
2151
- *
2152
- * @param files - FileList from input or drag event
2153
- * @param dataURLKey - Key name for storing the data URL
2154
- * @returns Promise resolving to array of ImageInputFile objects
2155
- *
2156
- * @example
2157
- * ```tsx
2158
- * const handleFileChange = async (e: ChangeEvent<HTMLInputElement>) => {
2159
- * if (e.target.files) {
2160
- * const imageFiles = await getListFiles(e.target.files, 'dataURL');
2161
- * setImages(imageFiles);
2162
- * }
2163
- * };
2164
- * ```
654
+ * Props interface for the ConfirmDismissDialog component
2165
655
  */
2166
- declare const getListFiles: (files: FileList, dataURLKey: string) => Promise<ImageInputFiles>;
656
+ interface ConfirmDismissDialogProps {
657
+ /** Whether the dialog is open */
658
+ open: boolean;
659
+ /** Callback to handle dialog open state changes */
660
+ onOpenChange: (open: boolean) => void;
661
+ /** Callback executed when user confirms the action */
662
+ onConfirm: () => void;
663
+ /** Optional callback executed when user cancels (defaults to closing dialog) */
664
+ onCancel?: () => void;
665
+ /** Dialog title text (defaults to "Discard changes?") */
666
+ title?: string;
667
+ /** Dialog description text (defaults to unsaved changes message) */
668
+ description?: string;
669
+ /** Confirm button text (defaults to "Discard changes") */
670
+ confirmText?: string;
671
+ /** Cancel button text (defaults to "Cancel") */
672
+ cancelText?: string;
673
+ /** CSS class for maximum width (defaults to "md:max-w-[375px]") */
674
+ maxWidth?: string;
675
+ }
2167
676
  /**
2168
- * ImageInput Component
677
+ * Reusable confirmation dialog for destructive actions
2169
678
  *
2170
- * A comprehensive image upload component with drag-and-drop support,
2171
- * multiple file selection, and file management capabilities.
2172
- * Uses render props pattern for maximum flexibility in UI implementation.
679
+ * This component provides a standardized way to confirm destructive actions
680
+ * like discarding unsaved changes, deleting items, or leaving forms.
681
+ * It includes customizable text and handles both confirm and cancel actions.
2173
682
  *
2174
- * @param props - Component props
2175
- * @returns JSX element containing hidden input and render prop children
683
+ * @param props - Component props for dialog configuration
684
+ * @returns JSX element containing the confirmation dialog
2176
685
  *
2177
686
  * @example
2178
687
  * ```tsx
2179
- * // Basic single image upload
2180
- * function SingleImageUpload() {
2181
- * const [images, setImages] = useState<ImageInputFiles>([]);
2182
- *
2183
- * return (
2184
- * <ImageInput
2185
- * value={images}
2186
- * onChange={setImages}
2187
- * acceptType={['jpg', 'png', 'gif']}
2188
- * >
2189
- * {({ fileList, onImageUpload, onImageRemove, isDragging, dragProps }) => (
2190
- * <div
2191
- * {...dragProps}
2192
- * className={`border-2 border-dashed p-4 ${
2193
- * isDragging ? 'border-blue-500 bg-blue-50' : 'border-gray-300'
2194
- * }`}
2195
- * >
2196
- * {fileList.length === 0 ? (
2197
- * <button onClick={onImageUpload}>
2198
- * Click or drag image here
2199
- * </button>
2200
- * ) : (
2201
- * <div>
2202
- * <img src={fileList[0].dataURL} alt="Preview" />
2203
- * <button onClick={() => onImageRemove(0)}>Remove</button>
2204
- * </div>
2205
- * )}
2206
- * </div>
2207
- * )}
2208
- * </ImageInput>
2209
- * );
2210
- * }
688
+ * // Basic usage for form dismissal
689
+ * function FormComponent() {
690
+ * const [showDialog, setShowDialog] = useState(false);
691
+ * const [hasChanges, setHasChanges] = useState(false);
2211
692
  *
2212
- * // Multiple image upload with gallery
2213
- * function ImageGallery() {
2214
- * const [images, setImages] = useState<ImageInputFiles>([]);
693
+ * const handleClose = () => {
694
+ * if (hasChanges) {
695
+ * setShowDialog(true);
696
+ * } else {
697
+ * // Close form directly
698
+ * onClose();
699
+ * }
700
+ * };
2215
701
  *
2216
702
  * return (
2217
- * <ImageInput
2218
- * value={images}
2219
- * onChange={setImages}
2220
- * multiple
2221
- * acceptType={['jpg', 'png']}
2222
- * >
2223
- * {({ fileList, onImageUpload, onImageRemove, onImageRemoveAll }) => (
2224
- * <div>
2225
- * <button onClick={onImageUpload}>Add Images</button>
2226
- * {fileList.length > 0 && (
2227
- * <button onClick={onImageRemoveAll}>Remove All</button>
2228
- * )}
2229
- * <div className="grid grid-cols-3 gap-4">
2230
- * {fileList.map((image, index) => (
2231
- * <div key={index} className="relative">
2232
- * <img src={image.dataURL} alt={`Preview ${index}`} />
2233
- * <button
2234
- * onClick={() => onImageRemove(index)}
2235
- * className="absolute top-0 right-0"
2236
- * >
2237
- * ×
2238
- * </button>
2239
- * </div>
2240
- * ))}
2241
- * </div>
2242
- * </div>
2243
- * )}
2244
- * </ImageInput>
703
+ * <>
704
+ * <form>
705
+ * <button type="button" onClick={handleClose}>Close</button>
706
+ * </form>
707
+ *
708
+ * <ConfirmDismissDialog
709
+ * open={showDialog}
710
+ * onOpenChange={setShowDialog}
711
+ * onConfirm={() => {
712
+ * setShowDialog(false);
713
+ * onClose(); // Actually close the form
714
+ * }}
715
+ * />
716
+ * </>
2245
717
  * );
2246
718
  * }
719
+ *
720
+ * // Custom dialog for deletion
721
+ * <ConfirmDismissDialog
722
+ * open={showDeleteDialog}
723
+ * onOpenChange={setShowDeleteDialog}
724
+ * title="Delete item?"
725
+ * description="This action cannot be undone. Are you sure you want to delete this item?"
726
+ * confirmText="Delete"
727
+ * cancelText="Keep"
728
+ * onConfirm={handleDelete}
729
+ * />
2247
730
  * ```
2248
731
  */
2249
- declare const ImageInput: FC<ImageInputProps>;
732
+ declare const ConfirmDismissDialog: ({ open, onOpenChange, onConfirm, onCancel, title, description, confirmText, cancelText, maxWidth, }: ConfirmDismissDialogProps) => react_jsx_runtime.JSX.Element;
2250
733
 
2251
734
  /**
2252
735
  * Locale option used by the LanguageSwitcher
@@ -2264,13 +747,13 @@ interface LocaleOption {
2264
747
  /**
2265
748
  * Props for the LanguageSwitcher component (prop-driven)
2266
749
  */
2267
- interface LanguageSwitcherProps extends SharedImage {
750
+ interface LanguageSwitcherProps {
2268
751
  /** Additional CSS classes */
2269
752
  className?: string;
2270
753
  /** UI type: standalone dropdown or submenu dropdown */
2271
754
  type?: "dropdown" | "sub-dropdown";
2272
755
  /** Button variant style (for toggle type) */
2273
- variant?: "ghost" | "outline" | "secondary";
756
+ variant?: ComponentProps<typeof Button>["variant"];
2274
757
  /** Button size (for toggle type) */
2275
758
  size?: ComponentProps<typeof Button>["size"];
2276
759
  /** Whether to show language names */
@@ -2289,55 +772,10 @@ interface LanguageSwitcherProps extends SharedImage {
2289
772
  onLocaleChange: (newLocale: string) => void | Promise<void>;
2290
773
  /** Custom flags asset url */
2291
774
  customFlagUrl?: boolean;
775
+ /** Badge variant style */
776
+ badgeVariant?: ComponentProps<typeof Badge>["variant"];
2292
777
  }
2293
- declare function LanguageSwitcher({ className, type, variant, size, showNames, showFlags, label, i18nEnabled, currentLocale, locales, onLocaleChange, customFlagUrl, Image, }: LanguageSwitcherProps): react_jsx_runtime.JSX.Element | null;
2294
-
2295
- /**
2296
- * Logo Component
2297
- * Displays the application logo as an SVG icon
2298
- * Supports theming through currentColor and customizable sizing
2299
- */
2300
- /**
2301
- * Logo Component
2302
- *
2303
- * Renders the application's logo as a scalable SVG icon.
2304
- * The logo uses currentColor for theming and can be customized
2305
- * with additional CSS classes for size and styling.
2306
- *
2307
- * @param props - Component props
2308
- * @param props.className - Additional CSS classes for styling
2309
- * @returns JSX element with the application logo
2310
- *
2311
- * @example
2312
- * ```tsx
2313
- * // Basic logo
2314
- * <Logo />
2315
- *
2316
- * // Custom sized logo
2317
- * <Logo className="w-12 h-12" />
2318
- *
2319
- * // Colored logo
2320
- * <Logo className="text-blue-600 w-16 h-16" />
2321
- *
2322
- * // Logo in navigation
2323
- * <nav className="flex items-center space-x-4">
2324
- * <Logo className="w-8 h-8" />
2325
- * <span className="font-bold">App Name</span>
2326
- * </nav>
2327
- *
2328
- * // Logo in header
2329
- * <header className="bg-white shadow-sm">
2330
- * <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
2331
- * <div className="flex justify-between items-center py-6">
2332
- * <Logo className="w-10 h-10 text-primary" />
2333
- * </div>
2334
- * </div>
2335
- * </header>
2336
- * ```
2337
- */
2338
- declare function Logo({ className }: {
2339
- className?: string;
2340
- }): react_jsx_runtime.JSX.Element;
778
+ declare function LanguageSwitcher({ className, type, variant, size, showNames, showFlags, label, i18nEnabled, currentLocale, locales, onLocaleChange, customFlagUrl, badgeVariant, }: LanguageSwitcherProps): react_jsx_runtime.JSX.Element | null;
2341
779
 
2342
780
  /**
2343
781
  * Props interface for the ModeSwitcher component
@@ -2346,7 +784,7 @@ interface ModeSwitcherProps {
2346
784
  /** Additional CSS classes for the button */
2347
785
  className?: string;
2348
786
  /** Button variant style */
2349
- variant?: "ghost" | "outline" | "secondary";
787
+ variant?: React$1.ComponentProps<typeof Button>["variant"];
2350
788
  /** Button size */
2351
789
  size?: React$1.ComponentProps<typeof Button>["size"];
2352
790
  /** Custom cycle order for themes (defaults to system -> light -> dark) */
@@ -2399,132 +837,82 @@ interface ModeSwitcherProps {
2399
837
  declare function ModeSwitcher({ className, variant, size, cycleOrder, type, label, }: ModeSwitcherProps): react_jsx_runtime.JSX.Element;
2400
838
 
2401
839
  /**
2402
- * Props interface for MovingLabel component
840
+ * Screen Loader Component
841
+ * Provides a full-screen loading overlay with spinner and customizable text
842
+ * Perfect for page transitions, data loading, and async operations
2403
843
  */
2404
- interface MovingLabelProps {
2405
- /** Border radius for the component (CSS value) */
2406
- borderRadius?: string;
2407
- /** Child elements to render inside the label */
2408
- children: ReactNode;
2409
- /** HTML element type to render as (default: 'button') */
2410
- as?: React__default.ElementType;
844
+ /**
845
+ * Props interface for the ScreenLoader component
846
+ */
847
+ interface ScreenLoaderProps {
848
+ /** Loading text to display below the spinner */
849
+ loadingText?: string;
2411
850
  /** Additional CSS classes for the container */
2412
- containerClassName?: string;
2413
- /** Additional CSS classes for the border element */
2414
- borderClassName?: string;
2415
- /** Animation duration in milliseconds */
2416
- duration?: number;
2417
- /** Additional CSS classes for the content area */
2418
851
  className?: string;
2419
- /** Additional props to pass to the root element */
2420
- [key: string]: unknown;
852
+ /** Additional CSS classes for the spinner icon */
853
+ spinnerClassName?: string;
854
+ /** Additional CSS classes for the loading text */
855
+ textClassName?: string;
856
+ /** Display loader for content */
857
+ contentLoader?: boolean;
2421
858
  }
2422
859
  /**
2423
- * MovingLabel Component
860
+ * ScreenLoader Component
2424
861
  *
2425
- * A button or label component with an animated moving border effect.
2426
- * The border continuously moves around the perimeter of the element,
2427
- * creating an eye-catching visual effect perfect for CTAs or highlights.
862
+ * A full-screen loading overlay that covers the entire viewport.
863
+ * Features a spinning icon and customizable loading text with
864
+ * smooth fade transitions. Positioned with high z-index to
865
+ * appear above all other content.
2428
866
  *
2429
867
  * @param props - Component props
2430
- * @returns JSX element with animated border
868
+ * @returns JSX element containing the full-screen loader
2431
869
  *
2432
870
  * @example
2433
871
  * ```tsx
2434
- * // Basic button with moving border
2435
- * <MovingLabel>
2436
- * Click me!
2437
- * </MovingLabel>
2438
- *
2439
- * // Custom styling and duration
2440
- * <MovingLabel
2441
- * borderRadius="0.5rem"
2442
- * duration={3000}
2443
- * className="px-6 py-3 text-lg"
2444
- * borderClassName="bg-gradient-to-r from-blue-500 to-purple-500"
2445
- * >
2446
- * Premium Feature
2447
- * </MovingLabel>
2448
- *
2449
- * // As a div instead of button
2450
- * <MovingLabel
2451
- * as="div"
2452
- * containerClassName="w-64 h-32"
2453
- * className="flex items-center justify-center"
2454
- * >
2455
- * <span>Animated Card</span>
2456
- * </MovingLabel>
2457
- *
2458
- * // Custom border effect
2459
- * <MovingLabel
2460
- * borderClassName="h-8 w-16 bg-[radial-gradient(#ff6b6b_20%,transparent_70%)]"
2461
- * duration={1500}
2462
- * >
2463
- * Fast Animation
2464
- * </MovingLabel>
2465
- * ```
2466
- */
2467
- declare function MovingLabel({ borderRadius, children, as: Component, containerClassName, borderClassName, duration, className, ...otherProps }: MovingLabelProps): react_jsx_runtime.JSX.Element;
2468
- /**
2469
- * Props interface for MovingBorder component
2470
- */
2471
- interface MovingBorderProps {
2472
- /** Child elements to animate along the border path */
2473
- children: ReactNode;
2474
- /** Animation duration in milliseconds (default: 2000) */
2475
- duration?: number;
2476
- /** Horizontal border radius for the SVG path */
2477
- rx?: string;
2478
- /** Vertical border radius for the SVG path */
2479
- ry?: string;
2480
- /** Additional props to pass to the SVG element */
2481
- [key: string]: unknown;
2482
- }
2483
- /**
2484
- * MovingBorder Component
872
+ * // Basic usage
873
+ * function App() {
874
+ * const [isLoading, setIsLoading] = useState(true);
2485
875
  *
2486
- * Creates an animated border effect where child elements move along
2487
- * the perimeter of a rectangular path. Uses SVG path calculations
2488
- * and Framer Motion for smooth animations.
876
+ * useEffect(() => {
877
+ * // Simulate loading
878
+ * setTimeout(() => setIsLoading(false), 2000);
879
+ * }, []);
2489
880
  *
2490
- * This is typically used as a building block for other components
2491
- * like MovingLabel, but can be used standalone for custom effects.
881
+ * return (
882
+ * <div>
883
+ * {isLoading && <ScreenLoader />}
884
+ * <main>Your app content</main>
885
+ * </div>
886
+ * );
887
+ * }
2492
888
  *
2493
- * @param props - Component props
2494
- * @returns JSX element with SVG path and animated child
889
+ * // Custom loading text
890
+ * <ScreenLoader loadingText="Preparing your dashboard..." />
2495
891
  *
2496
- * @example
2497
- * ```tsx
2498
- * // Basic usage with a glowing dot
2499
- * <div className="relative w-64 h-32 border border-gray-300">
2500
- * <MovingBorder duration={3000} rx="10%" ry="10%">
2501
- * <div className="w-4 h-4 bg-blue-500 rounded-full shadow-lg" />
2502
- * </MovingBorder>
2503
- * </div>
892
+ * // Custom styling
893
+ * <ScreenLoader
894
+ * loadingText="Please wait"
895
+ * className="bg-black/80 backdrop-blur-sm"
896
+ * spinnerClassName="size-8 animate-spin text-blue-500"
897
+ * textClassName="text-white text-lg font-semibold"
898
+ * />
2504
899
  *
2505
- * // Multiple animated elements
2506
- * <div className="relative w-48 h-48 rounded-lg border">
2507
- * <MovingBorder duration={2000}>
2508
- * <div className="w-3 h-3 bg-red-500 rounded-full" />
2509
- * </MovingBorder>
2510
- * <MovingBorder duration={3000}>
2511
- * <div className="w-2 h-2 bg-green-500 rounded-full" />
2512
- * </MovingBorder>
2513
- * </div>
900
+ * // With conditional rendering
901
+ * {isSubmitting && (
902
+ * <ScreenLoader
903
+ * loadingText="Submitting form..."
904
+ * className="bg-white/90"
905
+ * />
906
+ * )}
2514
907
  *
2515
- * // Custom SVG styling
2516
- * <MovingBorder
2517
- * duration={1500}
2518
- * rx="20%"
2519
- * ry="20%"
2520
- * stroke="blue"
2521
- * strokeWidth="2"
2522
- * >
2523
- * <div className="w-6 h-6 bg-gradient-to-r from-purple-500 to-pink-500 rounded" />
2524
- * </MovingBorder>
908
+ * // Different spinner sizes
909
+ * <ScreenLoader
910
+ * spinnerClassName="size-12 animate-spin text-purple-600"
911
+ * textClassName="text-purple-600 font-bold"
912
+ * />
2525
913
  * ```
2526
914
  */
2527
- declare const MovingBorder: ({ children, duration, rx, ry, ...otherProps }: MovingBorderProps) => react_jsx_runtime.JSX.Element;
915
+ declare function ScreenLoader({ loadingText, className, spinnerClassName, textClassName, contentLoader, }?: ScreenLoaderProps): react_jsx_runtime.JSX.Element;
2528
916
 
2529
917
  /**
2530
918
  * Main Toolbar Component
@@ -2552,7 +940,9 @@ declare const MovingBorder: ({ children, duration, rx, ry, ...otherProps }: Movi
2552
940
  * </Toolbar>
2553
941
  * ```
2554
942
  */
2555
- declare const Toolbar: ({ children }: BaseComponentProps) => react_jsx_runtime.JSX.Element;
943
+ declare const Toolbar: ({ children }: {
944
+ children: ReactNode;
945
+ }) => react_jsx_runtime.JSX.Element;
2556
946
  /**
2557
947
  * ToolbarHeading Component
2558
948
  *
@@ -2572,7 +962,10 @@ declare const Toolbar: ({ children }: BaseComponentProps) => react_jsx_runtime.J
2572
962
  * </ToolbarHeading>
2573
963
  * ```
2574
964
  */
2575
- declare const ToolbarHeading: ({ children, className }: BaseComponentProps) => react_jsx_runtime.JSX.Element;
965
+ declare const ToolbarHeading: ({ children, className, }: {
966
+ children: ReactNode;
967
+ className?: string;
968
+ }) => react_jsx_runtime.JSX.Element;
2576
969
  /**
2577
970
  * ToolbarTitle Component
2578
971
  *
@@ -2592,7 +985,10 @@ declare const ToolbarHeading: ({ children, className }: BaseComponentProps) => r
2592
985
  * </ToolbarTitle>
2593
986
  * ```
2594
987
  */
2595
- declare const ToolbarTitle: ({ className, children }: BaseComponentProps) => react_jsx_runtime.JSX.Element;
988
+ declare const ToolbarTitle: ({ children, className, }: {
989
+ children: ReactNode;
990
+ className?: string;
991
+ }) => react_jsx_runtime.JSX.Element;
2596
992
  /**
2597
993
  * ToolbarActions Component
2598
994
  *
@@ -2630,7 +1026,9 @@ declare const ToolbarTitle: ({ className, children }: BaseComponentProps) => rea
2630
1026
  * </ToolbarActions>
2631
1027
  * ```
2632
1028
  */
2633
- declare const ToolbarActions: ({ children }: BaseComponentProps) => react_jsx_runtime.JSX.Element;
1029
+ declare const ToolbarActions: ({ children }: {
1030
+ children: ReactNode;
1031
+ }) => react_jsx_runtime.JSX.Element;
2634
1032
 
2635
1033
  /**
2636
1034
  * User Avatar Component
@@ -2741,59 +1139,4 @@ declare function UserAvatar({ className, indicator, src, alt }: UserAvatarProps)
2741
1139
  */
2742
1140
  declare const getInitials: (name: string | null | undefined, count?: number) => string;
2743
1141
 
2744
- /**
2745
- * Satoshi Font Utilities
2746
- * Provides Satoshi font loading and CSS generation utilities
2747
- * Loads the variable font from Pelatform CDN with optimal display settings
2748
- */
2749
- /**
2750
- * Satoshi font (local, variable), loaded from Pelatform CDN
2751
- * Use for branding, headings, or special UI elements.
2752
- * Supports weights 300–900, normal style, swap display.
2753
- */
2754
- declare const satoshiFontUrl = "https://assets.pelatform.com/fonts/satoshi/Satoshi-Variable.woff2";
2755
- /**
2756
- * CSS font-face declaration for Satoshi font
2757
- * Defines the font family with variable weight support and optimal loading
2758
- */
2759
- declare const cssFontFace = "\n @font-face {\n font-family: 'Satoshi';\n src: url('https://assets.pelatform.com/fonts/satoshi/Satoshi-Variable.woff2') format('woff2');\n font-weight: 300 900;\n font-style: normal;\n font-display: swap;\n }\n";
2760
- /**
2761
- * SatoshiFontCSS Component
2762
- *
2763
- * Injects the Satoshi font CSS into the document head.
2764
- * Use this component in your app layout to load the Satoshi font.
2765
- *
2766
- * @returns JSX element containing the font CSS styles
2767
- *
2768
- * @example
2769
- * ```tsx
2770
- * // In your layout or app component
2771
- * function Layout({ children }: { children: React.ReactNode }) {
2772
- * return (
2773
- * <html>
2774
- * <head>
2775
- * <SatoshiFontCSS />
2776
- * </head>
2777
- * <body className="font-satoshi">
2778
- * {children}
2779
- * </body>
2780
- * </html>
2781
- * );
2782
- * }
2783
- *
2784
- * // Or use in a specific component
2785
- * function BrandedSection() {
2786
- * return (
2787
- * <>
2788
- * <SatoshiFontCSS />
2789
- * <h1 style={{ fontFamily: 'Satoshi' }}>
2790
- * Branded Heading
2791
- * </h1>
2792
- * </>
2793
- * );
2794
- * }
2795
- * ```
2796
- */
2797
- declare function SatoshiFontCSS(): react_jsx_runtime.JSX.Element;
2798
-
2799
- export { AlertComingsoon, AlertNotification, AlertToast, type AlertToastOptions, Announcement, AnnouncementTag, AnnouncementTitle, BackLink, BackgroundPaths, Body, Book, CodeDisplay, ComingSoon, type ComingSoonProps, CommandMenu, type CommandMenuProps, ConfirmDismissDialog, type ConfirmDismissDialogProps, DEFAULT_DATA_URL_KEY, DEFAULT_NULL_INDEX, DefaultImage, DefaultLink, DefaultNavigate, DotsPattern, DownloadFile, ErrorComponents, type ErrorComponentsProps, ExtraLink, FloatingPaths, Grid, GridBackground, HexagonBadge, ImageInput, type ImageInputFile, type ImageInputFiles, type ImageInputProps, LanguageSwitcher, type LanguageSwitcherProps, LayoutAuth, LayoutBlank, type LayoutBlankProps, type LocaleOption, Logo, MainNav, MaxWidthWrapper, MobileNav, MobileNavItemRenderer, ModeSwitcher, type ModeSwitcherProps, MovingBorder, MovingLabel, type NavItem, type NavigationProps, QueryProvider, SatoshiFontCSS, ScreenLoader, type ScreenLoaderProps, Section, type SharedImage, type SharedLink, type SharedNavigate, SiteFooter, SiteHeader, Stack, ThemeProvider, Toolbar, ToolbarActions, ToolbarHeading, ToolbarTitle, UserAvatar, Video, Wrapper, Youtube, cssFontFace, getAcceptTypeString, getBase64, getImage, getInitials, getListFiles, openFileDialog, satoshiFontUrl };
1142
+ export { AlertComingsoon, AlertNotification, AlertToast, type AlertToastOptions, ComingSoon, type ComingSoonProps, ConfirmDismissDialog, type ConfirmDismissDialogProps, Icons, LanguageSwitcher, type LanguageSwitcherProps, type LocaleOption, Logo, MainNav, MobileNav, MobileNavItemRenderer, ModeSwitcher, type ModeSwitcherProps, type NavItem, type NavigationProps, QueryProvider, ScreenLoader, type ScreenLoaderProps, SiteFooter, SiteHeader, ThemeProvider, Toolbar, ToolbarActions, ToolbarHeading, ToolbarTitle, UserAvatar, getInitials };