@pelatform/ui 1.5.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.
Files changed (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +10 -0
  3. package/css/components/apexcharts.css +101 -0
  4. package/css/components/book.css +19 -0
  5. package/css/components/extra.css +12 -0
  6. package/css/components/image-input.css +51 -0
  7. package/css/components/leaflet.css +25 -0
  8. package/css/components/patterns.css +34 -0
  9. package/css/components/rating.css +89 -0
  10. package/css/components/scrollable.css +118 -0
  11. package/css/components/theme-transition.css +51 -0
  12. package/css/theme.css +237 -0
  13. package/dist/animation.cjs +1936 -0
  14. package/dist/animation.d.cts +379 -0
  15. package/dist/animation.d.ts +379 -0
  16. package/dist/animation.js +1936 -0
  17. package/dist/aria.cjs +139 -0
  18. package/dist/aria.d.cts +31 -0
  19. package/dist/aria.d.ts +31 -0
  20. package/dist/aria.js +139 -0
  21. package/dist/badge-BtI4BMea.d.cts +33 -0
  22. package/dist/badge-BtI4BMea.d.ts +33 -0
  23. package/dist/base.cjs +5559 -0
  24. package/dist/base.d.cts +651 -0
  25. package/dist/base.d.ts +651 -0
  26. package/dist/base.js +5559 -0
  27. package/dist/chunk-3N75YA6Q.cjs +60 -0
  28. package/dist/chunk-CD2BCCQU.js +180 -0
  29. package/dist/chunk-CJXIPSTG.cjs +10 -0
  30. package/dist/chunk-CYFW37N5.js +1355 -0
  31. package/dist/chunk-EZW5GNS4.js +6 -0
  32. package/dist/chunk-HW52LCWN.js +22 -0
  33. package/dist/chunk-I46SELBA.cjs +22 -0
  34. package/dist/chunk-J4JGE3U5.cjs +180 -0
  35. package/dist/chunk-KNS6QRVB.cjs +28 -0
  36. package/dist/chunk-OMPNDLGS.js +576 -0
  37. package/dist/chunk-RQHJBTEU.js +10 -0
  38. package/dist/chunk-S3QFGYE6.js +28 -0
  39. package/dist/chunk-SK6SSJHC.js +9 -0
  40. package/dist/chunk-T74DBLYY.js +60 -0
  41. package/dist/chunk-UP53DCYH.cjs +6 -0
  42. package/dist/chunk-VECBSKBC.cjs +576 -0
  43. package/dist/chunk-VSLPH2IR.cjs +1355 -0
  44. package/dist/chunk-ZDR3OZ7Z.cjs +9 -0
  45. package/dist/colors-CUDWvz1g.d.cts +42 -0
  46. package/dist/colors-CUDWvz1g.d.ts +42 -0
  47. package/dist/components-BgbIL9EW.d.cts +42 -0
  48. package/dist/components-BgbIL9EW.d.ts +42 -0
  49. package/dist/components.cjs +2276 -0
  50. package/dist/components.d.cts +2762 -0
  51. package/dist/components.d.ts +2762 -0
  52. package/dist/components.js +2276 -0
  53. package/dist/default.cjs +9081 -0
  54. package/dist/default.d.cts +1322 -0
  55. package/dist/default.d.ts +1322 -0
  56. package/dist/default.js +9081 -0
  57. package/dist/hooks.cjs +666 -0
  58. package/dist/hooks.d.cts +1176 -0
  59. package/dist/hooks.d.ts +1176 -0
  60. package/dist/hooks.js +666 -0
  61. package/dist/index.cjs +234 -0
  62. package/dist/index.d.cts +298 -0
  63. package/dist/index.d.ts +298 -0
  64. package/dist/index.js +234 -0
  65. package/dist/input-AwYIskrX.d.cts +22 -0
  66. package/dist/input-AwYIskrX.d.ts +22 -0
  67. package/dist/menu-GmSRfRGB.d.cts +43 -0
  68. package/dist/menu-GmSRfRGB.d.ts +43 -0
  69. package/dist/metafile-cjs.json +1 -0
  70. package/dist/metafile-esm.json +1 -0
  71. package/dist/re-export/cva.cjs +6 -0
  72. package/dist/re-export/cva.d.cts +9 -0
  73. package/dist/re-export/cva.d.ts +9 -0
  74. package/dist/re-export/cva.js +6 -0
  75. package/dist/re-export/motion.cjs +2 -0
  76. package/dist/re-export/motion.d.cts +1 -0
  77. package/dist/re-export/motion.d.ts +1 -0
  78. package/dist/re-export/motion.js +2 -0
  79. package/dist/re-export/next-themes.cjs +2 -0
  80. package/dist/re-export/next-themes.d.cts +1 -0
  81. package/dist/re-export/next-themes.d.ts +1 -0
  82. package/dist/re-export/next-themes.js +2 -0
  83. package/dist/re-export/react-day-picker.cjs +2 -0
  84. package/dist/re-export/react-day-picker.d.cts +1 -0
  85. package/dist/re-export/react-day-picker.d.ts +1 -0
  86. package/dist/re-export/react-day-picker.js +2 -0
  87. package/dist/re-export/react-hook-form.cjs +2 -0
  88. package/dist/re-export/react-hook-form.d.cts +1 -0
  89. package/dist/re-export/react-hook-form.d.ts +1 -0
  90. package/dist/re-export/react-hook-form.js +2 -0
  91. package/dist/re-export/sonner.cjs +2 -0
  92. package/dist/re-export/sonner.d.cts +1 -0
  93. package/dist/re-export/sonner.d.ts +1 -0
  94. package/dist/re-export/sonner.js +2 -0
  95. package/dist/re-export/tanstack-query.cjs +2 -0
  96. package/dist/re-export/tanstack-query.d.cts +1 -0
  97. package/dist/re-export/tanstack-query.d.ts +1 -0
  98. package/dist/re-export/tanstack-query.js +2 -0
  99. package/dist/re-export/tanstack-table.cjs +2 -0
  100. package/dist/re-export/tanstack-table.d.cts +1 -0
  101. package/dist/re-export/tanstack-table.d.ts +1 -0
  102. package/dist/re-export/tanstack-table.js +2 -0
  103. package/dist/re-export/zod.cjs +2 -0
  104. package/dist/re-export/zod.d.cts +1 -0
  105. package/dist/re-export/zod.d.ts +1 -0
  106. package/dist/re-export/zod.js +2 -0
  107. package/package.json +171 -0
@@ -0,0 +1,2762 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { B as BaseProps, L as Link, I as Image } from './components-BgbIL9EW.js';
3
+ import * as React$1 from 'react';
4
+ import React__default, { HTMLAttributes, ReactNode, ComponentProps, FC, DragEvent, RefObject } from 'react';
5
+ import { DialogProps } from '@radix-ui/react-dialog';
6
+ import { ThemeProvider as ThemeProvider$1 } from 'next-themes';
7
+ import { VariantProps } from 'class-variance-authority';
8
+ import { b as badgeVariants } from './badge-BtI4BMea.js';
9
+ import { a as ThemeMode } from './colors-CUDWvz1g.js';
10
+ import 'class-variance-authority/types';
11
+
12
+ /**
13
+ * Alert Toast Component
14
+ *
15
+ * This module provides a customizable toast notification system using Sonner
16
+ * with integrated Alert components for consistent UI styling.
17
+ *
18
+ * Features:
19
+ * - Multiple icon variants (primary, destructive, success, info, warning)
20
+ * - Customizable alert variants for different visual styles
21
+ * - Auto-dismiss after 4 seconds
22
+ * - Unique ID generation for each toast
23
+ */
24
+ /**
25
+ * Configuration options for the alert toast notification
26
+ */
27
+ interface AlertToastOptions {
28
+ /** Custom message to display in the toast */
29
+ message?: string;
30
+ /** Icon variant to display in the alert - determines which icon is shown */
31
+ icon?: 'primary' | 'destructive' | 'success' | 'info' | 'warning';
32
+ /** Visual variant of the alert component - affects styling and colors */
33
+ variant?: 'secondary' | 'primary' | 'destructive' | 'mono' | 'success' | 'info' | 'warning';
34
+ }
35
+ /**
36
+ * Creates and displays a customizable alert toast notification
37
+ *
38
+ * @param options - Configuration options for the toast
39
+ * @param options.message - The message to display (default: 'This is a toast')
40
+ * @param options.icon - The icon variant to show (default: 'success')
41
+ * @param options.variant - The visual style variant (default: 'mono')
42
+ *
43
+ * @example
44
+ * ```tsx
45
+ * // Show a success message
46
+ * AlertToast({ message: 'Data saved successfully!' });
47
+ *
48
+ * // Show an error message
49
+ * AlertToast({
50
+ * message: 'Failed to save data',
51
+ * icon: 'destructive',
52
+ * variant: 'destructive'
53
+ * });
54
+ * ```
55
+ */
56
+ declare function AlertToast({ message, icon, variant, }: AlertToastOptions): void;
57
+ /**
58
+ * Alert Notification Component
59
+ *
60
+ * Renders a static alert notification with appropriate icon and styling
61
+ * based on the variant. This component is used for displaying persistent
62
+ * alerts that don't auto-dismiss like toast notifications.
63
+ *
64
+ * @param props - Component props
65
+ * @param props.message - The message to display in the alert
66
+ * @param props.variant - The visual style variant (default: 'info')
67
+ *
68
+ * @returns JSX element or null if no message is provided
69
+ *
70
+ * @example
71
+ * ```tsx
72
+ * // Basic info alert
73
+ * <AlertNotification message="Please verify your email address" />
74
+ *
75
+ * // Error alert
76
+ * <AlertNotification
77
+ * message="Failed to load data"
78
+ * variant="destructive"
79
+ * />
80
+ *
81
+ * // Success alert
82
+ * <AlertNotification
83
+ * message="Profile updated successfully"
84
+ * variant="success"
85
+ * />
86
+ *
87
+ * // Warning alert
88
+ * <AlertNotification
89
+ * message="Your session will expire soon"
90
+ * variant="warning"
91
+ * />
92
+ * ```
93
+ */
94
+ declare function AlertNotification({ message, variant }: AlertToastOptions): react_jsx_runtime.JSX.Element | null;
95
+ /**
96
+ * Displays a standardized "coming soon" toast notification
97
+ *
98
+ * This function creates a consistent user experience for features that are
99
+ * not yet implemented. It uses a custom toast with alert styling to inform
100
+ * users that the feature they're trying to access is under development.
101
+ *
102
+ * @param options - Configuration options for the toast appearance and message
103
+ *
104
+ * @example
105
+ * ```tsx
106
+ * // Basic usage with default message
107
+ * AlertComingsoon();
108
+ *
109
+ * // Custom message with warning variant
110
+ * AlertComingsoon({
111
+ * message: 'Advanced analytics coming in Q2 2024',
112
+ * icon: 'warning',
113
+ * variant: 'warning'
114
+ * });
115
+ *
116
+ * // Success variant for positive messaging
117
+ * AlertComingsoon({
118
+ * message: 'New dashboard features are on the way!',
119
+ * icon: 'success',
120
+ * variant: 'success'
121
+ * });
122
+ *
123
+ * // Use in event handlers
124
+ * const handlePremiumFeature = () => {
125
+ * AlertComingsoon({
126
+ * message: 'Premium features available soon',
127
+ * icon: 'info',
128
+ * variant: 'info'
129
+ * });
130
+ * };
131
+ * ```
132
+ */
133
+ declare const AlertComingsoon: ({ message, icon, variant, }?: AlertToastOptions) => void;
134
+
135
+ /**
136
+ * Confirm Dismiss Dialog Component
137
+ * Provides a reusable confirmation dialog for destructive actions like discarding changes
138
+ * Built on top of AlertDialog with customizable content and actions
139
+ */
140
+ /**
141
+ * Props interface for the ConfirmDismissDialog component
142
+ */
143
+ interface ConfirmDismissDialogProps {
144
+ /** Whether the dialog is open */
145
+ open: boolean;
146
+ /** Callback to handle dialog open state changes */
147
+ onOpenChange: (open: boolean) => void;
148
+ /** Callback executed when user confirms the action */
149
+ onConfirm: () => void;
150
+ /** Optional callback executed when user cancels (defaults to closing dialog) */
151
+ onCancel?: () => void;
152
+ /** Dialog title text (defaults to "Discard changes?") */
153
+ title?: string;
154
+ /** Dialog description text (defaults to unsaved changes message) */
155
+ description?: string;
156
+ /** Confirm button text (defaults to "Discard changes") */
157
+ confirmText?: string;
158
+ /** Cancel button text (defaults to "Cancel") */
159
+ cancelText?: string;
160
+ /** CSS class for maximum width (defaults to "md:max-w-[375px]") */
161
+ maxWidth?: string;
162
+ }
163
+ /**
164
+ * Reusable confirmation dialog for destructive actions
165
+ *
166
+ * This component provides a standardized way to confirm destructive actions
167
+ * like discarding unsaved changes, deleting items, or leaving forms.
168
+ * It includes customizable text and handles both confirm and cancel actions.
169
+ *
170
+ * @param props - Component props for dialog configuration
171
+ * @returns JSX element containing the confirmation dialog
172
+ *
173
+ * @example
174
+ * ```tsx
175
+ * // Basic usage for form dismissal
176
+ * function FormComponent() {
177
+ * const [showDialog, setShowDialog] = useState(false);
178
+ * const [hasChanges, setHasChanges] = useState(false);
179
+ *
180
+ * const handleClose = () => {
181
+ * if (hasChanges) {
182
+ * setShowDialog(true);
183
+ * } else {
184
+ * // Close form directly
185
+ * onClose();
186
+ * }
187
+ * };
188
+ *
189
+ * return (
190
+ * <>
191
+ * <form>
192
+ * <button type="button" onClick={handleClose}>Close</button>
193
+ * </form>
194
+ *
195
+ * <ConfirmDismissDialog
196
+ * open={showDialog}
197
+ * onOpenChange={setShowDialog}
198
+ * onConfirm={() => {
199
+ * setShowDialog(false);
200
+ * onClose(); // Actually close the form
201
+ * }}
202
+ * />
203
+ * </>
204
+ * );
205
+ * }
206
+ *
207
+ * // Custom dialog for deletion
208
+ * <ConfirmDismissDialog
209
+ * open={showDeleteDialog}
210
+ * onOpenChange={setShowDeleteDialog}
211
+ * title="Delete item?"
212
+ * description="This action cannot be undone. Are you sure you want to delete this item?"
213
+ * confirmText="Delete"
214
+ * cancelText="Keep"
215
+ * onConfirm={handleDelete}
216
+ * />
217
+ * ```
218
+ */
219
+ declare const ConfirmDismissDialog: ({ open, onOpenChange, onConfirm, onCancel, title, description, confirmText, cancelText, maxWidth, }: ConfirmDismissDialogProps) => react_jsx_runtime.JSX.Element;
220
+
221
+ /**
222
+ * Screen Loader Component
223
+ * Provides a full-screen loading overlay with spinner and customizable text
224
+ * Perfect for page transitions, data loading, and async operations
225
+ */
226
+ /**
227
+ * Props interface for the ScreenLoader component
228
+ */
229
+ interface ScreenLoaderProps {
230
+ /** Loading text to display below the spinner */
231
+ loadingText?: string;
232
+ /** Additional CSS classes for the container */
233
+ className?: string;
234
+ /** Additional CSS classes for the spinner icon */
235
+ spinnerClassName?: string;
236
+ /** Additional CSS classes for the loading text */
237
+ textClassName?: string;
238
+ /** Display loader for content */
239
+ contentLoader?: boolean;
240
+ }
241
+ /**
242
+ * ScreenLoader Component
243
+ *
244
+ * A full-screen loading overlay that covers the entire viewport.
245
+ * Features a spinning icon and customizable loading text with
246
+ * smooth fade transitions. Positioned with high z-index to
247
+ * appear above all other content.
248
+ *
249
+ * @param props - Component props
250
+ * @returns JSX element containing the full-screen loader
251
+ *
252
+ * @example
253
+ * ```tsx
254
+ * // Basic usage
255
+ * function App() {
256
+ * const [isLoading, setIsLoading] = useState(true);
257
+ *
258
+ * useEffect(() => {
259
+ * // Simulate loading
260
+ * setTimeout(() => setIsLoading(false), 2000);
261
+ * }, []);
262
+ *
263
+ * return (
264
+ * <div>
265
+ * {isLoading && <ScreenLoader />}
266
+ * <main>Your app content</main>
267
+ * </div>
268
+ * );
269
+ * }
270
+ *
271
+ * // Custom loading text
272
+ * <ScreenLoader loadingText="Preparing your dashboard..." />
273
+ *
274
+ * // Custom styling
275
+ * <ScreenLoader
276
+ * loadingText="Please wait"
277
+ * className="bg-black/80 backdrop-blur-sm"
278
+ * spinnerClassName="size-8 animate-spin text-blue-500"
279
+ * textClassName="text-white text-lg font-semibold"
280
+ * />
281
+ *
282
+ * // With conditional rendering
283
+ * {isSubmitting && (
284
+ * <ScreenLoader
285
+ * loadingText="Submitting form..."
286
+ * className="bg-white/90"
287
+ * />
288
+ * )}
289
+ *
290
+ * // Different spinner sizes
291
+ * <ScreenLoader
292
+ * spinnerClassName="size-12 animate-spin text-purple-600"
293
+ * textClassName="text-purple-600 font-bold"
294
+ * />
295
+ * ```
296
+ */
297
+ declare function ScreenLoader({ loadingText, className, spinnerClassName, textClassName, contentLoader, }?: ScreenLoaderProps): react_jsx_runtime.JSX.Element;
298
+
299
+ /**
300
+ * Body Component
301
+ *
302
+ * A wrapper component for the HTML body element that applies dynamic
303
+ * class names based on the provided slug. Useful for implementing
304
+ * theme switching, page-specific styling, or mode-based layouts.
305
+ *
306
+ * @param props - Component props
307
+ * @param props.children - Content to render inside the body
308
+ * @param props.slug - Slug used to determine additional class names
309
+ * @param props.className - Additional CSS classes to merge
310
+ * @returns JSX body element with combined class names
311
+ *
312
+ * @example
313
+ * ```tsx
314
+ * // Basic usage with theme slug
315
+ * <Body slug={['dark', 'compact']} className="font-sans">
316
+ * <div>Page content</div>
317
+ * </Body>
318
+ *
319
+ * // With single slug
320
+ * <Body slug="admin" className="bg-gray-100">
321
+ * <AdminPanel />
322
+ * </Body>
323
+ *
324
+ * // Dynamic theme switching
325
+ * function App() {
326
+ * const [theme, setTheme] = useState(['light']);
327
+ *
328
+ * return (
329
+ * <Body slug={theme} className="transition-colors">
330
+ * <ThemeToggle onThemeChange={setTheme} />
331
+ * <MainContent />
332
+ * </Body>
333
+ * );
334
+ * }
335
+ * ```
336
+ */
337
+ declare function Body({ slug, children, className }: BaseProps & {
338
+ slug: string;
339
+ }): react_jsx_runtime.JSX.Element;
340
+
341
+ /**
342
+ * Grid Component
343
+ * Renders an SVG grid pattern overlay for background decoration
344
+ * Useful for creating grid-based layouts or visual guides
345
+ */
346
+ /**
347
+ * Grid Component
348
+ *
349
+ * Renders an SVG-based grid pattern that can be used as a background
350
+ * overlay. The grid is responsive and fills its container while
351
+ * maintaining consistent cell sizes and stroke widths.
352
+ *
353
+ * @param props - Component props
354
+ * @param props.cellSize - Size of each grid cell (default: 12px)
355
+ * @param props.strokeWidth - Width of grid lines (default: 1px)
356
+ * @param props.patternOffset - Grid offset position (default: [0, 0])
357
+ * @param props.className - Additional CSS classes
358
+ * @returns JSX SVG element with grid pattern
359
+ *
360
+ * @example
361
+ * ```tsx
362
+ * // Basic grid overlay
363
+ * <div className="relative">
364
+ * <Grid />
365
+ * <div>Content over grid</div>
366
+ * </div>
367
+ *
368
+ * // Custom grid with larger cells
369
+ * <Grid
370
+ * cellSize={24}
371
+ * strokeWidth={2}
372
+ * className="text-blue-500/20"
373
+ * />
374
+ *
375
+ * // Offset grid pattern
376
+ * <Grid
377
+ * cellSize={16}
378
+ * patternOffset={[8, 8]}
379
+ * className="text-gray-300/30"
380
+ * />
381
+ *
382
+ * // Fine grid for detailed layouts
383
+ * <Grid
384
+ * cellSize={8}
385
+ * strokeWidth={0.5}
386
+ * className="text-slate-400/15"
387
+ * />
388
+ * ```
389
+ */
390
+ declare function Grid({ cellSize, strokeWidth, patternOffset, className, }: {
391
+ /** Size of each grid cell in pixels */
392
+ cellSize?: number;
393
+ /** Width of the grid lines in pixels */
394
+ strokeWidth?: number;
395
+ /** Offset position for the grid pattern [x, y] */
396
+ patternOffset?: [number, number];
397
+ /** Additional CSS classes to apply to the grid */
398
+ className?: string;
399
+ }): react_jsx_runtime.JSX.Element;
400
+
401
+ /**
402
+ * Props interface for the Section component
403
+ */
404
+ type SectionProps = {
405
+ /** Additional CSS classes to apply to the section element */
406
+ sectionClassName?: string;
407
+ } & HTMLAttributes<HTMLDivElement>;
408
+ /**
409
+ * Section Component
410
+ *
411
+ * A layout component that creates structured sections with a grid background
412
+ * and decorative corner elements. Provides consistent spacing and visual
413
+ * hierarchy for page content sections.
414
+ *
415
+ * @param props - Component props extending HTMLDivElement attributes
416
+ * @param props.children - Content to render inside the section
417
+ * @param props.sectionClassName - CSS classes for the section element
418
+ * @param props.className - CSS classes for the content container
419
+ * @returns JSX section element with grid background and decorative elements
420
+ *
421
+ * @example
422
+ * ```tsx
423
+ * // Basic section
424
+ * <Section>
425
+ * <h2>Section Title</h2>
426
+ * <p>Section content</p>
427
+ * </Section>
428
+ *
429
+ * // With custom styling
430
+ * <Section
431
+ * sectionClassName="py-16 bg-gray-50"
432
+ * className="text-center"
433
+ * >
434
+ * <Hero />
435
+ * </Section>
436
+ *
437
+ * // Multiple sections
438
+ * <main>
439
+ * <Section sectionClassName="bg-white">
440
+ * <Introduction />
441
+ * </Section>
442
+ * <Section sectionClassName="bg-gray-100">
443
+ * <Features />
444
+ * </Section>
445
+ * <Section sectionClassName="bg-blue-50">
446
+ * <CallToAction />
447
+ * </Section>
448
+ * </main>
449
+ *
450
+ * // With additional props
451
+ * <Section
452
+ * id="about"
453
+ * sectionClassName="scroll-mt-16"
454
+ * className="space-y-8"
455
+ * >
456
+ * <AboutContent />
457
+ * </Section>
458
+ * ```
459
+ */
460
+ declare const Section: ({ children, sectionClassName, className, ...props }: SectionProps) => react_jsx_runtime.JSX.Element;
461
+
462
+ /**
463
+ * SiteFooter Component
464
+ *
465
+ * A responsive footer component that provides consistent styling
466
+ * and layout for site-wide footer content. Features a top border,
467
+ * responsive padding, and flexible content arrangement.
468
+ *
469
+ * Features:
470
+ * - Responsive design (stacked on mobile, horizontal on desktop)
471
+ * - Consistent container width and padding
472
+ * - Top border for visual separation
473
+ * - Flexible content arrangement
474
+ * - Semantic footer element
475
+ *
476
+ * @param props - Component props
477
+ * @returns JSX element containing the site footer
478
+ *
479
+ * @example
480
+ * ```tsx
481
+ * // Basic usage with copyright and links
482
+ * <SiteFooter>
483
+ * <div className="flex flex-col items-center gap-4 md:flex-row">
484
+ * <p className="text-sm text-muted-foreground">
485
+ * © 2024 Your Company. All rights reserved.
486
+ * </p>
487
+ * <nav className="flex gap-4">
488
+ * <Link href="/privacy" className="text-sm hover:underline">
489
+ * Privacy Policy
490
+ * </Link>
491
+ * <Link href="/terms" className="text-sm hover:underline">
492
+ * Terms of Service
493
+ * </Link>
494
+ * </nav>
495
+ * </div>
496
+ * </SiteFooter>
497
+ *
498
+ * // With social links and newsletter
499
+ * <SiteFooter>
500
+ * <div className="text-sm text-muted-foreground">
501
+ * © 2024 Your Company
502
+ * </div>
503
+ * <div className="flex items-center gap-4">
504
+ * <SocialLinks />
505
+ * <NewsletterSignup />
506
+ * </div>
507
+ * </SiteFooter>
508
+ *
509
+ * // Custom styling
510
+ * <SiteFooter className="bg-gray-50 dark:bg-gray-900">
511
+ * <FooterContent />
512
+ * </SiteFooter>
513
+ * ```
514
+ */
515
+ declare function SiteFooter({ children, className }: BaseProps): react_jsx_runtime.JSX.Element;
516
+
517
+ /**
518
+ * SiteHeader Component
519
+ *
520
+ * A sticky header component with modern styling including backdrop blur,
521
+ * semi-transparent background, and responsive design. Positioned at the
522
+ * top of the viewport with high z-index for proper layering.
523
+ *
524
+ * Features:
525
+ * - Sticky positioning at top of viewport
526
+ * - Backdrop blur effect for modern appearance
527
+ * - Semi-transparent background with fallback
528
+ * - Bottom border for visual separation
529
+ * - Responsive container with consistent spacing
530
+ * - High z-index for proper layering
531
+ * - Dark mode support
532
+ *
533
+ * @param props - Component props
534
+ * @returns JSX element containing the site header
535
+ *
536
+ * @example
537
+ * ```tsx
538
+ * // Basic usage with logo and navigation
539
+ * <SiteHeader>
540
+ * <div className="flex items-center gap-4">
541
+ * <Logo />
542
+ * <MainNav items={navItems} />
543
+ * </div>
544
+ * <div className="flex items-center gap-2">
545
+ * <ThemeToggle />
546
+ * <UserMenu />
547
+ * </div>
548
+ * </SiteHeader>
549
+ *
550
+ * // With mobile navigation
551
+ * <SiteHeader>
552
+ * <div className="flex items-center gap-4">
553
+ * <MobileNav>
554
+ * <MobileNavItems />
555
+ * </MobileNav>
556
+ * <Logo />
557
+ * <MainNav items={navItems} className="hidden md:flex" />
558
+ * </div>
559
+ * <HeaderActions />
560
+ * </SiteHeader>
561
+ *
562
+ * // Custom styling
563
+ * <SiteHeader className="bg-white/80 border-gray-200">
564
+ * <HeaderContent />
565
+ * </SiteHeader>
566
+ * ```
567
+ */
568
+ declare function SiteHeader({ className, children }: BaseProps): react_jsx_runtime.JSX.Element;
569
+
570
+ /**
571
+ * MaxWidthWrapper Component
572
+ *
573
+ * A responsive container component that constrains content to a maximum
574
+ * width while providing consistent padding and centering. Ideal for
575
+ * creating readable layouts that work well across different screen sizes.
576
+ *
577
+ * @param props - Component props
578
+ * @param props.className - Additional CSS classes to merge
579
+ * @param props.children - Content to render inside the wrapper
580
+ * @returns JSX div element with max-width constraints and responsive padding
581
+ *
582
+ * @example
583
+ * ```tsx
584
+ * // Basic content wrapper
585
+ * <MaxWidthWrapper>
586
+ * <h1>Page Title</h1>
587
+ * <p>Content that won't exceed the maximum width</p>
588
+ * </MaxWidthWrapper>
589
+ *
590
+ * // With custom styling
591
+ * <MaxWidthWrapper className="bg-gray-50 rounded-lg">
592
+ * <Article />
593
+ * </MaxWidthWrapper>
594
+ *
595
+ * // Multiple sections
596
+ * <main>
597
+ * <MaxWidthWrapper>
598
+ * <Header />
599
+ * </MaxWidthWrapper>
600
+ * <MaxWidthWrapper className="py-8">
601
+ * <MainContent />
602
+ * </MaxWidthWrapper>
603
+ * <MaxWidthWrapper>
604
+ * <Footer />
605
+ * </MaxWidthWrapper>
606
+ * </main>
607
+ *
608
+ * // Nested with other layout components
609
+ * <Section>
610
+ * <MaxWidthWrapper>
611
+ * <Grid>
612
+ * <Card>Content</Card>
613
+ * </Grid>
614
+ * </MaxWidthWrapper>
615
+ * </Section>
616
+ * ```
617
+ */
618
+ declare function MaxWidthWrapper({ className, children }: BaseProps): react_jsx_runtime.JSX.Element;
619
+
620
+ /**
621
+ * CodeDisplay Component
622
+ *
623
+ * A responsive layout component that displays code examples alongside
624
+ * their rendered output. Features a two-column layout on desktop
625
+ * and stacked layout on mobile devices.
626
+ *
627
+ * @param props - Component props
628
+ * @param props.children - Code content (typically syntax-highlighted)
629
+ * @param props.component - The rendered component to showcase
630
+ * @returns JSX element with side-by-side code and component display
631
+ *
632
+ * @example
633
+ * ```tsx
634
+ * // Basic usage in MDX documentation
635
+ * <CodeDisplay component={<Button>Click me</Button>}>
636
+ * ```tsx
637
+ * <Button>Click me</Button>
638
+ * ```
639
+ * </CodeDisplay>
640
+ *
641
+ * // With complex component
642
+ * <CodeDisplay
643
+ * component={
644
+ * <Card className="w-64">
645
+ * <CardHeader>
646
+ * <CardTitle>Example Card</CardTitle>
647
+ * </CardHeader>
648
+ * <CardContent>
649
+ * <p>Card content here</p>
650
+ * </CardContent>
651
+ * </Card>
652
+ * }
653
+ * >
654
+ * ```tsx
655
+ * <Card className="w-64">
656
+ * <CardHeader>
657
+ * <CardTitle>Example Card</CardTitle>
658
+ * </CardHeader>
659
+ * <CardContent>
660
+ * <p>Card content here</p>
661
+ * </CardContent>
662
+ * </Card>
663
+ * ```
664
+ * </CodeDisplay>
665
+ *
666
+ * // Interactive component showcase
667
+ * <CodeDisplay component={<InteractiveDemo />}>
668
+ * ```tsx
669
+ * function InteractiveDemo() {
670
+ * const [count, setCount] = useState(0);
671
+ * return (
672
+ * <Button onClick={() => setCount(count + 1)}>
673
+ * Clicked {count} times
674
+ * </Button>
675
+ * );
676
+ * }
677
+ * ```
678
+ * </CodeDisplay>
679
+ * ```
680
+ */
681
+ declare function CodeDisplay({ children, component, }: {
682
+ children: ReactNode;
683
+ component: ReactNode;
684
+ }): react_jsx_runtime.JSX.Element;
685
+
686
+ /**
687
+ * DownloadFile Component
688
+ *
689
+ * A styled download button component that opens files in a new tab
690
+ * with proper security attributes. Features a download icon and
691
+ * rounded button styling.
692
+ *
693
+ * @param props - Component props
694
+ * @param props.children - Button label or content
695
+ * @param props.href - URL of the file to download
696
+ * @param props.className - Additional CSS classes
697
+ * @returns JSX element with download button
698
+ *
699
+ * @example
700
+ * ```tsx
701
+ * // Basic file download
702
+ * <DownloadFile href="/files/document.pdf">
703
+ * Download PDF
704
+ * </DownloadFile>
705
+ *
706
+ * // Custom styling
707
+ * <DownloadFile
708
+ * href="/assets/template.zip"
709
+ * className="bg-blue-600 hover:bg-blue-700"
710
+ * >
711
+ * Download Template
712
+ * </DownloadFile>
713
+ *
714
+ * // Multiple download options
715
+ * <div className="flex gap-4">
716
+ * <DownloadFile href="/files/guide.pdf">
717
+ * User Guide (PDF)
718
+ * </DownloadFile>
719
+ * <DownloadFile href="/files/guide.docx">
720
+ * User Guide (Word)
721
+ * </DownloadFile>
722
+ * </div>
723
+ *
724
+ * // In MDX content
725
+ * Here's the latest version of our software:
726
+ *
727
+ * <DownloadFile href="/releases/app-v2.1.0.zip">
728
+ * Download v2.1.0
729
+ * </DownloadFile>
730
+ * ```
731
+ */
732
+ declare function DownloadFile({ children, className, href }: BaseProps & {
733
+ href: string;
734
+ }): react_jsx_runtime.JSX.Element;
735
+
736
+ declare function ExtraLink({ Link, href, target, className, children, }: SharedLink & ComponentProps<Link>): react_jsx_runtime.JSX.Element;
737
+
738
+ /**
739
+ * Video Component
740
+ *
741
+ * A styled video component that extends the native HTML video element
742
+ * with consistent styling, responsive design, and automatic controls.
743
+ * Perfect for embedding videos in MDX documentation or content.
744
+ *
745
+ * @param props - Standard HTML video element props
746
+ * @param props.className - Additional CSS classes to merge
747
+ * @returns JSX video element with enhanced styling
748
+ *
749
+ * @example
750
+ * ```tsx
751
+ * // Basic video with source
752
+ * <Video src="/videos/demo.mp4" />
753
+ *
754
+ * // Video with multiple sources
755
+ * <Video>
756
+ * <source src="/videos/demo.webm" type="video/webm" />
757
+ * <source src="/videos/demo.mp4" type="video/mp4" />
758
+ * Your browser does not support the video tag.
759
+ * </Video>
760
+ *
761
+ * // Custom styling
762
+ * <Video
763
+ * src="/videos/tutorial.mp4"
764
+ * className="max-w-md mx-auto"
765
+ * />
766
+ *
767
+ * // With additional attributes
768
+ * <Video
769
+ * src="/videos/background.mp4"
770
+ * autoPlay
771
+ * muted
772
+ * playsInline
773
+ * className="w-full h-64 object-cover"
774
+ * />
775
+ *
776
+ * // In MDX content
777
+ * Here's a demonstration of the feature:
778
+ *
779
+ * <Video src="/demos/feature-walkthrough.mp4" />
780
+ * ```
781
+ */
782
+ declare function Video({ className, ...props }: ComponentProps<'video'>): react_jsx_runtime.JSX.Element;
783
+
784
+ /**
785
+ * Wrapper Component
786
+ *
787
+ * A decorative container component with gradient background and border styling.
788
+ * Features a radial gradient from blue with transparency and responsive design.
789
+ * Ideal for highlighting important content, callouts, or special sections in MDX.
790
+ *
791
+ * @param props - Component props
792
+ * @param props.children - Content to render inside the wrapper
793
+ * @param props.className - Additional CSS classes to merge
794
+ * @returns JSX element with styled wrapper container
795
+ *
796
+ * @example
797
+ * ```tsx
798
+ * // Basic content wrapper
799
+ * <Wrapper>
800
+ * <h3>Important Notice</h3>
801
+ * <p>This is highlighted content that stands out from the rest.</p>
802
+ * </Wrapper>
803
+ *
804
+ * // Custom styling
805
+ * <Wrapper className="my-8 text-center">
806
+ * <blockquote>
807
+ * "This is a featured quote or testimonial."
808
+ * </blockquote>
809
+ * </Wrapper>
810
+ *
811
+ * // Code example highlight
812
+ * <Wrapper>
813
+ * <h4>Pro Tip</h4>
814
+ * <p>Use this pattern for better performance:</p>
815
+ * <code>const memoizedValue = useMemo(() => expensiveCalculation(), [deps]);</code>
816
+ * </Wrapper>
817
+ *
818
+ * // In MDX content for callouts
819
+ * <Wrapper>
820
+ * **Warning:** This feature is experimental and may change in future versions.
821
+ * </Wrapper>
822
+ *
823
+ * // Multiple wrappers for different content types
824
+ * <div className="space-y-6">
825
+ * <Wrapper>
826
+ * <h3>Feature Highlight</h3>
827
+ * <p>New functionality description</p>
828
+ * </Wrapper>
829
+ * <Wrapper className="border-green-200 bg-green-50">
830
+ * <h3>Success Story</h3>
831
+ * <p>Customer testimonial</p>
832
+ * </Wrapper>
833
+ * </div>
834
+ * ```
835
+ */
836
+ declare function Wrapper({ children, className }: BaseProps): react_jsx_runtime.JSX.Element;
837
+
838
+ /**
839
+ * Youtube Component
840
+ * Embeds YouTube videos in MDX content with responsive design
841
+ * Features 16:9 aspect ratio and rounded corners for consistent styling
842
+ */
843
+ /**
844
+ * Youtube Component
845
+ *
846
+ * Embeds YouTube videos using an iframe with responsive design and
847
+ * consistent styling. Automatically maintains 16:9 aspect ratio
848
+ * and includes proper accessibility attributes.
849
+ *
850
+ * @param props - Component props
851
+ * @param props.id - YouTube video ID (the part after 'v=' in YouTube URLs)
852
+ * @returns JSX iframe element for YouTube video embedding
853
+ *
854
+ * @example
855
+ * ```tsx
856
+ * // Basic YouTube video embed
857
+ * <Youtube id="dQw4w9WgXcQ" />
858
+ *
859
+ * // Extract ID from YouTube URL
860
+ * // URL: https://www.youtube.com/watch?v=dQw4w9WgXcQ
861
+ * // ID: dQw4w9WgXcQ
862
+ * <Youtube id="dQw4w9WgXcQ" />
863
+ *
864
+ * // In MDX content
865
+ * Here's a tutorial video:
866
+ *
867
+ * <Youtube id="ScMzIvxBSi4" />
868
+ *
869
+ * // Multiple videos in sequence
870
+ * <div className="space-y-8">
871
+ * <div>
872
+ * <h3>Introduction</h3>
873
+ * <Youtube id="intro-video-id" />
874
+ * </div>
875
+ * <div>
876
+ * <h3>Advanced Tutorial</h3>
877
+ * <Youtube id="advanced-video-id" />
878
+ * </div>
879
+ * </div>
880
+ *
881
+ * // With surrounding content
882
+ * ## Video Tutorial
883
+ *
884
+ * Watch this comprehensive guide to get started:
885
+ *
886
+ * <Youtube id="tutorial-video-id" />
887
+ *
888
+ * After watching the video, you can proceed to the next section.
889
+ * ```
890
+ */
891
+ declare function Youtube({ id }: {
892
+ id: string;
893
+ }): react_jsx_runtime.JSX.Element;
894
+
895
+ /**
896
+ * Shared Component Types and Default Implementations
897
+ * Provides reusable component interfaces and default implementations
898
+ * for common UI elements like images, links, and navigation
899
+ */
900
+
901
+ /**
902
+ * Interface for components that accept a custom Image component
903
+ * Allows injection of custom image implementations (e.g., Next.js Image)
904
+ */
905
+ interface SharedImage {
906
+ /** Custom Image component implementation */
907
+ Image?: Image;
908
+ }
909
+ /**
910
+ * Interface for components that accept a custom Link component
911
+ * Allows injection of custom link implementations (e.g., Next.js Link)
912
+ */
913
+ interface SharedLink {
914
+ /** Custom Link component implementation */
915
+ Link?: Link;
916
+ }
917
+ /**
918
+ * Interface for components that accept a custom navigation function
919
+ * Allows injection of custom navigation implementations (e.g., Next.js router)
920
+ */
921
+ interface SharedNavigate {
922
+ /** Custom navigation function */
923
+ navigate?: (href: string) => void;
924
+ }
925
+ /**
926
+ * Default Image Component
927
+ *
928
+ * A basic HTML img element implementation that serves as the default
929
+ * when no custom Image component is provided. Supports standard
930
+ * image attributes and CSS classes.
931
+ *
932
+ * @param props - Image component props
933
+ * @param props.src - Source URL of the image
934
+ * @param props.alt - Alt text for accessibility
935
+ * @param props.className - Additional CSS classes
936
+ * @returns JSX element containing a standard img tag
937
+ *
938
+ * @example
939
+ * ```tsx
940
+ * // Basic usage
941
+ * <DefaultImage
942
+ * src="/images/logo.png"
943
+ * alt="Company Logo"
944
+ * className="w-32 h-auto"
945
+ * />
946
+ * ```
947
+ */
948
+ declare const DefaultImage: Image;
949
+ /**
950
+ * Default Link Component
951
+ *
952
+ * A basic HTML anchor element implementation that serves as the default
953
+ * when no custom Link component is provided. Supports standard
954
+ * link attributes and CSS classes.
955
+ *
956
+ * @param props - Link component props
957
+ * @param props.href - Destination URL
958
+ * @param props.className - Additional CSS classes
959
+ * @param props.children - Link content
960
+ * @returns JSX element containing a standard anchor tag
961
+ *
962
+ * @example
963
+ * ```tsx
964
+ * // Basic usage
965
+ * <DefaultLink
966
+ * href="/about"
967
+ * className="text-blue-600 hover:underline"
968
+ * >
969
+ * About Us
970
+ * </DefaultLink>
971
+ * ```
972
+ */
973
+ declare const DefaultLink: Link;
974
+ /**
975
+ * Default Navigation Function
976
+ *
977
+ * A basic navigation implementation using window.location.href
978
+ * that serves as the default when no custom navigation function
979
+ * is provided. Performs a full page navigation.
980
+ *
981
+ * @param href - Destination URL to navigate to
982
+ *
983
+ * @example
984
+ * ```tsx
985
+ * // Basic usage
986
+ * const handleNavigation = () => {
987
+ * DefaultNavigate('/dashboard');
988
+ * };
989
+ *
990
+ * // In a component
991
+ * <button onClick={() => DefaultNavigate('/contact')}>
992
+ * Contact Us
993
+ * </button>
994
+ * ```
995
+ */
996
+ declare const DefaultNavigate: (href: string) => void;
997
+
998
+ /**
999
+ * Props interface for the BackLink component
1000
+ */
1001
+ interface BackLinkProps extends SharedLink, BaseProps {
1002
+ /** URL to navigate back to */
1003
+ href: string;
1004
+ }
1005
+ /**
1006
+ * BackLink Component
1007
+ *
1008
+ * A navigation component that provides a styled back link with a chevron icon
1009
+ * and smooth hover animations. Features a secondary button with icon and
1010
+ * customizable link component support.
1011
+ *
1012
+ * @param props - Component props
1013
+ * @param props.Link - Custom link component (defaults to DefaultLink)
1014
+ * @param props.children - Text content for the back link
1015
+ * @param props.href - Destination URL for the back navigation
1016
+ * @param props.className - Additional CSS classes
1017
+ * @returns JSX element with back navigation link
1018
+ *
1019
+ * @example
1020
+ * ```tsx
1021
+ * // Basic back link
1022
+ * <BackLink href="/dashboard">
1023
+ * Back to Dashboard
1024
+ * </BackLink>
1025
+ *
1026
+ * // With custom Link component (Next.js)
1027
+ * <BackLink Link={NextLink} href="/products">
1028
+ * Back to Products
1029
+ * </BackLink>
1030
+ *
1031
+ * // Custom styling
1032
+ * <BackLink
1033
+ * href="/settings"
1034
+ * className="text-blue-600 hover:text-blue-800"
1035
+ * >
1036
+ * Back to Settings
1037
+ * </BackLink>
1038
+ *
1039
+ * // In breadcrumb navigation
1040
+ * <nav className="flex items-center space-x-2">
1041
+ * <BackLink href="/docs">
1042
+ * Documentation
1043
+ * </BackLink>
1044
+ * <span>/</span>
1045
+ * <span>Current Page</span>
1046
+ * </nav>
1047
+ *
1048
+ * // Dynamic back navigation
1049
+ * function ProductDetail({ productId }: { productId: string }) {
1050
+ * return (
1051
+ * <div>
1052
+ * <BackLink href={`/category/${categoryId}`}>
1053
+ * Back to Category
1054
+ * </BackLink>
1055
+ * <h1>Product Details</h1>
1056
+ * </div>
1057
+ * );
1058
+ * }
1059
+ * ```
1060
+ */
1061
+ declare function BackLink({ Link, children, href, className }: BackLinkProps): react_jsx_runtime.JSX.Element;
1062
+
1063
+ /**
1064
+ * Props interface for the CommandMenu component
1065
+ * Extends DialogProps from Radix UI for full dialog customization
1066
+ */
1067
+ interface CommandMenuProps extends DialogProps {
1068
+ /** Child elements to render inside the command list (command items, groups, etc.) */
1069
+ children: React$1.ReactNode;
1070
+ /** Additional CSS classes for the trigger button */
1071
+ classButton?: string;
1072
+ /** Additional CSS classes for the command dialog */
1073
+ classDialog?: string;
1074
+ /** Text displayed on the search trigger button */
1075
+ searchButtonText?: string;
1076
+ /** Placeholder text for the command input field */
1077
+ commandInputPlaceholder?: string;
1078
+ /** Keyboard shortcut hint displayed on the button (e.g., "⌘K", "Ctrl+K") */
1079
+ keyHint?: string;
1080
+ }
1081
+ /**
1082
+ * CommandMenu Component
1083
+ *
1084
+ * A comprehensive command palette that provides users with quick access to application
1085
+ * features through keyboard shortcuts and search. Automatically tracks user interactions
1086
+ * for analytics and provides a responsive, accessible interface.
1087
+ *
1088
+ * The component listens for keyboard shortcuts (Cmd+K, Ctrl+K, /) and opens a dialog
1089
+ * with a search input and command list. It intelligently avoids triggering when the
1090
+ * user is typing in form fields or content-editable areas.
1091
+ *
1092
+ * @param props - Component props extending DialogProps
1093
+ * @returns JSX element containing the command menu trigger and dialog
1094
+ *
1095
+ * @example
1096
+ * ```tsx
1097
+ * // Basic usage with command items
1098
+ * <CommandMenu>
1099
+ * <CommandGroup heading="Navigation">
1100
+ * <CommandItem onSelect={() => router.push('/')}>
1101
+ * <IconHome className="mr-2 h-4 w-4" />
1102
+ * <span>Home</span>
1103
+ * </CommandItem>
1104
+ * <CommandItem onSelect={() => router.push('/dashboard')}>
1105
+ * <IconDashboard className="mr-2 h-4 w-4" />
1106
+ * <span>Dashboard</span>
1107
+ * </CommandItem>
1108
+ * </CommandGroup>
1109
+ *
1110
+ * <CommandGroup heading="Actions">
1111
+ * <CommandItem onSelect={() => setTheme('dark')}>
1112
+ * <IconMoon className="mr-2 h-4 w-4" />
1113
+ * <span>Toggle Dark Mode</span>
1114
+ * </CommandItem>
1115
+ * </CommandGroup>
1116
+ * </CommandMenu>
1117
+ *
1118
+ * // Custom styling and text
1119
+ * <CommandMenu
1120
+ * searchButtonText="Search commands..."
1121
+ * commandInputPlaceholder="What would you like to do?"
1122
+ * keyHint="⌘K"
1123
+ * classButton="w-64 bg-gray-50"
1124
+ * classDialog="max-w-2xl"
1125
+ * >
1126
+ * <CommandEmpty>No results found.</CommandEmpty>
1127
+ * <CommandGroup heading="Quick Actions">
1128
+ * <CommandItem onSelect={handleCreateNew}>
1129
+ * <IconPlus className="mr-2 h-4 w-4" />
1130
+ * <span>Create New Project</span>
1131
+ * <CommandShortcut>⌘N</CommandShortcut>
1132
+ * </CommandItem>
1133
+ * </CommandGroup>
1134
+ * </CommandMenu>
1135
+ *
1136
+ * // With search functionality
1137
+ * <CommandMenu
1138
+ * searchButtonText="Search docs..."
1139
+ * commandInputPlaceholder="Search documentation..."
1140
+ * >
1141
+ * <CommandEmpty>No documentation found.</CommandEmpty>
1142
+ * <CommandGroup heading="Documentation">
1143
+ * {docs.map((doc) => (
1144
+ * <CommandItem
1145
+ * key={doc.id}
1146
+ * onSelect={() => router.push(`/docs/${doc.slug}`)}
1147
+ * >
1148
+ * <IconBook className="mr-2 h-4 w-4" />
1149
+ * <span>{doc.title}</span>
1150
+ * </CommandItem>
1151
+ * ))}
1152
+ * </CommandGroup>
1153
+ * </CommandMenu>
1154
+ * ```
1155
+ */
1156
+ declare function CommandMenu({ children, classButton, classDialog, searchButtonText, commandInputPlaceholder, keyHint, ...props }: CommandMenuProps): react_jsx_runtime.JSX.Element;
1157
+
1158
+ /**
1159
+ * Interface defining the structure of a navigation item
1160
+ */
1161
+ interface NavItem {
1162
+ /** Display text for the navigation item */
1163
+ title: string;
1164
+ /** URL path for the navigation item */
1165
+ href?: string;
1166
+ /** Whether the link opens in a new tab */
1167
+ external?: boolean;
1168
+ /** Optional icon to display alongside the title */
1169
+ icon?: React.ComponentType<React.SVGProps<SVGSVGElement>>;
1170
+ /** Child navigation items for dropdown menus */
1171
+ children?: NavItem[];
1172
+ }
1173
+ /**
1174
+ * Props interface for the MainNav component
1175
+ */
1176
+ interface NavigationProps extends SharedLink {
1177
+ /** Current pathname */
1178
+ pathname: string;
1179
+ /** Array of navigation items to display */
1180
+ items: NavItem[];
1181
+ /** Additional CSS classes for the navigation container */
1182
+ className?: string;
1183
+ }
1184
+ /**
1185
+ * MainNav Component
1186
+ *
1187
+ * A responsive navigation component that supports multi-level dropdown menus,
1188
+ * active state detection, and analytics tracking. Hidden on mobile devices
1189
+ * and typically used in the site header.
1190
+ *
1191
+ * Features:
1192
+ * - Multi-level dropdown menus (up to 3 levels)
1193
+ * - Active state detection for current page
1194
+ * - External link indicators
1195
+ * - Analytics tracking for menu interactions
1196
+ * - Responsive design (hidden on mobile)
1197
+ * - Keyboard navigation support
1198
+ *
1199
+ * @param props - Component props
1200
+ * @returns JSX element containing the navigation menu
1201
+ *
1202
+ * @example
1203
+ * ```tsx
1204
+ * const navItems: NavItem[] = [
1205
+ * {
1206
+ * title: 'Home',
1207
+ * href: '/',
1208
+ * },
1209
+ * {
1210
+ * title: 'Products',
1211
+ * children: [
1212
+ * { title: 'Web Apps', href: '/products/web' },
1213
+ * { title: 'Mobile Apps', href: '/products/mobile' },
1214
+ * {
1215
+ * title: 'Enterprise',
1216
+ * children: [
1217
+ * { title: 'SaaS Solutions', href: '/products/enterprise/saas' },
1218
+ * { title: 'Custom Development', href: '/products/enterprise/custom' }
1219
+ * ]
1220
+ * }
1221
+ * ]
1222
+ * },
1223
+ * {
1224
+ * title: 'Documentation',
1225
+ * href: 'https://docs.example.com',
1226
+ * external: true,
1227
+ * icon: <IconBook className="w-4 h-4" />
1228
+ * }
1229
+ * ];
1230
+ *
1231
+ * <MainNav items={navItems} />
1232
+ * ```
1233
+ */
1234
+ declare function MainNav({ Link, pathname, items, className }: NavigationProps): react_jsx_runtime.JSX.Element;
1235
+ declare function handleMenuClick(item: NavItem): void;
1236
+
1237
+ /**
1238
+ * MobileNav Component
1239
+ *
1240
+ * A mobile-optimized navigation component that uses a drawer interface
1241
+ * for space-efficient menu display on small screens. Automatically
1242
+ * manages meta theme color changes when the drawer opens/closes.
1243
+ *
1244
+ * Features:
1245
+ * - Drawer-based interface for mobile screens
1246
+ * - Meta theme color management
1247
+ * - Responsive design (hidden on desktop)
1248
+ * - Accessible with proper ARIA labels
1249
+ * - Smooth open/close animations
1250
+ * - Scrollable content area
1251
+ *
1252
+ * @param props - Component props
1253
+ * @returns JSX element containing the mobile navigation drawer
1254
+ *
1255
+ * @example
1256
+ * ```tsx
1257
+ * // Basic usage with navigation items
1258
+ * <MobileNav>
1259
+ * <div className="space-y-4">
1260
+ * <MobileNavItemRenderer
1261
+ * item={{ title: 'Home', href: '/' }}
1262
+ * onOpenChange={setOpen}
1263
+ * level={1}
1264
+ * />
1265
+ * <MobileNavItemRenderer
1266
+ * item={{
1267
+ * title: 'Products',
1268
+ * children: [
1269
+ * { title: 'Web Apps', href: '/products/web' },
1270
+ * { title: 'Mobile Apps', href: '/products/mobile' }
1271
+ * ]
1272
+ * }}
1273
+ * onOpenChange={setOpen}
1274
+ * level={1}
1275
+ * />
1276
+ * </div>
1277
+ * </MobileNav>
1278
+ *
1279
+ * // With custom content
1280
+ * <MobileNav className="border-l border-gray-200">
1281
+ * <div className="space-y-6">
1282
+ * <NavigationItems />
1283
+ * <UserProfile />
1284
+ * <ThemeToggle />
1285
+ * </div>
1286
+ * </MobileNav>
1287
+ * ```
1288
+ */
1289
+ declare function MobileNav({ children, className }: BaseProps): react_jsx_runtime.JSX.Element;
1290
+ interface MobileNavItemRendererProps extends SharedLink, SharedNavigate {
1291
+ item: NavItem;
1292
+ pathname: string | null;
1293
+ level: number;
1294
+ onOpenChange: (open: boolean) => void;
1295
+ }
1296
+ declare function MobileNavItemRenderer({ Link, navigate, item, pathname, level, onOpenChange, }: MobileNavItemRendererProps): react_jsx_runtime.JSX.Element;
1297
+
1298
+ /**
1299
+ * React Query provider component with optimized configuration
1300
+ *
1301
+ * This provider sets up TanStack Query with:
1302
+ * - Global error handling with toast notifications
1303
+ * - Optimized caching and retry strategies
1304
+ * - Background refetching configuration
1305
+ * - Stale time and garbage collection settings
1306
+ *
1307
+ * @param props - Component props containing children
1308
+ * @returns JSX element wrapping children with QueryClient context
1309
+ *
1310
+ * @example
1311
+ * ```tsx
1312
+ * // Wrap your app with QueryProvider
1313
+ * function App() {
1314
+ * return (
1315
+ * <QueryProvider>
1316
+ * <YourAppComponents />
1317
+ * </QueryProvider>
1318
+ * );
1319
+ * }
1320
+ *
1321
+ * // Use React Query hooks in child components
1322
+ * function UserProfile() {
1323
+ * const { data, isLoading, error } = useQuery({
1324
+ * queryKey: ['user', userId],
1325
+ * queryFn: () => fetchUser(userId)
1326
+ * });
1327
+ *
1328
+ * if (isLoading) return <div>Loading...</div>;
1329
+ * if (error) return <div>Error occurred</div>; // Error toast will show automatically
1330
+ *
1331
+ * return <div>{data.name}</div>;
1332
+ * }
1333
+ * ```
1334
+ */
1335
+ declare const QueryProvider: ({ children }: {
1336
+ children: ReactNode;
1337
+ }) => react_jsx_runtime.JSX.Element;
1338
+
1339
+ /**
1340
+ * Props interface for ThemeProvider component
1341
+ * Extends NextThemesProvider props for full compatibility
1342
+ */
1343
+ interface ThemeProviderProps extends React$1.ComponentProps<typeof ThemeProvider$1> {
1344
+ /** Child components that will have access to theme context */
1345
+ children: React$1.ReactNode;
1346
+ }
1347
+ /**
1348
+ * Application theme provider component
1349
+ *
1350
+ * This provider sets up theme management with:
1351
+ * - Light, dark, and system theme support
1352
+ * - Automatic system preference detection
1353
+ * - Smooth theme transitions
1354
+ * - Integration with tooltip provider
1355
+ * - CSS class-based theme switching
1356
+ *
1357
+ * The provider integrates with the application's theme configuration
1358
+ * and provides a consistent theming experience across all components.
1359
+ *
1360
+ * @param props - Component props extending NextThemesProvider props
1361
+ * @returns JSX element wrapping children with theme and tooltip context
1362
+ *
1363
+ * @example
1364
+ * ```tsx
1365
+ * // Basic usage - wrap your app root
1366
+ * function App() {
1367
+ * return (
1368
+ * <ThemeProvider>
1369
+ * <YourAppComponents />
1370
+ * </ThemeProvider>
1371
+ * );
1372
+ * }
1373
+ *
1374
+ * // With custom configuration
1375
+ * function App() {
1376
+ * return (
1377
+ * <ThemeProvider
1378
+ * defaultTheme="dark"
1379
+ * storageKey="custom-theme"
1380
+ * >
1381
+ * <YourAppComponents />
1382
+ * </ThemeProvider>
1383
+ * );
1384
+ * }
1385
+ *
1386
+ * // Use theme in child components
1387
+ * function ThemeToggle() {
1388
+ * const { theme, setTheme } = useTheme();
1389
+ *
1390
+ * return (
1391
+ * <select value={theme} onChange={(e) => setTheme(e.target.value)}>
1392
+ * <option value="light">Light</option>
1393
+ * <option value="dark">Dark</option>
1394
+ * <option value="system">System</option>
1395
+ * </select>
1396
+ * );
1397
+ * }
1398
+ * ```
1399
+ */
1400
+ declare function ThemeProvider({ children, ...props }: ThemeProviderProps): react_jsx_runtime.JSX.Element;
1401
+
1402
+ /**
1403
+ * Props interface for the Announcement component
1404
+ */
1405
+ type AnnouncementProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof badgeVariants> & {
1406
+ /** Whether to apply themed styling with special background treatment */
1407
+ themed?: boolean;
1408
+ };
1409
+ /**
1410
+ * Announcement Component
1411
+ *
1412
+ * A styled badge component for displaying announcements, notifications,
1413
+ * and promotional content. Features rounded design with hover effects
1414
+ * and optional themed styling.
1415
+ *
1416
+ * @param props - Component props
1417
+ * @param props.variant - Badge variant style (default: 'outline')
1418
+ * @param props.themed - Whether to apply themed styling
1419
+ * @param props.className - Additional CSS classes
1420
+ * @returns JSX element with announcement badge
1421
+ *
1422
+ * @example
1423
+ * ```tsx
1424
+ * // Basic announcement
1425
+ * <Announcement>
1426
+ * New feature available!
1427
+ * </Announcement>
1428
+ *
1429
+ * // Themed announcement with tag
1430
+ * <Announcement themed variant="secondary">
1431
+ * <AnnouncementTag>NEW</AnnouncementTag>
1432
+ * <AnnouncementTitle>
1433
+ * Product Update v2.0
1434
+ * </AnnouncementTitle>
1435
+ * </Announcement>
1436
+ *
1437
+ * // Custom styled announcement
1438
+ * <Announcement
1439
+ * variant="destructive"
1440
+ * className="border-red-500"
1441
+ * >
1442
+ * Important Notice
1443
+ * </Announcement>
1444
+ * ```
1445
+ */
1446
+ declare const Announcement: ({ variant, themed, className, ...props }: AnnouncementProps) => react_jsx_runtime.JSX.Element;
1447
+ /**
1448
+ * Props interface for the AnnouncementTag component
1449
+ */
1450
+ type AnnouncementTagProps = HTMLAttributes<HTMLDivElement>;
1451
+ /**
1452
+ * AnnouncementTag Component
1453
+ *
1454
+ * A small tag component designed to be used within announcements
1455
+ * to highlight categories, status, or importance levels.
1456
+ *
1457
+ * @param props - Component props
1458
+ * @param props.className - Additional CSS classes
1459
+ * @returns JSX element with announcement tag
1460
+ *
1461
+ * @example
1462
+ * ```tsx
1463
+ * <Announcement>
1464
+ * <AnnouncementTag>BETA</AnnouncementTag>
1465
+ * <AnnouncementTitle>New Dashboard</AnnouncementTitle>
1466
+ * </Announcement>
1467
+ * ```
1468
+ */
1469
+ declare const AnnouncementTag: ({ className, ...props }: AnnouncementTagProps) => react_jsx_runtime.JSX.Element;
1470
+ /**
1471
+ * Props interface for the AnnouncementTitle component
1472
+ */
1473
+ type AnnouncementTitleProps = HTMLAttributes<HTMLDivElement>;
1474
+ /**
1475
+ * AnnouncementTitle Component
1476
+ *
1477
+ * A title component designed for use within announcements,
1478
+ * providing proper spacing and alignment for announcement content.
1479
+ *
1480
+ * @param props - Component props
1481
+ * @param props.className - Additional CSS classes
1482
+ * @returns JSX element with announcement title
1483
+ *
1484
+ * @example
1485
+ * ```tsx
1486
+ * <Announcement>
1487
+ * <AnnouncementTag>UPDATE</AnnouncementTag>
1488
+ * <AnnouncementTitle>
1489
+ * System Maintenance Scheduled
1490
+ * </AnnouncementTitle>
1491
+ * </Announcement>
1492
+ * ```
1493
+ */
1494
+ declare const AnnouncementTitle: ({ className, ...props }: AnnouncementTitleProps) => react_jsx_runtime.JSX.Element;
1495
+
1496
+ /**
1497
+ * Background Paths Components
1498
+ * Provides animated SVG path backgrounds with motion effects
1499
+ * Perfect for creating dynamic visual backgrounds and decorative elements
1500
+ */
1501
+ /**
1502
+ * FloatingPaths Component
1503
+ *
1504
+ * Creates animated floating SVG paths with customizable position and color.
1505
+ * Features smooth animations with varying opacity and path lengths for
1506
+ * a dynamic background effect.
1507
+ *
1508
+ * @param props - Component props
1509
+ * @param props.position - Position multiplier for path positioning (affects curve placement)
1510
+ * @param props.color - CSS color class for the paths (default: 'text-slate-950 dark:text-white')
1511
+ * @returns JSX element with animated SVG paths
1512
+ *
1513
+ * @example
1514
+ * ```tsx
1515
+ * // Basic floating paths
1516
+ * <FloatingPaths position={1} />
1517
+ *
1518
+ * // Custom colored paths
1519
+ * <FloatingPaths
1520
+ * position={2}
1521
+ * color="text-blue-500 dark:text-blue-300"
1522
+ * />
1523
+ *
1524
+ * // Multiple layers with different positions
1525
+ * <div className="relative">
1526
+ * <FloatingPaths position={1} color="text-gray-300" />
1527
+ * <FloatingPaths position={2} color="text-gray-400" />
1528
+ * <FloatingPaths position={3} color="text-gray-500" />
1529
+ * </div>
1530
+ *
1531
+ * // In a hero section
1532
+ * <section className="relative min-h-screen">
1533
+ * <FloatingPaths position={1.5} />
1534
+ * <div className="relative z-10">
1535
+ * <h1>Your Content Here</h1>
1536
+ * </div>
1537
+ * </section>
1538
+ * ```
1539
+ */
1540
+ declare function FloatingPaths({ position, color, }: {
1541
+ position: number;
1542
+ color?: string;
1543
+ }): react_jsx_runtime.JSX.Element;
1544
+ /**
1545
+ * BackgroundPaths Component
1546
+ *
1547
+ * A simplified wrapper around FloatingPaths with a fixed position,
1548
+ * providing an easy way to add animated background paths to any container.
1549
+ *
1550
+ * @param props - Component props
1551
+ * @param props.color - CSS color class for the paths (default: 'text-slate-950 dark:text-white')
1552
+ * @returns JSX element with animated background paths
1553
+ *
1554
+ * @example
1555
+ * ```tsx
1556
+ * // Basic background paths
1557
+ * <div className="relative">
1558
+ * <BackgroundPaths />
1559
+ * <div className="relative z-10">
1560
+ * Your content here
1561
+ * </div>
1562
+ * </div>
1563
+ *
1564
+ * // Custom colored background
1565
+ * <BackgroundPaths color="text-purple-500 dark:text-purple-300" />
1566
+ *
1567
+ * // In a card component
1568
+ * <div className="relative p-6 bg-white rounded-lg shadow-lg">
1569
+ * <BackgroundPaths color="text-gray-100" />
1570
+ * <div className="relative z-10">
1571
+ * <h2>Card Title</h2>
1572
+ * <p>Card content...</p>
1573
+ * </div>
1574
+ * </div>
1575
+ * ```
1576
+ */
1577
+ declare function BackgroundPaths({ color }: {
1578
+ color?: string;
1579
+ }): react_jsx_runtime.JSX.Element;
1580
+
1581
+ /**
1582
+ * Props interface for the Book component
1583
+ */
1584
+ interface BookProps {
1585
+ /** Content to display inside the book */
1586
+ children: React__default.ReactNode;
1587
+ /** Book cover color (default: '#f50537') */
1588
+ color?: string;
1589
+ /** Text color for book content */
1590
+ textColor?: string;
1591
+ /** Whether to apply texture effects */
1592
+ texture?: boolean;
1593
+ /** Book depth in container query width units */
1594
+ depth?: number;
1595
+ /** Book variant style (default: 'default') */
1596
+ variant?: 'default' | 'simple';
1597
+ /** Optional illustration to display on the book */
1598
+ illustration?: React__default.ReactNode;
1599
+ /** Book width in pixels (default: 196) */
1600
+ width?: number;
1601
+ }
1602
+ /**
1603
+ * Book Component
1604
+ *
1605
+ * A 3D book component with hover animations and customizable styling.
1606
+ * Features perspective transforms, shadow effects, and flexible content layout.
1607
+ *
1608
+ * @param props - Component props
1609
+ * @returns JSX element with 3D book appearance
1610
+ *
1611
+ * @example
1612
+ * ```tsx
1613
+ * // Basic book
1614
+ * <Book>
1615
+ * <h3>Book Title</h3>
1616
+ * <p>Book description...</p>
1617
+ * </Book>
1618
+ *
1619
+ * // Customized book
1620
+ * <Book
1621
+ * color="#3b82f6"
1622
+ * textColor="#ffffff"
1623
+ * width={240}
1624
+ * depth={6}
1625
+ * >
1626
+ * <div className="p-4">
1627
+ * <h2>Custom Book</h2>
1628
+ * <p>Custom content</p>
1629
+ * </div>
1630
+ * </Book>
1631
+ *
1632
+ * // Simple variant with illustration
1633
+ * <Book
1634
+ * variant="simple"
1635
+ * illustration={<BookIcon />}
1636
+ * >
1637
+ * Simple book content
1638
+ * </Book>
1639
+ *
1640
+ * // Book gallery
1641
+ * <div className="flex gap-4">
1642
+ * <Book color="#ef4444">Red Book</Book>
1643
+ * <Book color="#10b981">Green Book</Book>
1644
+ * <Book color="#8b5cf6">Purple Book</Book>
1645
+ * </div>
1646
+ * ```
1647
+ */
1648
+ declare function Book(props: BookProps): react_jsx_runtime.JSX.Element;
1649
+ type FlexAlignItems = 'stretch' | 'start' | 'end' | 'center';
1650
+ type FlexJustifyContent = 'stretch' | 'start' | 'end' | 'space-between' | 'space-around' | 'space-evenly' | 'center';
1651
+ interface StackProps extends React__default.ComponentProps<'div'> {
1652
+ children: React__default.ReactNode;
1653
+ direction?: 'column' | 'row';
1654
+ align?: FlexAlignItems;
1655
+ justify?: FlexJustifyContent;
1656
+ gap?: number;
1657
+ padding?: number;
1658
+ grow?: boolean;
1659
+ shrink?: boolean;
1660
+ wrap?: boolean;
1661
+ className?: string;
1662
+ }
1663
+ declare function Stack(props: StackProps): react_jsx_runtime.JSX.Element;
1664
+
1665
+ /**
1666
+ * DotsPattern Component
1667
+ * Creates a customizable dots pattern background using SVG
1668
+ * Perfect for adding subtle texture and visual interest to backgrounds
1669
+ */
1670
+ /**
1671
+ * DotsPattern Component
1672
+ *
1673
+ * Generates an SVG-based dots pattern that can be used as a background element.
1674
+ * Features customizable dot size, spacing, and positioning with automatic
1675
+ * pattern generation using unique IDs.
1676
+ *
1677
+ * @param props - Component props
1678
+ * @param props.dotSize - Size of each dot in pixels (default: 2)
1679
+ * @param props.gapSize - Space between dots in pixels (default: 10)
1680
+ * @param props.patternOffset - X and Y offset for pattern positioning (default: [0, 0])
1681
+ * @param props.className - Additional CSS classes
1682
+ * @returns JSX element with SVG dots pattern
1683
+ *
1684
+ * @example
1685
+ * ```tsx
1686
+ * // Basic dots pattern
1687
+ * <div className="relative h-64 bg-gray-50">
1688
+ * <DotsPattern />
1689
+ * <div className="relative z-10 p-4">
1690
+ * Content over dots pattern
1691
+ * </div>
1692
+ * </div>
1693
+ *
1694
+ * // Customized dots pattern
1695
+ * <DotsPattern
1696
+ * dotSize={3}
1697
+ * gapSize={15}
1698
+ * className="text-blue-500/20"
1699
+ * />
1700
+ *
1701
+ * // Offset pattern
1702
+ * <DotsPattern
1703
+ * patternOffset={[5, 5]}
1704
+ * dotSize={1}
1705
+ * gapSize={8}
1706
+ * />
1707
+ *
1708
+ * // Hero section with dots background
1709
+ * <section className="relative min-h-screen bg-white">
1710
+ * <DotsPattern
1711
+ * dotSize={2}
1712
+ * gapSize={12}
1713
+ * className="text-gray-300"
1714
+ * />
1715
+ * <div className="relative z-10 flex items-center justify-center min-h-screen">
1716
+ * <h1>Hero Content</h1>
1717
+ * </div>
1718
+ * </section>
1719
+ *
1720
+ * // Card with dots pattern
1721
+ * <div className="relative p-6 bg-white rounded-lg shadow-lg overflow-hidden">
1722
+ * <DotsPattern
1723
+ * dotSize={1}
1724
+ * gapSize={6}
1725
+ * className="text-gray-100"
1726
+ * />
1727
+ * <div className="relative z-10">
1728
+ * <h3>Card Title</h3>
1729
+ * <p>Card content...</p>
1730
+ * </div>
1731
+ * </div>
1732
+ * ```
1733
+ */
1734
+ declare function DotsPattern({ dotSize, gapSize, patternOffset, className, }: {
1735
+ dotSize?: number;
1736
+ gapSize?: number;
1737
+ patternOffset?: [number, number];
1738
+ className?: string;
1739
+ }): react_jsx_runtime.JSX.Element;
1740
+
1741
+ /**
1742
+ * Grid Background Component
1743
+ * Creates a customizable grid background with vertical lines and dots pattern
1744
+ * Perfect for adding structured visual backgrounds to layouts and sections
1745
+ */
1746
+
1747
+ /**
1748
+ * Props interface for the GridBackground component
1749
+ */
1750
+ interface GridBackgroundProps {
1751
+ /** Number of grid columns to display (default: 4) */
1752
+ columns?: number;
1753
+ /** Additional CSS classes for styling */
1754
+ className?: string;
1755
+ /** CSS class for maximum width container (default: 'grid-container') */
1756
+ maxWidthClass?: string;
1757
+ }
1758
+ /**
1759
+ * GridBackground Component
1760
+ *
1761
+ * Creates a customizable grid background with vertical lines and dots pattern.
1762
+ * Features configurable column count and styling options for creating
1763
+ * structured visual backgrounds.
1764
+ *
1765
+ * @param props - Component props
1766
+ * @param props.columns - Number of grid columns to display
1767
+ * @param props.className - Additional CSS classes for styling
1768
+ * @param props.maxWidthClass - CSS class for maximum width container
1769
+ * @returns JSX element with grid background pattern
1770
+ *
1771
+ * @example
1772
+ * ```tsx
1773
+ * // Basic grid background
1774
+ * <div className="relative">
1775
+ * <GridBackground />
1776
+ * <div className="relative z-10">Content over grid</div>
1777
+ * </div>
1778
+ *
1779
+ * // Custom column count
1780
+ * <GridBackground columns={6} />
1781
+ *
1782
+ * // With custom styling
1783
+ * <GridBackground
1784
+ * columns={3}
1785
+ * className="opacity-50"
1786
+ * maxWidthClass="max-w-6xl"
1787
+ * />
1788
+ * ```
1789
+ */
1790
+ declare const GridBackground: FC<GridBackgroundProps>;
1791
+
1792
+ /**
1793
+ * Props interface for icon components
1794
+ * Extends standard HTML SVG element attributes for full customization
1795
+ */
1796
+ type IconProps = React__default.HTMLAttributes<SVGElement>;
1797
+ /**
1798
+ * Collection of brand and service icons
1799
+ *
1800
+ * This object contains SVG icons for popular brands, services, and technologies.
1801
+ * All icons are designed to be scalable and themeable using CSS currentColor.
1802
+ *
1803
+ * @example
1804
+ * ```tsx
1805
+ * // Basic usage
1806
+ * <Icons.google className="w-6 h-6" />
1807
+ *
1808
+ * // With custom styling
1809
+ * <Icons.github
1810
+ * className="w-8 h-8 text-gray-600 hover:text-gray-900"
1811
+ * onClick={handleGitHubClick}
1812
+ * />
1813
+ *
1814
+ * // Colorful variants
1815
+ * <Icons.googleColorful className="w-10 h-10" />
1816
+ * <Icons.facebookColorful className="w-10 h-10" />
1817
+ * ```
1818
+ */
1819
+ declare const Icons: {
1820
+ anthropic: (props: IconProps) => react_jsx_runtime.JSX.Element;
1821
+ apple: (props: IconProps) => react_jsx_runtime.JSX.Element;
1822
+ aria: (props: IconProps) => react_jsx_runtime.JSX.Element;
1823
+ facebook: (props: IconProps) => react_jsx_runtime.JSX.Element;
1824
+ facebookColorful: (props: IconProps) => react_jsx_runtime.JSX.Element;
1825
+ github: (props: IconProps) => react_jsx_runtime.JSX.Element;
1826
+ google: (props: IconProps) => react_jsx_runtime.JSX.Element;
1827
+ googleColorful: (props: IconProps) => react_jsx_runtime.JSX.Element;
1828
+ instagram: (props: IconProps) => react_jsx_runtime.JSX.Element;
1829
+ linkedin: (props: IconProps) => react_jsx_runtime.JSX.Element;
1830
+ linkedinColorful: (props: IconProps) => react_jsx_runtime.JSX.Element;
1831
+ microsoft: (props: IconProps) => react_jsx_runtime.JSX.Element;
1832
+ nextjs: (props: IconProps) => react_jsx_runtime.JSX.Element;
1833
+ npm: (props: IconProps) => react_jsx_runtime.JSX.Element;
1834
+ openai: (props: IconProps) => react_jsx_runtime.JSX.Element;
1835
+ paypal: (props: IconProps) => react_jsx_runtime.JSX.Element;
1836
+ pelatform: (props: IconProps) => react_jsx_runtime.JSX.Element;
1837
+ pnpm: (props: IconProps) => react_jsx_runtime.JSX.Element;
1838
+ postgresql: (props: IconProps) => react_jsx_runtime.JSX.Element;
1839
+ prisma: (props: IconProps) => react_jsx_runtime.JSX.Element;
1840
+ radix: (props: IconProps) => react_jsx_runtime.JSX.Element;
1841
+ radixui: (props: IconProps) => react_jsx_runtime.JSX.Element;
1842
+ react: (props: IconProps) => react_jsx_runtime.JSX.Element;
1843
+ scira: (props: IconProps) => react_jsx_runtime.JSX.Element;
1844
+ scribble: (props: IconProps) => react_jsx_runtime.JSX.Element;
1845
+ supabaseColorful: (props: IconProps) => react_jsx_runtime.JSX.Element;
1846
+ tailwind: (props: IconProps) => react_jsx_runtime.JSX.Element;
1847
+ telegram: (props: IconProps) => react_jsx_runtime.JSX.Element;
1848
+ twitter: (props: IconProps) => react_jsx_runtime.JSX.Element;
1849
+ whatsApp: (props: IconProps) => react_jsx_runtime.JSX.Element;
1850
+ x: (props: IconProps) => react_jsx_runtime.JSX.Element;
1851
+ yarn: (props: IconProps) => react_jsx_runtime.JSX.Element;
1852
+ youtube: (props: IconProps) => react_jsx_runtime.JSX.Element;
1853
+ };
1854
+
1855
+ /**
1856
+ * Image Input Component
1857
+ * Provides a comprehensive image upload solution with drag-and-drop support,
1858
+ * multiple file selection, preview generation, and file management capabilities
1859
+ */
1860
+
1861
+ /**
1862
+ * Interface representing a single image file with metadata
1863
+ */
1864
+ interface ImageInputFile {
1865
+ /** Base64 data URL of the image for preview */
1866
+ dataURL?: string;
1867
+ /** Original File object */
1868
+ file?: File;
1869
+ /** Additional custom properties */
1870
+ [key: string]: unknown;
1871
+ }
1872
+ /**
1873
+ * Type representing an array of image files
1874
+ */
1875
+ type ImageInputFiles = ImageInputFile[];
1876
+ /**
1877
+ * Props interface for the ImageInput component
1878
+ */
1879
+ interface ImageInputProps {
1880
+ /** Current array of image files */
1881
+ value: ImageInputFiles;
1882
+ /** Callback when files change, includes updated file indices */
1883
+ onChange: (value: ImageInputFiles, addUpdatedIndex?: number[]) => void;
1884
+ /** Render prop function that receives image input controls */
1885
+ children?: (props: ImageInputExport) => ReactNode;
1886
+ /** Whether to allow multiple file selection */
1887
+ multiple?: boolean;
1888
+ /** Maximum number of files allowed (not implemented in current version) */
1889
+ maxNumber?: number;
1890
+ /** Array of accepted file extensions (without dots) */
1891
+ acceptType?: string[];
1892
+ /** Key name for the data URL property in file objects */
1893
+ dataURLKey?: string;
1894
+ /** Additional props to pass to the hidden input element */
1895
+ inputProps?: React__default.HTMLProps<HTMLInputElement>;
1896
+ }
1897
+ /**
1898
+ * Interface for the object passed to the children render prop
1899
+ * Contains all necessary functions and state for image management
1900
+ */
1901
+ interface ImageInputExport {
1902
+ /** Current list of image files */
1903
+ fileList: ImageInputFiles;
1904
+ /** Function to trigger file selection dialog */
1905
+ onImageUpload: () => void;
1906
+ /** Function to remove all images */
1907
+ onImageRemoveAll: () => void;
1908
+ /** Function to update/replace an image at specific index */
1909
+ onImageUpdate: (index: number) => void;
1910
+ /** Function to remove an image at specific index */
1911
+ onImageRemove: (index: number) => void;
1912
+ /** Whether drag operation is currently active */
1913
+ isDragging: boolean;
1914
+ /** Drag and drop event handlers */
1915
+ dragProps: {
1916
+ onDrop: (e: DragEvent<HTMLDivElement>) => void;
1917
+ onDragEnter: (e: DragEvent<HTMLDivElement>) => void;
1918
+ onDragLeave: (e: DragEvent<HTMLDivElement>) => void;
1919
+ onDragOver: (e: DragEvent<HTMLDivElement>) => void;
1920
+ onDragStart: (e: DragEvent<HTMLDivElement>) => void;
1921
+ };
1922
+ }
1923
+ /** Default index value indicating no selection */
1924
+ declare const DEFAULT_NULL_INDEX = -1;
1925
+ /** Default key name for storing data URL in file objects */
1926
+ declare const DEFAULT_DATA_URL_KEY = "dataURL";
1927
+ /**
1928
+ * Utility Functions for Image Input Component
1929
+ */
1930
+ /**
1931
+ * Programmatically opens the file selection dialog
1932
+ *
1933
+ * @param inputRef - Reference to the hidden input element
1934
+ *
1935
+ * @example
1936
+ * ```tsx
1937
+ * const inputRef = useRef<HTMLInputElement>(null);
1938
+ *
1939
+ * const handleUploadClick = () => {
1940
+ * openFileDialog(inputRef);
1941
+ * };
1942
+ * ```
1943
+ */
1944
+ declare const openFileDialog: (inputRef: RefObject<HTMLInputElement | null>) => void;
1945
+ /**
1946
+ * Generates the accept attribute string for file input
1947
+ *
1948
+ * @param acceptType - Array of file extensions without dots
1949
+ * @param allowNonImageType - Whether to allow non-image files
1950
+ * @returns Accept attribute string for input element
1951
+ *
1952
+ * @example
1953
+ * ```tsx
1954
+ * getAcceptTypeString(['jpg', 'png']); // '.jpg, .png'
1955
+ * getAcceptTypeString(); // 'image/*'
1956
+ * getAcceptTypeString([], true); // ''
1957
+ * ```
1958
+ */
1959
+ declare const getAcceptTypeString: (acceptType?: string[], allowNonImageType?: boolean) => string;
1960
+ /**
1961
+ * Converts a File object to a base64 data URL string
1962
+ *
1963
+ * @param file - The file to convert
1964
+ * @returns Promise resolving to base64 data URL
1965
+ *
1966
+ * @example
1967
+ * ```tsx
1968
+ * const file = new File([''], 'image.jpg', { type: 'image/jpeg' });
1969
+ * const dataURL = await getBase64(file);
1970
+ * console.log(dataURL); // 'data:image/jpeg;base64,/9j/4AAQ...'
1971
+ * ```
1972
+ */
1973
+ declare const getBase64: (file: File) => Promise<string>;
1974
+ /**
1975
+ * Creates an HTMLImageElement from a File object
1976
+ * Useful for getting image dimensions or other metadata
1977
+ *
1978
+ * @param file - The image file to load
1979
+ * @returns Promise resolving to HTMLImageElement
1980
+ *
1981
+ * @example
1982
+ * ```tsx
1983
+ * const file = new File([''], 'image.jpg', { type: 'image/jpeg' });
1984
+ * const image = await getImage(file);
1985
+ * console.log(`Dimensions: ${image.width}x${image.height}`);
1986
+ * ```
1987
+ */
1988
+ declare const getImage: (file: File) => Promise<HTMLImageElement>;
1989
+ /**
1990
+ * Converts a FileList to an array of ImageInputFile objects
1991
+ * Each file is converted to base64 for preview purposes
1992
+ *
1993
+ * @param files - FileList from input or drag event
1994
+ * @param dataURLKey - Key name for storing the data URL
1995
+ * @returns Promise resolving to array of ImageInputFile objects
1996
+ *
1997
+ * @example
1998
+ * ```tsx
1999
+ * const handleFileChange = async (e: ChangeEvent<HTMLInputElement>) => {
2000
+ * if (e.target.files) {
2001
+ * const imageFiles = await getListFiles(e.target.files, 'dataURL');
2002
+ * setImages(imageFiles);
2003
+ * }
2004
+ * };
2005
+ * ```
2006
+ */
2007
+ declare const getListFiles: (files: FileList, dataURLKey: string) => Promise<ImageInputFiles>;
2008
+ /**
2009
+ * ImageInput Component
2010
+ *
2011
+ * A comprehensive image upload component with drag-and-drop support,
2012
+ * multiple file selection, and file management capabilities.
2013
+ * Uses render props pattern for maximum flexibility in UI implementation.
2014
+ *
2015
+ * @param props - Component props
2016
+ * @returns JSX element containing hidden input and render prop children
2017
+ *
2018
+ * @example
2019
+ * ```tsx
2020
+ * // Basic single image upload
2021
+ * function SingleImageUpload() {
2022
+ * const [images, setImages] = useState<ImageInputFiles>([]);
2023
+ *
2024
+ * return (
2025
+ * <ImageInput
2026
+ * value={images}
2027
+ * onChange={setImages}
2028
+ * acceptType={['jpg', 'png', 'gif']}
2029
+ * >
2030
+ * {({ fileList, onImageUpload, onImageRemove, isDragging, dragProps }) => (
2031
+ * <div
2032
+ * {...dragProps}
2033
+ * className={`border-2 border-dashed p-4 ${
2034
+ * isDragging ? 'border-blue-500 bg-blue-50' : 'border-gray-300'
2035
+ * }`}
2036
+ * >
2037
+ * {fileList.length === 0 ? (
2038
+ * <button onClick={onImageUpload}>
2039
+ * Click or drag image here
2040
+ * </button>
2041
+ * ) : (
2042
+ * <div>
2043
+ * <img src={fileList[0].dataURL} alt="Preview" />
2044
+ * <button onClick={() => onImageRemove(0)}>Remove</button>
2045
+ * </div>
2046
+ * )}
2047
+ * </div>
2048
+ * )}
2049
+ * </ImageInput>
2050
+ * );
2051
+ * }
2052
+ *
2053
+ * // Multiple image upload with gallery
2054
+ * function ImageGallery() {
2055
+ * const [images, setImages] = useState<ImageInputFiles>([]);
2056
+ *
2057
+ * return (
2058
+ * <ImageInput
2059
+ * value={images}
2060
+ * onChange={setImages}
2061
+ * multiple
2062
+ * acceptType={['jpg', 'png']}
2063
+ * >
2064
+ * {({ fileList, onImageUpload, onImageRemove, onImageRemoveAll }) => (
2065
+ * <div>
2066
+ * <button onClick={onImageUpload}>Add Images</button>
2067
+ * {fileList.length > 0 && (
2068
+ * <button onClick={onImageRemoveAll}>Remove All</button>
2069
+ * )}
2070
+ * <div className="grid grid-cols-3 gap-4">
2071
+ * {fileList.map((image, index) => (
2072
+ * <div key={index} className="relative">
2073
+ * <img src={image.dataURL} alt={`Preview ${index}`} />
2074
+ * <button
2075
+ * onClick={() => onImageRemove(index)}
2076
+ * className="absolute top-0 right-0"
2077
+ * >
2078
+ * ×
2079
+ * </button>
2080
+ * </div>
2081
+ * ))}
2082
+ * </div>
2083
+ * </div>
2084
+ * )}
2085
+ * </ImageInput>
2086
+ * );
2087
+ * }
2088
+ * ```
2089
+ */
2090
+ declare const ImageInput: FC<ImageInputProps>;
2091
+
2092
+ /**
2093
+ * Logo Component
2094
+ * Displays the application logo as an SVG icon
2095
+ * Supports theming through currentColor and customizable sizing
2096
+ */
2097
+ /**
2098
+ * Logo Component
2099
+ *
2100
+ * Renders the application's logo as a scalable SVG icon.
2101
+ * The logo uses currentColor for theming and can be customized
2102
+ * with additional CSS classes for size and styling.
2103
+ *
2104
+ * @param props - Component props
2105
+ * @param props.className - Additional CSS classes for styling
2106
+ * @returns JSX element with the application logo
2107
+ *
2108
+ * @example
2109
+ * ```tsx
2110
+ * // Basic logo
2111
+ * <Logo />
2112
+ *
2113
+ * // Custom sized logo
2114
+ * <Logo className="w-12 h-12" />
2115
+ *
2116
+ * // Colored logo
2117
+ * <Logo className="text-blue-600 w-16 h-16" />
2118
+ *
2119
+ * // Logo in navigation
2120
+ * <nav className="flex items-center space-x-4">
2121
+ * <Logo className="w-8 h-8" />
2122
+ * <span className="font-bold">App Name</span>
2123
+ * </nav>
2124
+ *
2125
+ * // Logo in header
2126
+ * <header className="bg-white shadow-sm">
2127
+ * <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
2128
+ * <div className="flex justify-between items-center py-6">
2129
+ * <Logo className="w-10 h-10 text-primary" />
2130
+ * </div>
2131
+ * </div>
2132
+ * </header>
2133
+ * ```
2134
+ */
2135
+ declare function Logo({ className }: {
2136
+ className?: string;
2137
+ }): react_jsx_runtime.JSX.Element;
2138
+
2139
+ /**
2140
+ * Props interface for the ModeSwitcher component
2141
+ */
2142
+ interface ModeSwitcherProps {
2143
+ /** Additional CSS classes for the button */
2144
+ className?: string;
2145
+ /** Button variant style */
2146
+ variant?: 'ghost' | 'outline' | 'secondary';
2147
+ /** Button size */
2148
+ size?: 'sm' | 'md' | 'lg';
2149
+ /** Custom cycle order for themes (defaults to system -> light -> dark) */
2150
+ cycleOrder?: ThemeMode[];
2151
+ }
2152
+ /**
2153
+ * ModeSwitcher Component
2154
+ *
2155
+ * A button component that cycles through available theme modes (light, dark, system).
2156
+ * Automatically updates the meta theme color and displays appropriate icons
2157
+ * for each theme state. Integrates with next-themes for theme persistence.
2158
+ *
2159
+ * Features:
2160
+ * - Cycles through light, dark, and system themes
2161
+ * - Updates meta theme color automatically
2162
+ * - Shows appropriate icons for each theme
2163
+ * - Accessible with screen reader support
2164
+ * - Customizable appearance and cycle order
2165
+ * - Integrates with application color configuration
2166
+ *
2167
+ * @param props - Component props
2168
+ * @returns JSX element containing the theme switcher button
2169
+ *
2170
+ * @example
2171
+ * ```tsx
2172
+ * // Basic usage
2173
+ * <ModeSwitcher />
2174
+ *
2175
+ * // Custom styling
2176
+ * <ModeSwitcher
2177
+ * className="border border-gray-300"
2178
+ * variant="outline"
2179
+ * size="lg"
2180
+ * />
2181
+ *
2182
+ * // Custom cycle order
2183
+ * <ModeSwitcher
2184
+ * cycleOrder={['light', 'dark']} // Skip system mode
2185
+ * />
2186
+ * ```
2187
+ */
2188
+ declare function ModeSwitcher({ className, variant, size, cycleOrder, }: ModeSwitcherProps): react_jsx_runtime.JSX.Element;
2189
+
2190
+ /**
2191
+ * Props interface for MovingLabel component
2192
+ */
2193
+ interface MovingLabelProps {
2194
+ /** Border radius for the component (CSS value) */
2195
+ borderRadius?: string;
2196
+ /** Child elements to render inside the label */
2197
+ children: ReactNode;
2198
+ /** HTML element type to render as (default: 'button') */
2199
+ as?: React__default.ElementType;
2200
+ /** Additional CSS classes for the container */
2201
+ containerClassName?: string;
2202
+ /** Additional CSS classes for the border element */
2203
+ borderClassName?: string;
2204
+ /** Animation duration in milliseconds */
2205
+ duration?: number;
2206
+ /** Additional CSS classes for the content area */
2207
+ className?: string;
2208
+ /** Additional props to pass to the root element */
2209
+ [key: string]: unknown;
2210
+ }
2211
+ /**
2212
+ * MovingLabel Component
2213
+ *
2214
+ * A button or label component with an animated moving border effect.
2215
+ * The border continuously moves around the perimeter of the element,
2216
+ * creating an eye-catching visual effect perfect for CTAs or highlights.
2217
+ *
2218
+ * @param props - Component props
2219
+ * @returns JSX element with animated border
2220
+ *
2221
+ * @example
2222
+ * ```tsx
2223
+ * // Basic button with moving border
2224
+ * <MovingLabel>
2225
+ * Click me!
2226
+ * </MovingLabel>
2227
+ *
2228
+ * // Custom styling and duration
2229
+ * <MovingLabel
2230
+ * borderRadius="0.5rem"
2231
+ * duration={3000}
2232
+ * className="px-6 py-3 text-lg"
2233
+ * borderClassName="bg-gradient-to-r from-blue-500 to-purple-500"
2234
+ * >
2235
+ * Premium Feature
2236
+ * </MovingLabel>
2237
+ *
2238
+ * // As a div instead of button
2239
+ * <MovingLabel
2240
+ * as="div"
2241
+ * containerClassName="w-64 h-32"
2242
+ * className="flex items-center justify-center"
2243
+ * >
2244
+ * <span>Animated Card</span>
2245
+ * </MovingLabel>
2246
+ *
2247
+ * // Custom border effect
2248
+ * <MovingLabel
2249
+ * borderClassName="h-8 w-16 bg-[radial-gradient(#ff6b6b_20%,transparent_70%)]"
2250
+ * duration={1500}
2251
+ * >
2252
+ * Fast Animation
2253
+ * </MovingLabel>
2254
+ * ```
2255
+ */
2256
+ declare function MovingLabel({ borderRadius, children, as: Component, containerClassName, borderClassName, duration, className, ...otherProps }: MovingLabelProps): react_jsx_runtime.JSX.Element;
2257
+ /**
2258
+ * Props interface for MovingBorder component
2259
+ */
2260
+ interface MovingBorderProps {
2261
+ /** Child elements to animate along the border path */
2262
+ children: ReactNode;
2263
+ /** Animation duration in milliseconds (default: 2000) */
2264
+ duration?: number;
2265
+ /** Horizontal border radius for the SVG path */
2266
+ rx?: string;
2267
+ /** Vertical border radius for the SVG path */
2268
+ ry?: string;
2269
+ /** Additional props to pass to the SVG element */
2270
+ [key: string]: unknown;
2271
+ }
2272
+ /**
2273
+ * MovingBorder Component
2274
+ *
2275
+ * Creates an animated border effect where child elements move along
2276
+ * the perimeter of a rectangular path. Uses SVG path calculations
2277
+ * and Framer Motion for smooth animations.
2278
+ *
2279
+ * This is typically used as a building block for other components
2280
+ * like MovingLabel, but can be used standalone for custom effects.
2281
+ *
2282
+ * @param props - Component props
2283
+ * @returns JSX element with SVG path and animated child
2284
+ *
2285
+ * @example
2286
+ * ```tsx
2287
+ * // Basic usage with a glowing dot
2288
+ * <div className="relative w-64 h-32 border border-gray-300">
2289
+ * <MovingBorder duration={3000} rx="10%" ry="10%">
2290
+ * <div className="w-4 h-4 bg-blue-500 rounded-full shadow-lg" />
2291
+ * </MovingBorder>
2292
+ * </div>
2293
+ *
2294
+ * // Multiple animated elements
2295
+ * <div className="relative w-48 h-48 rounded-lg border">
2296
+ * <MovingBorder duration={2000}>
2297
+ * <div className="w-3 h-3 bg-red-500 rounded-full" />
2298
+ * </MovingBorder>
2299
+ * <MovingBorder duration={3000}>
2300
+ * <div className="w-2 h-2 bg-green-500 rounded-full" />
2301
+ * </MovingBorder>
2302
+ * </div>
2303
+ *
2304
+ * // Custom SVG styling
2305
+ * <MovingBorder
2306
+ * duration={1500}
2307
+ * rx="20%"
2308
+ * ry="20%"
2309
+ * stroke="blue"
2310
+ * strokeWidth="2"
2311
+ * >
2312
+ * <div className="w-6 h-6 bg-gradient-to-r from-purple-500 to-pink-500 rounded" />
2313
+ * </MovingBorder>
2314
+ * ```
2315
+ */
2316
+ declare const MovingBorder: ({ children, duration, rx, ry, ...otherProps }: MovingBorderProps) => react_jsx_runtime.JSX.Element;
2317
+
2318
+ /**
2319
+ * Newsletter Subscribe Component
2320
+ * Provides a complete newsletter subscription form with reCAPTCHA verification,
2321
+ * email validation, analytics tracking, and customizable messaging
2322
+ */
2323
+ /**
2324
+ * Props interface for the Subscribe component
2325
+ */
2326
+ interface SubscribeProps {
2327
+ /** Main heading text for the subscription section */
2328
+ heading?: string;
2329
+ /** Subheading or description text */
2330
+ subheading?: string;
2331
+ /** Button text when not loading */
2332
+ buttonText?: string;
2333
+ /** Button text when loading/submitting */
2334
+ loadingButtonText?: string;
2335
+ /** Placeholder text for email input */
2336
+ inputPlaceholder?: string;
2337
+ /** Success message shown after successful subscription */
2338
+ successMessage?: string;
2339
+ /** Error message for invalid email format */
2340
+ invalidEmailMessage?: string;
2341
+ /** Error message for reCAPTCHA verification failure */
2342
+ recaptchaMessage?: string;
2343
+ /** Generic error message for API failures */
2344
+ errorMessage?: string;
2345
+ /** API endpoint for subscription requests */
2346
+ apiEndpoint?: string;
2347
+ /** Text for the verify button in reCAPTCHA popover */
2348
+ verifyButtonText?: string;
2349
+ /** Additional CSS classes for the container */
2350
+ className?: string;
2351
+ }
2352
+ /**
2353
+ * Subscribe Component
2354
+ *
2355
+ * A complete newsletter subscription form with the following features:
2356
+ * - Email validation with regex pattern matching
2357
+ * - reCAPTCHA v2 verification for bot protection
2358
+ * - Analytics tracking for conversion metrics
2359
+ * - Customizable messaging and styling
2360
+ * - Toast notifications for user feedback
2361
+ * - Loading states and error handling
2362
+ *
2363
+ * The component automatically tracks subscription events for analytics
2364
+ * and provides a seamless user experience with proper accessibility.
2365
+ *
2366
+ * @param props - Component props
2367
+ * @returns JSX element containing the subscription form
2368
+ *
2369
+ * @example
2370
+ * ```tsx
2371
+ * // Basic usage with default settings
2372
+ * <Subscribe />
2373
+ *
2374
+ * // Custom messaging and endpoint
2375
+ * <Subscribe
2376
+ * heading="Join Our Community"
2377
+ * subheading="Get exclusive updates and early access"
2378
+ * buttonText="Join Now"
2379
+ * apiEndpoint="/api/newsletter/subscribe"
2380
+ * successMessage="Welcome to our community!"
2381
+ * />
2382
+ *
2383
+ * // Multilingual support
2384
+ * <Subscribe
2385
+ * heading="Tetap terinformasi dengan rilis terbaru"
2386
+ * subheading="Hanya update yang layak diketahui"
2387
+ * buttonText="Berlangganan"
2388
+ * loadingButtonText="Berlangganan..."
2389
+ * inputPlaceholder="Alamat email Anda"
2390
+ * successMessage="Terima kasih atas langganan Anda!"
2391
+ * invalidEmailMessage="Alamat email tidak valid. Silakan periksa dan coba lagi."
2392
+ * />
2393
+ *
2394
+ * // Custom styling
2395
+ * <Subscribe
2396
+ * className="bg-gradient-to-r from-blue-600 to-purple-600"
2397
+ * />
2398
+ * ```
2399
+ */
2400
+ declare function Subscribe({ heading, subheading, buttonText, loadingButtonText, inputPlaceholder, successMessage, invalidEmailMessage, recaptchaMessage, errorMessage, apiEndpoint, verifyButtonText, className, }?: SubscribeProps): react_jsx_runtime.JSX.Element;
2401
+
2402
+ /**
2403
+ * Main Toolbar Component
2404
+ *
2405
+ * Creates a horizontal layout with space between heading and actions.
2406
+ * Typically used at the top of pages or sections to display titles
2407
+ * and related action buttons.
2408
+ *
2409
+ * @param props - Component props
2410
+ * @returns JSX element containing the toolbar layout
2411
+ *
2412
+ * @example
2413
+ * ```tsx
2414
+ * <Toolbar>
2415
+ * <ToolbarHeading>
2416
+ * <ToolbarTitle>Dashboard</ToolbarTitle>
2417
+ * <p className="text-sm text-muted-foreground">
2418
+ * Welcome back! Here's what's happening.
2419
+ * </p>
2420
+ * </ToolbarHeading>
2421
+ * <ToolbarActions>
2422
+ * <Button variant="outline">Export</Button>
2423
+ * <Button>Create New</Button>
2424
+ * </ToolbarActions>
2425
+ * </Toolbar>
2426
+ * ```
2427
+ */
2428
+ declare const Toolbar: ({ children }: BaseProps) => react_jsx_runtime.JSX.Element;
2429
+ /**
2430
+ * ToolbarHeading Component
2431
+ *
2432
+ * Container for the left side of the toolbar, typically containing
2433
+ * the title and optional subtitle or description text.
2434
+ *
2435
+ * @param props - Component props
2436
+ * @returns JSX element containing the heading section
2437
+ *
2438
+ * @example
2439
+ * ```tsx
2440
+ * <ToolbarHeading>
2441
+ * <ToolbarTitle>User Management</ToolbarTitle>
2442
+ * <p className="text-sm text-muted-foreground">
2443
+ * Manage user accounts and permissions
2444
+ * </p>
2445
+ * </ToolbarHeading>
2446
+ * ```
2447
+ */
2448
+ declare const ToolbarHeading: ({ children, className }: BaseProps) => react_jsx_runtime.JSX.Element;
2449
+ /**
2450
+ * ToolbarTitle Component
2451
+ *
2452
+ * Displays the main title text with consistent typography.
2453
+ * Renders as an h1 element for proper semantic structure.
2454
+ *
2455
+ * @param props - Component props
2456
+ * @returns JSX element containing the title
2457
+ *
2458
+ * @example
2459
+ * ```tsx
2460
+ * <ToolbarTitle>Analytics Dashboard</ToolbarTitle>
2461
+ *
2462
+ * // With custom styling
2463
+ * <ToolbarTitle className="text-2xl text-blue-600">
2464
+ * Premium Features
2465
+ * </ToolbarTitle>
2466
+ * ```
2467
+ */
2468
+ declare const ToolbarTitle: ({ className, children }: BaseProps) => react_jsx_runtime.JSX.Element;
2469
+ /**
2470
+ * ToolbarActions Component
2471
+ *
2472
+ * Container for the right side of the toolbar, typically containing
2473
+ * action buttons, dropdowns, or other interactive elements.
2474
+ * Responsive design with different gaps on mobile vs desktop.
2475
+ *
2476
+ * @param props - Component props
2477
+ * @returns JSX element containing the actions section
2478
+ *
2479
+ * @example
2480
+ * ```tsx
2481
+ * <ToolbarActions>
2482
+ * <Button variant="outline" size="sm">
2483
+ * <IconDownload className="w-4 h-4 mr-2" />
2484
+ * Export
2485
+ * </Button>
2486
+ * <Button size="sm">
2487
+ * <IconPlus className="w-4 h-4 mr-2" />
2488
+ * Add Item
2489
+ * </Button>
2490
+ * </ToolbarActions>
2491
+ *
2492
+ * // With dropdown menu
2493
+ * <ToolbarActions>
2494
+ * <DropdownMenu>
2495
+ * <DropdownMenuTrigger asChild>
2496
+ * <Button variant="outline">Options</Button>
2497
+ * </DropdownMenuTrigger>
2498
+ * <DropdownMenuContent>
2499
+ * <DropdownMenuItem>Edit</DropdownMenuItem>
2500
+ * <DropdownMenuItem>Delete</DropdownMenuItem>
2501
+ * </DropdownMenuContent>
2502
+ * </DropdownMenu>
2503
+ * </ToolbarActions>
2504
+ * ```
2505
+ */
2506
+ declare const ToolbarActions: ({ children }: BaseProps) => react_jsx_runtime.JSX.Element;
2507
+
2508
+ /**
2509
+ * User Avatar Component
2510
+ * Displays user profile pictures with fallback initials and optional status indicators
2511
+ * Built on top of the base Avatar component with enhanced user-specific features
2512
+ */
2513
+ /**
2514
+ * Props interface for the UserAvatar component
2515
+ */
2516
+ interface UserAvatarProps {
2517
+ /** Additional CSS classes for styling */
2518
+ className?: string;
2519
+ /** Whether to show online status indicator */
2520
+ indicator?: boolean;
2521
+ /** Source URL for the user's profile image */
2522
+ src?: string | null | undefined;
2523
+ /** Alt text for the image, also used to generate initials */
2524
+ alt?: string | null;
2525
+ }
2526
+ /**
2527
+ * UserAvatar Component
2528
+ *
2529
+ * Displays a user's profile picture with automatic fallback to initials
2530
+ * when no image is available. Supports optional online status indicators
2531
+ * and follows accessibility best practices.
2532
+ *
2533
+ * Features:
2534
+ * - Automatic initials generation from name
2535
+ * - Fallback handling for missing images
2536
+ * - Optional online status indicator
2537
+ * - Accessible alt text support
2538
+ * - Customizable styling
2539
+ *
2540
+ * @param props - Component props
2541
+ * @param props.className - Additional CSS classes for styling
2542
+ * @param props.indicator - Whether to show online status indicator (default: false)
2543
+ * @param props.src - Source URL for the user's profile image
2544
+ * @param props.alt - Alt text for the image, also used to generate initials
2545
+ * @returns JSX element containing the user avatar
2546
+ *
2547
+ * @example
2548
+ * ```tsx
2549
+ * // Basic user avatar with image
2550
+ * <UserAvatar
2551
+ * src="https://example.com/avatar.jpg"
2552
+ * alt="John Doe"
2553
+ * />
2554
+ *
2555
+ * // Avatar with online indicator
2556
+ * <UserAvatar
2557
+ * src="https://example.com/avatar.jpg"
2558
+ * alt="Jane Smith"
2559
+ * indicator={true}
2560
+ * />
2561
+ *
2562
+ * // Avatar with fallback initials (no image)
2563
+ * <UserAvatar
2564
+ * alt="Bob Johnson"
2565
+ * className="w-12 h-12"
2566
+ * />
2567
+ *
2568
+ * // User list with avatars
2569
+ * <div className="flex space-x-2">
2570
+ * {users.map(user => (
2571
+ * <UserAvatar
2572
+ * key={user.id}
2573
+ * src={user.avatar}
2574
+ * alt={user.name}
2575
+ * indicator={user.isOnline}
2576
+ * className="w-8 h-8"
2577
+ * />
2578
+ * ))}
2579
+ * </div>
2580
+ *
2581
+ * // Profile header
2582
+ * <div className="flex items-center space-x-4">
2583
+ * <UserAvatar
2584
+ * src={currentUser.avatar}
2585
+ * alt={currentUser.name}
2586
+ * indicator={true}
2587
+ * className="w-16 h-16"
2588
+ * />
2589
+ * <div>
2590
+ * <h2>{currentUser.name}</h2>
2591
+ * <p className="text-gray-600">{currentUser.email}</p>
2592
+ * </div>
2593
+ * </div>
2594
+ * ```
2595
+ */
2596
+ declare function UserAvatar({ className, indicator, src, alt }: UserAvatarProps): react_jsx_runtime.JSX.Element;
2597
+ /**
2598
+ * Utility function to generate initials from a name
2599
+ *
2600
+ * Extracts the first letter of each word in a name and converts
2601
+ * them to uppercase to create user initials for avatar fallbacks.
2602
+ *
2603
+ * @param name - The full name to extract initials from
2604
+ * @param count - Maximum number of initials to return (optional)
2605
+ * @returns String containing the initials
2606
+ *
2607
+ * @example
2608
+ * ```tsx
2609
+ * getInitials("John Doe") // Returns "JD"
2610
+ * getInitials("Jane Mary Smith", 2) // Returns "JM"
2611
+ * getInitials("") // Returns ""
2612
+ * getInitials(null) // Returns ""
2613
+ * ```
2614
+ */
2615
+ declare const getInitials: (name: string | null | undefined, count?: number) => string;
2616
+
2617
+ /**
2618
+ * Satoshi Font Utilities
2619
+ * Provides Satoshi font loading and CSS generation utilities
2620
+ * Loads the variable font from Pelatform CDN with optimal display settings
2621
+ */
2622
+ /**
2623
+ * Satoshi font (local, variable), loaded from Pelatform CDN
2624
+ * Use for branding, headings, or special UI elements.
2625
+ * Supports weights 300–900, normal style, swap display.
2626
+ */
2627
+ declare const satoshiFontUrl = "https://assets.pelatform.com/fonts/satoshi/Satoshi-Variable.woff2";
2628
+ /**
2629
+ * CSS font-face declaration for Satoshi font
2630
+ * Defines the font family with variable weight support and optimal loading
2631
+ */
2632
+ 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";
2633
+ /**
2634
+ * SatoshiFontCSS Component
2635
+ *
2636
+ * Injects the Satoshi font CSS into the document head.
2637
+ * Use this component in your app layout to load the Satoshi font.
2638
+ *
2639
+ * @returns JSX element containing the font CSS styles
2640
+ *
2641
+ * @example
2642
+ * ```tsx
2643
+ * // In your layout or app component
2644
+ * function Layout({ children }: { children: React.ReactNode }) {
2645
+ * return (
2646
+ * <html>
2647
+ * <head>
2648
+ * <SatoshiFontCSS />
2649
+ * </head>
2650
+ * <body className="font-satoshi">
2651
+ * {children}
2652
+ * </body>
2653
+ * </html>
2654
+ * );
2655
+ * }
2656
+ *
2657
+ * // Or use in a specific component
2658
+ * function BrandedSection() {
2659
+ * return (
2660
+ * <>
2661
+ * <SatoshiFontCSS />
2662
+ * <h1 style={{ fontFamily: 'Satoshi' }}>
2663
+ * Branded Heading
2664
+ * </h1>
2665
+ * </>
2666
+ * );
2667
+ * }
2668
+ * ```
2669
+ */
2670
+ declare function SatoshiFontCSS(): react_jsx_runtime.JSX.Element;
2671
+
2672
+ /**
2673
+ * Props interface for the RecaptchaPopover component
2674
+ */
2675
+ interface RecaptchaPopoverProps {
2676
+ /** Whether the popover is open */
2677
+ open: boolean;
2678
+ /** Callback when popover open state changes */
2679
+ onOpenChange: (open: boolean) => void;
2680
+ /** Callback when reCAPTCHA verification succeeds */
2681
+ onVerify: (token: string) => void;
2682
+ /** Trigger element that opens the popover */
2683
+ trigger: ReactNode;
2684
+ /** Custom text for the verify button (default: "Verify & Submit") */
2685
+ verifyButtonText?: string;
2686
+ }
2687
+ /**
2688
+ * RecaptchaPopover Component
2689
+ *
2690
+ * A popover component that displays Google reCAPTCHA v2 verification.
2691
+ * Provides a clean, accessible interface for bot protection without
2692
+ * disrupting the main page flow. Automatically handles reCAPTCHA
2693
+ * initialization, token retrieval, and error states.
2694
+ *
2695
+ * @param props - Component props
2696
+ * @returns JSX element containing the popover with reCAPTCHA
2697
+ *
2698
+ * @example
2699
+ * ```tsx
2700
+ * // Basic usage with form submission
2701
+ * function ContactForm() {
2702
+ * const [showRecaptcha, setShowRecaptcha] = useState(false);
2703
+ * const [formData, setFormData] = useState({ email: '', message: '' });
2704
+ *
2705
+ * const handleSubmit = (e: FormEvent) => {
2706
+ * e.preventDefault();
2707
+ * setShowRecaptcha(true);
2708
+ * };
2709
+ *
2710
+ * const handleRecaptchaVerify = async (token: string) => {
2711
+ * try {
2712
+ * await submitForm({ ...formData, recaptchaToken: token });
2713
+ * setShowRecaptcha(false);
2714
+ * toast.success('Form submitted successfully!');
2715
+ * } catch (error) {
2716
+ * toast.error('Submission failed. Please try again.');
2717
+ * }
2718
+ * };
2719
+ *
2720
+ * return (
2721
+ * <form onSubmit={handleSubmit}>
2722
+ * <input
2723
+ * type="email"
2724
+ * value={formData.email}
2725
+ * onChange={(e) => setFormData(prev => ({ ...prev, email: e.target.value }))}
2726
+ * placeholder="Email"
2727
+ * required
2728
+ * />
2729
+ * <textarea
2730
+ * value={formData.message}
2731
+ * onChange={(e) => setFormData(prev => ({ ...prev, message: e.target.value }))}
2732
+ * placeholder="Message"
2733
+ * required
2734
+ * />
2735
+ *
2736
+ * <RecaptchaPopover
2737
+ * open={showRecaptcha}
2738
+ * onOpenChange={setShowRecaptcha}
2739
+ * onVerify={handleRecaptchaVerify}
2740
+ * trigger={
2741
+ * <Button type="submit">
2742
+ * Send Message
2743
+ * </Button>
2744
+ * }
2745
+ * />
2746
+ * </form>
2747
+ * );
2748
+ * }
2749
+ *
2750
+ * // Custom verification button text
2751
+ * <RecaptchaPopover
2752
+ * open={showVerification}
2753
+ * onOpenChange={setShowVerification}
2754
+ * onVerify={handleVerification}
2755
+ * verifyButtonText="Complete Verification"
2756
+ * trigger={<Button>Verify Account</Button>}
2757
+ * />
2758
+ * ```
2759
+ */
2760
+ declare function RecaptchaPopover({ open, onOpenChange, onVerify, trigger, verifyButtonText, }: RecaptchaPopoverProps): react_jsx_runtime.JSX.Element;
2761
+
2762
+ export { AlertComingsoon, AlertNotification, AlertToast, type AlertToastOptions, Announcement, AnnouncementTag, AnnouncementTitle, BackLink, BackgroundPaths, Body, Book, CodeDisplay, CommandMenu, type CommandMenuProps, ConfirmDismissDialog, type ConfirmDismissDialogProps, DEFAULT_DATA_URL_KEY, DEFAULT_NULL_INDEX, DefaultImage, DefaultLink, DefaultNavigate, DotsPattern, DownloadFile, ExtraLink, FloatingPaths, Grid, GridBackground, Icons, ImageInput, type ImageInputFile, type ImageInputFiles, type ImageInputProps, Logo, MainNav, MaxWidthWrapper, MobileNav, MobileNavItemRenderer, ModeSwitcher, type ModeSwitcherProps, MovingBorder, MovingLabel, type NavItem, type NavigationProps, QueryProvider, RecaptchaPopover, SatoshiFontCSS, ScreenLoader, type ScreenLoaderProps, Section, type SharedImage, type SharedLink, type SharedNavigate, SiteFooter, SiteHeader, Stack, Subscribe, type SubscribeProps, ThemeProvider, Toolbar, ToolbarActions, ToolbarHeading, ToolbarTitle, UserAvatar, Video, Wrapper, Youtube, cssFontFace, getAcceptTypeString, getBase64, getImage, getInitials, getListFiles, handleMenuClick, openFileDialog, satoshiFontUrl };