pelatform-ui 1.2.8 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2296 +1,84 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
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';
6
- import { QueryClient } from '@tanstack/react-query';
7
- import { ThemeProvider as ThemeProvider$1 } from 'next-themes';
8
- import { VariantProps } from 'class-variance-authority';
9
- import { a as ThemeMode } from './colors-CUDWvz1g.js';
2
+ import React__default from 'react';
10
3
 
11
4
  /**
12
- * Configuration options for the alert toast notification
5
+ * Props interface for icon components
6
+ * Extends standard HTML SVG element attributes for full customization
13
7
  */
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
- }
8
+ type IconProps = React__default.HTMLAttributes<SVGElement>;
22
9
  /**
23
- * Creates and displays a customizable alert toast notification
10
+ * Collection of brand and service icons
24
11
  *
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')
12
+ * This object contains SVG icons for popular brands, services, and technologies.
13
+ * All icons are designed to be scalable and themeable using CSS currentColor.
14
+ * Icon keys use PascalCase (capitalized first letter) for consistency.
29
15
  *
30
16
  * @example
31
17
  * ```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
- * ```
918
- */
919
- declare const DefaultLink: LinkComponentProps;
920
- /**
921
- * Default Navigation Function
922
- *
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
928
- *
929
- * @example
930
- * ```tsx
931
- * // 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.
998
- *
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"
1028
- * />
1029
- *
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>
1088
- * ```
1089
- */
1090
- declare function Wrapper({ children, className }: BaseComponentProps): react_jsx_runtime.JSX.Element;
1091
-
1092
- /**
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
1096
- */
1097
- /**
1098
- * Youtube Component
1099
- *
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.
1103
- *
1104
- * @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
1107
- *
1108
- * @example
1109
- * ```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
1169
- *
1170
- * @example
1171
- * ```tsx
1172
- * // Basic back link
1173
- * <BackLink href="/dashboard">
1174
- * Back to Dashboard
1175
- * </BackLink>
1176
- *
1177
- * // With custom Link component (Next.js)
1178
- * <BackLink Link={NextLink} href="/products">
1179
- * Back to Products
1180
- * </BackLink>
1181
- *
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>
1197
- * </nav>
1198
- *
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>
1207
- * </div>
1208
- * );
1209
- * }
1210
- * ```
1211
- */
1212
- declare function BackLink({ Link, children, href, className }: BackLinkProps): react_jsx_runtime.JSX.Element;
1213
-
1214
- /**
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
- * ```
1306
- */
1307
- declare function CommandMenu({ children, classButton, classDialog, searchButtonText, commandInputPlaceholder, keyHint, ...props }: CommandMenuProps): react_jsx_runtime.JSX.Element;
1308
-
1309
- /**
1310
- * Interface defining the structure of a navigation item
1311
- */
1312
- interface NavItem {
1313
- /** Display text for the navigation item */
1314
- title: string;
1315
- /** URL path for the navigation item */
1316
- href?: string;
1317
- /** Whether the link opens in a new tab */
1318
- external?: boolean;
1319
- /** Optional icon to display alongside the title */
1320
- icon?: React.ComponentType<React.SVGProps<SVGSVGElement>>;
1321
- /** Child navigation items for dropdown menus */
1322
- children?: NavItem[];
1323
- }
1324
- /**
1325
- * Props interface for the MainNav component
1326
- */
1327
- interface NavigationProps extends SharedLink {
1328
- /** Current pathname */
1329
- pathname: string;
1330
- /** Array of navigation items to display */
1331
- items: NavItem[];
1332
- /** Additional CSS classes for the navigation container */
1333
- className?: string;
1334
- }
1335
- /**
1336
- * MainNav Component
1337
- *
1338
- * A responsive navigation component that supports multi-level dropdown menus,
1339
- * active state detection, and analytics tracking. Hidden on mobile devices
1340
- * and typically used in the site header.
1341
- *
1342
- * Features:
1343
- * - Multi-level dropdown menus (up to 3 levels)
1344
- * - Active state detection for current page
1345
- * - External link indicators
1346
- * - Analytics tracking for menu interactions
1347
- * - Responsive design (hidden on mobile)
1348
- * - Keyboard navigation support
1349
- *
1350
- * @param props - Component props
1351
- * @returns JSX element containing the navigation menu
1352
- *
1353
- * @example
1354
- * ```tsx
1355
- * const navItems: NavItem[] = [
1356
- * {
1357
- * title: 'Home',
1358
- * href: '/',
1359
- * },
1360
- * {
1361
- * title: 'Products',
1362
- * children: [
1363
- * { title: 'Web Apps', href: '/products/web' },
1364
- * { title: 'Mobile Apps', href: '/products/mobile' },
1365
- * {
1366
- * title: 'Enterprise',
1367
- * children: [
1368
- * { title: 'SaaS Solutions', href: '/products/enterprise/saas' },
1369
- * { title: 'Custom Development', href: '/products/enterprise/custom' }
1370
- * ]
1371
- * }
1372
- * ]
1373
- * },
1374
- * {
1375
- * title: 'Documentation',
1376
- * href: 'https://docs.example.com',
1377
- * external: true,
1378
- * icon: <IconBook className="w-4 h-4" />
1379
- * }
1380
- * ];
1381
- *
1382
- * <MainNav items={navItems} />
1383
- * ```
1384
- */
1385
- declare function MainNav({ Link, pathname, items, className }: NavigationProps): react_jsx_runtime.JSX.Element;
1386
-
1387
- /**
1388
- * MobileNav Component
1389
- *
1390
- * A mobile-optimized navigation component that uses a drawer interface
1391
- * for space-efficient menu display on small screens. Automatically
1392
- * manages meta theme color changes when the drawer opens/closes.
1393
- *
1394
- * Features:
1395
- * - Drawer-based interface for mobile screens
1396
- * - Meta theme color management
1397
- * - Responsive design (hidden on desktop)
1398
- * - Accessible with proper ARIA labels
1399
- * - Smooth open/close animations
1400
- * - Scrollable content area
1401
- *
1402
- * @param props - Component props
1403
- * @returns JSX element containing the mobile navigation drawer
1404
- *
1405
- * @example
1406
- * ```tsx
1407
- * // Basic usage with navigation items
1408
- * <MobileNav>
1409
- * <div className="space-y-4">
1410
- * <MobileNavItemRenderer
1411
- * item={{ title: 'Home', href: '/' }}
1412
- * onOpenChange={setOpen}
1413
- * level={1}
1414
- * />
1415
- * <MobileNavItemRenderer
1416
- * item={{
1417
- * title: 'Products',
1418
- * children: [
1419
- * { title: 'Web Apps', href: '/products/web' },
1420
- * { title: 'Mobile Apps', href: '/products/mobile' }
1421
- * ]
1422
- * }}
1423
- * onOpenChange={setOpen}
1424
- * level={1}
1425
- * />
1426
- * </div>
1427
- * </MobileNav>
1428
- *
1429
- * // With custom content
1430
- * <MobileNav className="border-l border-gray-200">
1431
- * <div className="space-y-6">
1432
- * <NavigationItems />
1433
- * <UserProfile />
1434
- * <ThemeToggle />
1435
- * </div>
1436
- * </MobileNav>
1437
- * ```
1438
- */
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;
1447
-
1448
- /**
1449
- * React Query provider component with optimized configuration
1450
- *
1451
- * This provider sets up TanStack Query with:
1452
- * - Global error handling with toast notifications
1453
- * - Optimized caching and retry strategies
1454
- * - Background refetching configuration
1455
- * - Stale time and garbage collection settings
1456
- *
1457
- * @param props - Component props containing children
1458
- * @returns JSX element wrapping children with QueryClient context
1459
- *
1460
- * @example
1461
- * ```tsx
1462
- * // Wrap your app with QueryProvider
1463
- * function App() {
1464
- * return (
1465
- * <QueryProvider>
1466
- * <YourAppComponents />
1467
- * </QueryProvider>
1468
- * );
1469
- * }
1470
- *
1471
- * // Use React Query hooks in child components
1472
- * function UserProfile() {
1473
- * const { data, isLoading, error } = useQuery({
1474
- * queryKey: ['user', userId],
1475
- * queryFn: () => fetchUser(userId)
1476
- * });
1477
- *
1478
- * if (isLoading) return <div>Loading...</div>;
1479
- * if (error) return <div>Error occurred</div>; // Error toast will show automatically
1480
- *
1481
- * return <div>{data.name}</div>;
1482
- * }
1483
- * ```
1484
- */
1485
- declare const QueryProvider: ({ client: clientProps, children, }: {
1486
- client?: QueryClient;
1487
- children: ReactNode;
1488
- }) => react_jsx_runtime.JSX.Element;
1489
-
1490
- /**
1491
- * Props interface for ThemeProvider component
1492
- * Extends NextThemesProvider props for full compatibility
1493
- */
1494
- interface ThemeProviderProps extends React$1.ComponentProps<typeof ThemeProvider$1> {
1495
- /** Child components that will have access to theme context */
1496
- children: React$1.ReactNode;
1497
- }
1498
- /**
1499
- * Application theme provider component
1500
- *
1501
- * This provider sets up theme management with:
1502
- * - Light, dark, and system theme support
1503
- * - Automatic system preference detection
1504
- * - Smooth theme transitions
1505
- * - Integration with tooltip provider
1506
- * - CSS class-based theme switching
1507
- *
1508
- * The provider integrates with the application's theme configuration
1509
- * and provides a consistent theming experience across all components.
1510
- *
1511
- * @param props - Component props extending NextThemesProvider props
1512
- * @returns JSX element wrapping children with theme and tooltip context
1513
- *
1514
- * @example
1515
- * ```tsx
1516
- * // Basic usage - wrap your app root
1517
- * function App() {
1518
- * return (
1519
- * <ThemeProvider>
1520
- * <YourAppComponents />
1521
- * </ThemeProvider>
1522
- * );
1523
- * }
1524
- *
1525
- * // With custom configuration
1526
- * function App() {
1527
- * return (
1528
- * <ThemeProvider
1529
- * defaultTheme="dark"
1530
- * storageKey="custom-theme"
1531
- * >
1532
- * <YourAppComponents />
1533
- * </ThemeProvider>
1534
- * );
1535
- * }
1536
- *
1537
- * // Use theme in child components
1538
- * function ThemeToggle() {
1539
- * const { theme, setTheme } = useTheme();
1540
- *
1541
- * return (
1542
- * <select value={theme} onChange={(e) => setTheme(e.target.value)}>
1543
- * <option value="light">Light</option>
1544
- * <option value="dark">Dark</option>
1545
- * <option value="system">System</option>
1546
- * </select>
1547
- * );
1548
- * }
1549
- * ```
1550
- */
1551
- declare function ThemeProvider({ children, ...props }: ThemeProviderProps): react_jsx_runtime.JSX.Element;
1552
-
1553
- /**
1554
- * Props interface for the Announcement component
1555
- */
1556
- type AnnouncementProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof badgeVariants> & {
1557
- /** Whether to apply themed styling with special background treatment */
1558
- themed?: boolean;
1559
- };
1560
- /**
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.
1566
- *
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
1572
- *
1573
- * @example
1574
- * ```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
1611
- *
1612
- * @example
1613
- * ```tsx
1614
- * <Announcement>
1615
- * <AnnouncementTag>BETA</AnnouncementTag>
1616
- * <AnnouncementTitle>New Dashboard</AnnouncementTitle>
1617
- * </Announcement>
1618
- * ```
1619
- */
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>;
1625
- /**
1626
- * AnnouncementTitle Component
1627
- *
1628
- * A title component designed for use within announcements,
1629
- * providing proper spacing and alignment for announcement content.
1630
- *
1631
- * @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.
1658
- *
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
1663
- *
1664
- * @example
1665
- * ```tsx
1666
- * // Basic floating paths
1667
- * <FloatingPaths position={1} />
1668
- *
1669
- * // Custom colored paths
1670
- * <FloatingPaths
1671
- * position={2}
1672
- * color="text-blue-500 dark:text-blue-300"
1673
- * />
1674
- *
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"
1850
- * />
1851
- *
1852
- * // Offset pattern
1853
- * <DotsPattern
1854
- * patternOffset={[5, 5]}
1855
- * dotSize={1}
1856
- * gapSize={8}
1857
- * />
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
- * ```
1884
- */
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
- }
1909
- /**
1910
- * GridBackground Component
1911
- *
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.
1915
- *
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
1921
- *
1922
- * @example
1923
- * ```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.
1975
- *
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
1983
- *
1984
- * @example
1985
- * ```tsx
1986
- * // Basic usage with an icon
1987
- * <HexagonBadge>
1988
- * <StarIcon className="w-6 h-6" />
1989
- * </HexagonBadge>
18
+ * // Basic usage
19
+ * <Icons.Google className="w-6 h-6" />
1990
20
  *
1991
21
  * // 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>
2010
- * ```
2011
- */
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
- */
2019
-
2020
- /**
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
- * ```
2102
- */
2103
- declare const openFileDialog: (inputRef: RefObject<HTMLInputElement | null>) => void;
2104
- /**
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
- * ```
2117
- */
2118
- declare const getAcceptTypeString: (acceptType?: string[], allowNonImageType?: boolean) => string;
2119
- /**
2120
- * Converts a File object to a base64 data URL string
2121
- *
2122
- * @param file - The file to convert
2123
- * @returns Promise resolving to base64 data URL
2124
- *
2125
- * @example
2126
- * ```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...'
2130
- * ```
2131
- */
2132
- declare const getBase64: (file: File) => Promise<string>;
2133
- /**
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
- * ```
2146
- */
2147
- declare const getImage: (file: File) => Promise<HTMLImageElement>;
2148
- /**
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
- * ```
2165
- */
2166
- declare const getListFiles: (files: FileList, dataURLKey: string) => Promise<ImageInputFiles>;
2167
- /**
2168
- * ImageInput Component
2169
- *
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.
2173
- *
2174
- * @param props - Component props
2175
- * @returns JSX element containing hidden input and render prop children
2176
- *
2177
- * @example
2178
- * ```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
- * }
2211
- *
2212
- * // Multiple image upload with gallery
2213
- * function ImageGallery() {
2214
- * const [images, setImages] = useState<ImageInputFiles>([]);
2215
- *
2216
- * 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>
2245
- * );
2246
- * }
2247
- * ```
2248
- */
2249
- declare const ImageInput: FC<ImageInputProps>;
2250
-
2251
- /**
2252
- * Locale option used by the LanguageSwitcher
2253
- */
2254
- interface LocaleOption {
2255
- /** Locale code, e.g. 'en', 'id' */
2256
- code: string;
2257
- /** Human readable language name */
2258
- name: string;
2259
- /** Optional flag code to render, e.g. 'us', 'id' */
2260
- flag?: string;
2261
- /** Optional currency code associated with the locale */
2262
- currency?: string;
2263
- }
2264
- /**
2265
- * Props for the LanguageSwitcher component (prop-driven)
2266
- */
2267
- interface LanguageSwitcherProps extends SharedImage {
2268
- /** Additional CSS classes */
2269
- className?: string;
2270
- /** UI type: standalone dropdown or submenu dropdown */
2271
- type?: "dropdown" | "sub-dropdown";
2272
- /** Button variant style (for toggle type) */
2273
- variant?: "ghost" | "outline" | "secondary";
2274
- /** Button size (for toggle type) */
2275
- size?: ComponentProps<typeof Button>["size"];
2276
- /** Whether to show language names */
2277
- showNames?: boolean;
2278
- /** Whether to show flag icons */
2279
- showFlags?: boolean;
2280
- /** Label text for the dropdown trigger; defaults to 'Language' */
2281
- label?: string;
2282
- /** Whether i18n is enabled; if false and <=1 locales, render null */
2283
- i18nEnabled?: boolean;
2284
- /** Current active locale code */
2285
- currentLocale: string;
2286
- /** Available locales to render */
2287
- locales: LocaleOption[];
2288
- /** Handler called when a new locale is selected */
2289
- onLocaleChange: (newLocale: string) => void | Promise<void>;
2290
- /** Custom flags asset url */
2291
- customFlagUrl?: boolean;
2292
- }
2293
- declare function LanguageSwitcher({ className, type, variant, size, showNames, showFlags, label, i18nEnabled, currentLocale, locales, onLocaleChange, customFlagUrl, Image, }: LanguageSwitcherProps): react_jsx_runtime.JSX.Element | null;
22
+ * <Icons.Github
23
+ * className="w-8 h-8 text-gray-600 hover:text-gray-900"
24
+ * onClick={handleGitHubClick}
25
+ * />
26
+ *
27
+ * // Colorful variants
28
+ * <Icons.GoogleColorful className="w-10 h-10" />
29
+ * <Icons.FacebookColorful className="w-10 h-10" />
30
+ * ```
31
+ */
32
+ declare const Icons: {
33
+ Anthropic: (props: IconProps) => react_jsx_runtime.JSX.Element;
34
+ Apple: (props: IconProps) => react_jsx_runtime.JSX.Element;
35
+ Aria: (props: IconProps) => react_jsx_runtime.JSX.Element;
36
+ Discord: (props: IconProps) => react_jsx_runtime.JSX.Element;
37
+ Dropbox: (props: IconProps) => react_jsx_runtime.JSX.Element;
38
+ Facebook: (props: IconProps) => react_jsx_runtime.JSX.Element;
39
+ FacebookColorful: (props: IconProps) => react_jsx_runtime.JSX.Element;
40
+ Github: (props: IconProps) => react_jsx_runtime.JSX.Element;
41
+ Gitlab: (props: IconProps) => react_jsx_runtime.JSX.Element;
42
+ Google: (props: IconProps) => react_jsx_runtime.JSX.Element;
43
+ GoogleColorful: (props: IconProps) => react_jsx_runtime.JSX.Element;
44
+ Huggingface: (props: IconProps) => react_jsx_runtime.JSX.Element;
45
+ Instagram: (props: IconProps) => react_jsx_runtime.JSX.Element;
46
+ Kick: (props: IconProps) => react_jsx_runtime.JSX.Element;
47
+ Linear: (props: IconProps) => react_jsx_runtime.JSX.Element;
48
+ Linkedin: (props: IconProps) => react_jsx_runtime.JSX.Element;
49
+ LinkedinColorful: (props: IconProps) => react_jsx_runtime.JSX.Element;
50
+ Microsoft: (props: IconProps) => react_jsx_runtime.JSX.Element;
51
+ Nextjs: (props: IconProps) => react_jsx_runtime.JSX.Element;
52
+ Notion: (props: IconProps) => react_jsx_runtime.JSX.Element;
53
+ Npm: (props: IconProps) => react_jsx_runtime.JSX.Element;
54
+ Openai: (props: IconProps) => react_jsx_runtime.JSX.Element;
55
+ Paypal: (props: IconProps) => react_jsx_runtime.JSX.Element;
56
+ Pelatform: (props: IconProps) => react_jsx_runtime.JSX.Element;
57
+ Pnpm: (props: IconProps) => react_jsx_runtime.JSX.Element;
58
+ Postgresql: (props: IconProps) => react_jsx_runtime.JSX.Element;
59
+ Prisma: (props: IconProps) => react_jsx_runtime.JSX.Element;
60
+ Radix: (props: IconProps) => react_jsx_runtime.JSX.Element;
61
+ Radixui: (props: IconProps) => react_jsx_runtime.JSX.Element;
62
+ React: (props: IconProps) => react_jsx_runtime.JSX.Element;
63
+ Reddit: (props: IconProps) => react_jsx_runtime.JSX.Element;
64
+ Roblox: (props: IconProps) => react_jsx_runtime.JSX.Element;
65
+ Scira: (props: IconProps) => react_jsx_runtime.JSX.Element;
66
+ Scribble: (props: IconProps) => react_jsx_runtime.JSX.Element;
67
+ Slack: (props: IconProps) => react_jsx_runtime.JSX.Element;
68
+ Spotify: (props: IconProps) => react_jsx_runtime.JSX.Element;
69
+ Supabase: (props: IconProps) => react_jsx_runtime.JSX.Element;
70
+ Tailwind: (props: IconProps) => react_jsx_runtime.JSX.Element;
71
+ Telegram: (props: IconProps) => react_jsx_runtime.JSX.Element;
72
+ Tiktok: (props: IconProps) => react_jsx_runtime.JSX.Element;
73
+ Twitch: (props: IconProps) => react_jsx_runtime.JSX.Element;
74
+ Twitter: (props: IconProps) => react_jsx_runtime.JSX.Element;
75
+ Vk: (props: IconProps) => react_jsx_runtime.JSX.Element;
76
+ WhatsApp: (props: IconProps) => react_jsx_runtime.JSX.Element;
77
+ X: (props: IconProps) => react_jsx_runtime.JSX.Element;
78
+ Yarn: (props: IconProps) => react_jsx_runtime.JSX.Element;
79
+ Youtube: (props: IconProps) => react_jsx_runtime.JSX.Element;
80
+ Zoom: (props: IconProps) => react_jsx_runtime.JSX.Element;
81
+ };
2294
82
 
2295
83
  /**
2296
84
  * Logo Component
@@ -2339,461 +127,4 @@ declare function Logo({ className }: {
2339
127
  className?: string;
2340
128
  }): react_jsx_runtime.JSX.Element;
2341
129
 
2342
- /**
2343
- * Props interface for the ModeSwitcher component
2344
- */
2345
- interface ModeSwitcherProps {
2346
- /** Additional CSS classes for the button */
2347
- className?: string;
2348
- /** Button variant style */
2349
- variant?: "ghost" | "outline" | "secondary";
2350
- /** Button size */
2351
- size?: React$1.ComponentProps<typeof Button>["size"];
2352
- /** Custom cycle order for themes (defaults to system -> light -> dark) */
2353
- cycleOrder?: ThemeMode[];
2354
- /** Button type: 'toggle' for a single button or 'dropdown' and 'sub-dropdown' for a menu with options */
2355
- type?: "toogle" | "dropdown" | "sub-dropdown";
2356
- /** Labels for each theme mode (optional) */
2357
- label?: {
2358
- system?: string;
2359
- dark?: string;
2360
- light?: string;
2361
- };
2362
- }
2363
- /**
2364
- * ModeSwitcher Component
2365
- *
2366
- * A button component that cycles through available theme modes (light, dark, system).
2367
- * Automatically updates the meta theme color and displays appropriate icons
2368
- * for each theme state. Integrates with next-themes for theme persistence.
2369
- *
2370
- * Features:
2371
- * - Cycles through light, dark, and system themes
2372
- * - Updates meta theme color automatically
2373
- * - Shows appropriate icons for each theme
2374
- * - Accessible with screen reader support
2375
- * - Customizable appearance and cycle order
2376
- * - Integrates with application color configuration
2377
- *
2378
- * @param props - Component props
2379
- * @returns JSX element containing the theme switcher button
2380
- *
2381
- * @example
2382
- * ```tsx
2383
- * // Basic usage
2384
- * <ModeSwitcher />
2385
- *
2386
- * // Custom styling
2387
- * <ModeSwitcher
2388
- * className="border border-gray-300"
2389
- * variant="outline"
2390
- * size="lg"
2391
- * />
2392
- *
2393
- * // Custom cycle order
2394
- * <ModeSwitcher
2395
- * cycleOrder={['light', 'dark']} // Skip system mode
2396
- * />
2397
- * ```
2398
- */
2399
- declare function ModeSwitcher({ className, variant, size, cycleOrder, type, label, }: ModeSwitcherProps): react_jsx_runtime.JSX.Element;
2400
-
2401
- /**
2402
- * Props interface for MovingLabel component
2403
- */
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;
2411
- /** 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
- className?: string;
2419
- /** Additional props to pass to the root element */
2420
- [key: string]: unknown;
2421
- }
2422
- /**
2423
- * MovingLabel Component
2424
- *
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.
2428
- *
2429
- * @param props - Component props
2430
- * @returns JSX element with animated border
2431
- *
2432
- * @example
2433
- * ```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
2485
- *
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.
2489
- *
2490
- * This is typically used as a building block for other components
2491
- * like MovingLabel, but can be used standalone for custom effects.
2492
- *
2493
- * @param props - Component props
2494
- * @returns JSX element with SVG path and animated child
2495
- *
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>
2504
- *
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>
2514
- *
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>
2525
- * ```
2526
- */
2527
- declare const MovingBorder: ({ children, duration, rx, ry, ...otherProps }: MovingBorderProps) => react_jsx_runtime.JSX.Element;
2528
-
2529
- /**
2530
- * Main Toolbar Component
2531
- *
2532
- * Creates a horizontal layout with space between heading and actions.
2533
- * Typically used at the top of pages or sections to display titles
2534
- * and related action buttons.
2535
- *
2536
- * @param props - Component props
2537
- * @returns JSX element containing the toolbar layout
2538
- *
2539
- * @example
2540
- * ```tsx
2541
- * <Toolbar>
2542
- * <ToolbarHeading>
2543
- * <ToolbarTitle>Dashboard</ToolbarTitle>
2544
- * <p className="text-sm text-muted-foreground">
2545
- * Welcome back! Here's what's happening.
2546
- * </p>
2547
- * </ToolbarHeading>
2548
- * <ToolbarActions>
2549
- * <Button variant="outline">Export</Button>
2550
- * <Button>Create New</Button>
2551
- * </ToolbarActions>
2552
- * </Toolbar>
2553
- * ```
2554
- */
2555
- declare const Toolbar: ({ children }: BaseComponentProps) => react_jsx_runtime.JSX.Element;
2556
- /**
2557
- * ToolbarHeading Component
2558
- *
2559
- * Container for the left side of the toolbar, typically containing
2560
- * the title and optional subtitle or description text.
2561
- *
2562
- * @param props - Component props
2563
- * @returns JSX element containing the heading section
2564
- *
2565
- * @example
2566
- * ```tsx
2567
- * <ToolbarHeading>
2568
- * <ToolbarTitle>User Management</ToolbarTitle>
2569
- * <p className="text-sm text-muted-foreground">
2570
- * Manage user accounts and permissions
2571
- * </p>
2572
- * </ToolbarHeading>
2573
- * ```
2574
- */
2575
- declare const ToolbarHeading: ({ children, className }: BaseComponentProps) => react_jsx_runtime.JSX.Element;
2576
- /**
2577
- * ToolbarTitle Component
2578
- *
2579
- * Displays the main title text with consistent typography.
2580
- * Renders as an h1 element for proper semantic structure.
2581
- *
2582
- * @param props - Component props
2583
- * @returns JSX element containing the title
2584
- *
2585
- * @example
2586
- * ```tsx
2587
- * <ToolbarTitle>Analytics Dashboard</ToolbarTitle>
2588
- *
2589
- * // With custom styling
2590
- * <ToolbarTitle className="text-2xl text-blue-600">
2591
- * Premium Features
2592
- * </ToolbarTitle>
2593
- * ```
2594
- */
2595
- declare const ToolbarTitle: ({ className, children }: BaseComponentProps) => react_jsx_runtime.JSX.Element;
2596
- /**
2597
- * ToolbarActions Component
2598
- *
2599
- * Container for the right side of the toolbar, typically containing
2600
- * action buttons, dropdowns, or other interactive elements.
2601
- * Responsive design with different gaps on mobile vs desktop.
2602
- *
2603
- * @param props - Component props
2604
- * @returns JSX element containing the actions section
2605
- *
2606
- * @example
2607
- * ```tsx
2608
- * <ToolbarActions>
2609
- * <Button variant="outline" size="sm">
2610
- * <IconDownload className="w-4 h-4 mr-2" />
2611
- * Export
2612
- * </Button>
2613
- * <Button size="sm">
2614
- * <IconPlus className="w-4 h-4 mr-2" />
2615
- * Add Item
2616
- * </Button>
2617
- * </ToolbarActions>
2618
- *
2619
- * // With dropdown menu
2620
- * <ToolbarActions>
2621
- * <DropdownMenu>
2622
- * <DropdownMenuTrigger asChild>
2623
- * <Button variant="outline">Options</Button>
2624
- * </DropdownMenuTrigger>
2625
- * <DropdownMenuContent>
2626
- * <DropdownMenuItem>Edit</DropdownMenuItem>
2627
- * <DropdownMenuItem>Delete</DropdownMenuItem>
2628
- * </DropdownMenuContent>
2629
- * </DropdownMenu>
2630
- * </ToolbarActions>
2631
- * ```
2632
- */
2633
- declare const ToolbarActions: ({ children }: BaseComponentProps) => react_jsx_runtime.JSX.Element;
2634
-
2635
- /**
2636
- * User Avatar Component
2637
- * Displays user profile pictures with fallback initials and optional status indicators
2638
- * Built on top of the base Avatar component with enhanced user-specific features
2639
- */
2640
- /**
2641
- * Props interface for the UserAvatar component
2642
- */
2643
- interface UserAvatarProps {
2644
- /** Additional CSS classes for styling */
2645
- className?: string;
2646
- /** Whether to show online status indicator */
2647
- indicator?: boolean;
2648
- /** Source URL for the user's profile image */
2649
- src?: string | null | undefined;
2650
- /** Alt text for the image, also used to generate initials */
2651
- alt?: string | null;
2652
- }
2653
- /**
2654
- * UserAvatar Component
2655
- *
2656
- * Displays a user's profile picture with automatic fallback to initials
2657
- * when no image is available. Supports optional online status indicators
2658
- * and follows accessibility best practices.
2659
- *
2660
- * Features:
2661
- * - Automatic initials generation from name
2662
- * - Fallback handling for missing images
2663
- * - Optional online status indicator
2664
- * - Accessible alt text support
2665
- * - Customizable styling
2666
- *
2667
- * @param props - Component props
2668
- * @param props.className - Additional CSS classes for styling
2669
- * @param props.indicator - Whether to show online status indicator (default: false)
2670
- * @param props.src - Source URL for the user's profile image
2671
- * @param props.alt - Alt text for the image, also used to generate initials
2672
- * @returns JSX element containing the user avatar
2673
- *
2674
- * @example
2675
- * ```tsx
2676
- * // Basic user avatar with image
2677
- * <UserAvatar
2678
- * src="https://example.com/avatar.jpg"
2679
- * alt="John Doe"
2680
- * />
2681
- *
2682
- * // Avatar with online indicator
2683
- * <UserAvatar
2684
- * src="https://example.com/avatar.jpg"
2685
- * alt="Jane Smith"
2686
- * indicator={true}
2687
- * />
2688
- *
2689
- * // Avatar with fallback initials (no image)
2690
- * <UserAvatar
2691
- * alt="Bob Johnson"
2692
- * className="w-12 h-12"
2693
- * />
2694
- *
2695
- * // User list with avatars
2696
- * <div className="flex space-x-2">
2697
- * {users.map(user => (
2698
- * <UserAvatar
2699
- * key={user.id}
2700
- * src={user.avatar}
2701
- * alt={user.name}
2702
- * indicator={user.isOnline}
2703
- * className="w-8 h-8"
2704
- * />
2705
- * ))}
2706
- * </div>
2707
- *
2708
- * // Profile header
2709
- * <div className="flex items-center space-x-4">
2710
- * <UserAvatar
2711
- * src={currentUser.avatar}
2712
- * alt={currentUser.name}
2713
- * indicator={true}
2714
- * className="w-16 h-16"
2715
- * />
2716
- * <div>
2717
- * <h2>{currentUser.name}</h2>
2718
- * <p className="text-gray-600">{currentUser.email}</p>
2719
- * </div>
2720
- * </div>
2721
- * ```
2722
- */
2723
- declare function UserAvatar({ className, indicator, src, alt }: UserAvatarProps): react_jsx_runtime.JSX.Element;
2724
- /**
2725
- * Utility function to generate initials from a name
2726
- *
2727
- * Extracts the first letter of each word in a name and converts
2728
- * them to uppercase to create user initials for avatar fallbacks.
2729
- *
2730
- * @param name - The full name to extract initials from
2731
- * @param count - Maximum number of initials to return (optional)
2732
- * @returns String containing the initials
2733
- *
2734
- * @example
2735
- * ```tsx
2736
- * getInitials("John Doe") // Returns "JD"
2737
- * getInitials("Jane Mary Smith", 2) // Returns "JM"
2738
- * getInitials("") // Returns ""
2739
- * getInitials(null) // Returns ""
2740
- * ```
2741
- */
2742
- declare const getInitials: (name: string | null | undefined, count?: number) => string;
2743
-
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 };
130
+ export { Icons, Logo };