pelatform-ui 1.1.21 → 1.2.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.
- package/css/animations.css +48 -0
- package/css/shadcn/gray.css +105 -0
- package/css/shadcn/neutral.css +105 -0
- package/css/shadcn/slate.css +105 -0
- package/css/shadcn/stone.css +105 -0
- package/css/shadcn/zinc.css +105 -0
- package/css/styles/style-lyra.css +1335 -0
- package/css/styles/style-maia.css +1360 -0
- package/css/styles/style-mira.css +1362 -0
- package/css/styles/style-nova.css +1360 -0
- package/css/styles/style-vega.css +1356 -0
- package/css/theme.css +122 -182
- package/dist/animation.d.ts +3 -7
- package/dist/animation.js +40 -2
- package/dist/base.d.ts +1 -1
- package/dist/base.js +873 -2
- package/dist/chunk-4OZO7TEB.js +57803 -0
- package/dist/chunk-4VNS5WPM.js +42 -0
- package/dist/{chunk-M2YFAZ2T.js → chunk-5YSCAE7Y.js} +9 -3
- package/dist/chunk-7EOSDFS3.js +10 -0
- package/dist/chunk-B3I74Y4P.js +11228 -0
- package/dist/chunk-BQXV2NHY.js +100 -0
- package/dist/chunk-FC24ZVEO.js +553 -0
- package/dist/chunk-HW52LCWN.js +22 -0
- package/dist/chunk-WFCSII5G.js +28043 -0
- package/dist/colors-CUDWvz1g.d.ts +42 -0
- package/dist/components-B1rw2xzN.d.ts +46 -0
- package/dist/components.d.ts +23 -224
- package/dist/components.js +2378 -730
- package/dist/hooks.d.ts +2 -2
- package/dist/hooks.js +896 -4
- package/dist/index.d.ts +130 -2
- package/dist/index.js +637 -3
- package/dist/radix.d.ts +1 -0
- package/dist/radix.js +20737 -0
- package/package.json +20 -32
- package/css/components/apexcharts.css +0 -101
- package/css/components/book.css +0 -19
- package/css/components/extra.css +0 -12
- package/css/components/image-input.css +0 -51
- package/css/components/leaflet.css +0 -25
- package/css/components/patterns.css +0 -34
- package/css/components/rating.css +0 -89
- package/css/components/scrollable.css +0 -118
- package/css/components/theme-transition.css +0 -51
- package/dist/aria.d.ts +0 -1
- package/dist/aria.js +0 -2
- package/dist/default.d.ts +0 -1
- package/dist/default.js +0 -2
- package/dist/server.d.ts +0 -1
- package/dist/server.js +0 -2
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme configuration for the application
|
|
3
|
+
* Handles light, dark, and system theme modes with their respective colors
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Available theme modes in the application
|
|
7
|
+
* - light: Force light theme
|
|
8
|
+
* - dark: Force dark theme
|
|
9
|
+
* - system: Follow system/OS preference (auto-detect)
|
|
10
|
+
*/
|
|
11
|
+
declare const THEME_MODES: {
|
|
12
|
+
readonly LIGHT: "light";
|
|
13
|
+
readonly DARK: "dark";
|
|
14
|
+
readonly SYSTEM: "system";
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Type definition for theme modes
|
|
18
|
+
*/
|
|
19
|
+
type ThemeMode = (typeof THEME_MODES)[keyof typeof THEME_MODES];
|
|
20
|
+
/**
|
|
21
|
+
* Meta theme colors for different theme modes
|
|
22
|
+
* Used for:
|
|
23
|
+
* - HTML meta theme-color tags
|
|
24
|
+
* - Browser address bar coloring
|
|
25
|
+
* - PWA theme colors
|
|
26
|
+
* - System theme integration
|
|
27
|
+
*/
|
|
28
|
+
declare const META_THEME_COLORS: {
|
|
29
|
+
/** Light theme color - Pure white for clean, bright appearance */
|
|
30
|
+
readonly light: "#ffffff";
|
|
31
|
+
/** Dark theme color - Near black with slight warmth to reduce eye strain */
|
|
32
|
+
readonly dark: "#09090b";
|
|
33
|
+
/** System theme - Will be determined by user's OS preference */
|
|
34
|
+
readonly system: "auto";
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Default theme mode when no preference is set
|
|
38
|
+
* Falls back to system preference to respect user's OS settings
|
|
39
|
+
*/
|
|
40
|
+
declare const DEFAULT_THEME_MODE: ThemeMode;
|
|
41
|
+
|
|
42
|
+
export { DEFAULT_THEME_MODE as D, META_THEME_COLORS as M, THEME_MODES as T, type ThemeMode as a };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ComponentType, ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Base props interface for all components
|
|
5
|
+
* Includes common properties used across multiple components
|
|
6
|
+
*/
|
|
7
|
+
interface BaseComponentProps {
|
|
8
|
+
/** Child elements to render inside the component */
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
/** Additional CSS classes for the component */
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Image component type definition
|
|
15
|
+
* Defines the interface for image components used throughout the application
|
|
16
|
+
*/
|
|
17
|
+
type ImageComponentProps = ComponentType<{
|
|
18
|
+
/** Source URL of the image */
|
|
19
|
+
src: string;
|
|
20
|
+
/** Alt text for accessibility */
|
|
21
|
+
alt: string;
|
|
22
|
+
/** Additional CSS classes */
|
|
23
|
+
className?: string;
|
|
24
|
+
/** Width of the image */
|
|
25
|
+
width?: number;
|
|
26
|
+
/** Height of the image */
|
|
27
|
+
height?: number;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Link component type definition
|
|
31
|
+
* Defines the interface for link components used throughout the application
|
|
32
|
+
*/
|
|
33
|
+
type LinkComponentProps = ComponentType<{
|
|
34
|
+
/** Link content */
|
|
35
|
+
children: ReactNode;
|
|
36
|
+
/** Destination URL */
|
|
37
|
+
href: string;
|
|
38
|
+
/** Target attribute */
|
|
39
|
+
target?: "_blank" | "_self" | "_parent" | "_top";
|
|
40
|
+
/** Additional CSS classes */
|
|
41
|
+
className?: string;
|
|
42
|
+
/** Click handler */
|
|
43
|
+
onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;
|
|
44
|
+
}>;
|
|
45
|
+
|
|
46
|
+
export type { BaseComponentProps as B, ImageComponentProps as I, LinkComponentProps as L };
|
package/dist/components.d.ts
CHANGED
|
@@ -1,25 +1,13 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as React$1 from 'react';
|
|
3
|
-
import React__default, { ReactNode, HTMLAttributes,
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import React__default, { ComponentProps, ReactNode, HTMLAttributes, FC, DragEvent, RefObject } from 'react';
|
|
4
|
+
import { Alert, badgeVariants, Button } from '@pelatform/ui.components/base';
|
|
5
|
+
import { B as BaseComponentProps, L as LinkComponentProps, I as ImageComponentProps } from './components-B1rw2xzN.js';
|
|
6
6
|
import { QueryClient } from '@tanstack/react-query';
|
|
7
7
|
import { ThemeProvider as ThemeProvider$1 } from 'next-themes';
|
|
8
|
-
import {
|
|
9
|
-
import { ThemeMode } from '
|
|
8
|
+
import { VariantProps } from 'class-variance-authority';
|
|
9
|
+
import { a as ThemeMode } from './colors-CUDWvz1g.js';
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
* Alert Toast Component
|
|
13
|
-
*
|
|
14
|
-
* This module provides a customizable toast notification system using Sonner
|
|
15
|
-
* with integrated Alert components for consistent UI styling.
|
|
16
|
-
*
|
|
17
|
-
* Features:
|
|
18
|
-
* - Multiple icon variants (primary, destructive, success, info, warning)
|
|
19
|
-
* - Customizable alert variants for different visual styles
|
|
20
|
-
* - Auto-dismiss after 4 seconds
|
|
21
|
-
* - Unique ID generation for each toast
|
|
22
|
-
*/
|
|
23
11
|
/**
|
|
24
12
|
* Configuration options for the alert toast notification
|
|
25
13
|
*/
|
|
@@ -29,7 +17,7 @@ interface AlertToastOptions {
|
|
|
29
17
|
/** Icon variant to display in the alert - determines which icon is shown */
|
|
30
18
|
icon?: "primary" | "destructive" | "success" | "info" | "warning";
|
|
31
19
|
/** Visual variant of the alert component - affects styling and colors */
|
|
32
|
-
variant?:
|
|
20
|
+
variant?: ComponentProps<typeof Alert>["variant"];
|
|
33
21
|
}
|
|
34
22
|
/**
|
|
35
23
|
* Creates and displays a customizable alert toast notification
|
|
@@ -37,7 +25,7 @@ interface AlertToastOptions {
|
|
|
37
25
|
* @param options - Configuration options for the toast
|
|
38
26
|
* @param options.message - The message to display (default: 'This is a toast')
|
|
39
27
|
* @param options.icon - The icon variant to show (default: 'success')
|
|
40
|
-
* @param options.variant - The visual style variant (default: '
|
|
28
|
+
* @param options.variant - The visual style variant (default: 'default')
|
|
41
29
|
*
|
|
42
30
|
* @example
|
|
43
31
|
* ```tsx
|
|
@@ -129,7 +117,7 @@ declare function AlertNotification({ message, variant }: AlertToastOptions): rea
|
|
|
129
117
|
* };
|
|
130
118
|
* ```
|
|
131
119
|
*/
|
|
132
|
-
declare const AlertComingsoon: ({ message,
|
|
120
|
+
declare const AlertComingsoon: ({ message, variant, }?: AlertToastOptions) => void;
|
|
133
121
|
|
|
134
122
|
/**
|
|
135
123
|
* Confirm Dismiss Dialog Component
|
|
@@ -432,6 +420,8 @@ interface ErrorComponentsProps {
|
|
|
432
420
|
textSubtitle?: ReactNode;
|
|
433
421
|
/** Optional action button (e.g., retry) */
|
|
434
422
|
button?: ReactNode;
|
|
423
|
+
/** Function to generate asset URLs (e.g., for CDN integration) */
|
|
424
|
+
assetsUrl?: (path: string) => string;
|
|
435
425
|
}
|
|
436
426
|
/**
|
|
437
427
|
* ErrorComponents Component
|
|
@@ -451,7 +441,7 @@ interface ErrorComponentsProps {
|
|
|
451
441
|
* />
|
|
452
442
|
* ```
|
|
453
443
|
*/
|
|
454
|
-
declare function ErrorComponents({ className, type, textTitle, textSubtitle, button, }: ErrorComponentsProps): react_jsx_runtime.JSX.Element;
|
|
444
|
+
declare function ErrorComponents({ className, type, textTitle, textSubtitle, button, assetsUrl, }: ErrorComponentsProps): react_jsx_runtime.JSX.Element;
|
|
455
445
|
|
|
456
446
|
/**
|
|
457
447
|
* Grid Component
|
|
@@ -860,7 +850,7 @@ declare function DownloadFile({ children, className, href }: BaseComponentProps
|
|
|
860
850
|
*/
|
|
861
851
|
interface SharedImage {
|
|
862
852
|
/** Custom Image component implementation */
|
|
863
|
-
Image?:
|
|
853
|
+
Image?: ImageComponentProps;
|
|
864
854
|
}
|
|
865
855
|
/**
|
|
866
856
|
* Interface for components that accept a custom Link component
|
|
@@ -868,7 +858,7 @@ interface SharedImage {
|
|
|
868
858
|
*/
|
|
869
859
|
interface SharedLink {
|
|
870
860
|
/** Custom Link component implementation */
|
|
871
|
-
Link?:
|
|
861
|
+
Link?: LinkComponentProps;
|
|
872
862
|
}
|
|
873
863
|
/**
|
|
874
864
|
* Interface for components that accept a custom navigation function
|
|
@@ -901,7 +891,7 @@ interface SharedNavigate {
|
|
|
901
891
|
* />
|
|
902
892
|
* ```
|
|
903
893
|
*/
|
|
904
|
-
declare const DefaultImage:
|
|
894
|
+
declare const DefaultImage: ImageComponentProps;
|
|
905
895
|
/**
|
|
906
896
|
* Default Link Component
|
|
907
897
|
*
|
|
@@ -926,7 +916,7 @@ declare const DefaultImage: ImageComponent;
|
|
|
926
916
|
* </DefaultLink>
|
|
927
917
|
* ```
|
|
928
918
|
*/
|
|
929
|
-
declare const DefaultLink:
|
|
919
|
+
declare const DefaultLink: LinkComponentProps;
|
|
930
920
|
/**
|
|
931
921
|
* Default Navigation Function
|
|
932
922
|
*
|
|
@@ -997,7 +987,7 @@ declare const DefaultNavigate: (href: string) => void;
|
|
|
997
987
|
* </ExtraLink>
|
|
998
988
|
* ```
|
|
999
989
|
*/
|
|
1000
|
-
declare function ExtraLink({ Link, href, target, className, children, }: SharedLink & ComponentProps<
|
|
990
|
+
declare function ExtraLink({ Link, href, target, className, children, }: SharedLink & ComponentProps<LinkComponentProps>): react_jsx_runtime.JSX.Element;
|
|
1001
991
|
|
|
1002
992
|
/**
|
|
1003
993
|
* Video Component
|
|
@@ -1225,7 +1215,7 @@ declare function BackLink({ Link, children, href, className }: BackLinkProps): r
|
|
|
1225
1215
|
* Props interface for the CommandMenu component
|
|
1226
1216
|
* Extends DialogProps from Radix UI for full dialog customization
|
|
1227
1217
|
*/
|
|
1228
|
-
interface CommandMenuProps
|
|
1218
|
+
interface CommandMenuProps {
|
|
1229
1219
|
/** Child elements to render inside the command list (command items, groups, etc.) */
|
|
1230
1220
|
children: React$1.ReactNode;
|
|
1231
1221
|
/** Additional CSS classes for the trigger button */
|
|
@@ -1393,7 +1383,6 @@ interface NavigationProps extends SharedLink {
|
|
|
1393
1383
|
* ```
|
|
1394
1384
|
*/
|
|
1395
1385
|
declare function MainNav({ Link, pathname, items, className }: NavigationProps): react_jsx_runtime.JSX.Element;
|
|
1396
|
-
declare function handleMenuClick(item: NavItem): void;
|
|
1397
1386
|
|
|
1398
1387
|
/**
|
|
1399
1388
|
* MobileNav Component
|
|
@@ -1995,8 +1984,6 @@ interface HexagonBadgeProps {
|
|
|
1995
1984
|
* @example
|
|
1996
1985
|
* ```tsx
|
|
1997
1986
|
* // Basic usage with an icon
|
|
1998
|
-
* import { StarIcon } from '@pelatform/ui.general';
|
|
1999
|
-
*
|
|
2000
1987
|
* <HexagonBadge>
|
|
2001
1988
|
* <StarIcon className="w-6 h-6" />
|
|
2002
1989
|
* </HexagonBadge>
|
|
@@ -2285,7 +2272,7 @@ interface LanguageSwitcherProps extends SharedImage {
|
|
|
2285
2272
|
/** Button variant style (for toggle type) */
|
|
2286
2273
|
variant?: "ghost" | "outline" | "secondary";
|
|
2287
2274
|
/** Button size (for toggle type) */
|
|
2288
|
-
size?:
|
|
2275
|
+
size?: ComponentProps<typeof Button>["size"];
|
|
2289
2276
|
/** Whether to show language names */
|
|
2290
2277
|
showNames?: boolean;
|
|
2291
2278
|
/** Whether to show flag icons */
|
|
@@ -2361,7 +2348,7 @@ interface ModeSwitcherProps {
|
|
|
2361
2348
|
/** Button variant style */
|
|
2362
2349
|
variant?: "ghost" | "outline" | "secondary";
|
|
2363
2350
|
/** Button size */
|
|
2364
|
-
size?:
|
|
2351
|
+
size?: React$1.ComponentProps<typeof Button>["size"];
|
|
2365
2352
|
/** Custom cycle order for themes (defaults to system -> light -> dark) */
|
|
2366
2353
|
cycleOrder?: ThemeMode[];
|
|
2367
2354
|
/** Button type: 'toggle' for a single button or 'dropdown' and 'sub-dropdown' for a menu with options */
|
|
@@ -2539,90 +2526,6 @@ interface MovingBorderProps {
|
|
|
2539
2526
|
*/
|
|
2540
2527
|
declare const MovingBorder: ({ children, duration, rx, ry, ...otherProps }: MovingBorderProps) => react_jsx_runtime.JSX.Element;
|
|
2541
2528
|
|
|
2542
|
-
/**
|
|
2543
|
-
* Newsletter Subscribe Component
|
|
2544
|
-
* Provides a complete newsletter subscription form with reCAPTCHA verification,
|
|
2545
|
-
* email validation, analytics tracking, and customizable messaging
|
|
2546
|
-
*/
|
|
2547
|
-
/**
|
|
2548
|
-
* Props interface for the Subscribe component
|
|
2549
|
-
*/
|
|
2550
|
-
interface SubscribeProps {
|
|
2551
|
-
/** Main heading text for the subscription section */
|
|
2552
|
-
heading?: string;
|
|
2553
|
-
/** Subheading or description text */
|
|
2554
|
-
subheading?: string;
|
|
2555
|
-
/** Button text when not loading */
|
|
2556
|
-
buttonText?: string;
|
|
2557
|
-
/** Button text when loading/submitting */
|
|
2558
|
-
loadingButtonText?: string;
|
|
2559
|
-
/** Placeholder text for email input */
|
|
2560
|
-
inputPlaceholder?: string;
|
|
2561
|
-
/** Success message shown after successful subscription */
|
|
2562
|
-
successMessage?: string;
|
|
2563
|
-
/** Error message for invalid email format */
|
|
2564
|
-
invalidEmailMessage?: string;
|
|
2565
|
-
/** Error message for reCAPTCHA verification failure */
|
|
2566
|
-
recaptchaMessage?: string;
|
|
2567
|
-
/** Generic error message for API failures */
|
|
2568
|
-
errorMessage?: string;
|
|
2569
|
-
/** API endpoint for subscription requests */
|
|
2570
|
-
apiEndpoint?: string;
|
|
2571
|
-
/** Text for the verify button in reCAPTCHA popover */
|
|
2572
|
-
verifyButtonText?: string;
|
|
2573
|
-
/** Additional CSS classes for the container */
|
|
2574
|
-
className?: string;
|
|
2575
|
-
}
|
|
2576
|
-
/**
|
|
2577
|
-
* Subscribe Component
|
|
2578
|
-
*
|
|
2579
|
-
* A complete newsletter subscription form with the following features:
|
|
2580
|
-
* - Email validation with regex pattern matching
|
|
2581
|
-
* - reCAPTCHA v2 verification for bot protection
|
|
2582
|
-
* - Analytics tracking for conversion metrics
|
|
2583
|
-
* - Customizable messaging and styling
|
|
2584
|
-
* - Toast notifications for user feedback
|
|
2585
|
-
* - Loading states and error handling
|
|
2586
|
-
*
|
|
2587
|
-
* The component automatically tracks subscription events for analytics
|
|
2588
|
-
* and provides a seamless user experience with proper accessibility.
|
|
2589
|
-
*
|
|
2590
|
-
* @param props - Component props
|
|
2591
|
-
* @returns JSX element containing the subscription form
|
|
2592
|
-
*
|
|
2593
|
-
* @example
|
|
2594
|
-
* ```tsx
|
|
2595
|
-
* // Basic usage with default settings
|
|
2596
|
-
* <Subscribe />
|
|
2597
|
-
*
|
|
2598
|
-
* // Custom messaging and endpoint
|
|
2599
|
-
* <Subscribe
|
|
2600
|
-
* heading="Join Our Community"
|
|
2601
|
-
* subheading="Get exclusive updates and early access"
|
|
2602
|
-
* buttonText="Join Now"
|
|
2603
|
-
* apiEndpoint="/api/newsletter/subscribe"
|
|
2604
|
-
* successMessage="Welcome to our community!"
|
|
2605
|
-
* />
|
|
2606
|
-
*
|
|
2607
|
-
* // Multilingual support
|
|
2608
|
-
* <Subscribe
|
|
2609
|
-
* heading="Tetap terinformasi dengan rilis terbaru"
|
|
2610
|
-
* subheading="Hanya update yang layak diketahui"
|
|
2611
|
-
* buttonText="Berlangganan"
|
|
2612
|
-
* loadingButtonText="Berlangganan..."
|
|
2613
|
-
* inputPlaceholder="Alamat email Anda"
|
|
2614
|
-
* successMessage="Terima kasih atas langganan Anda!"
|
|
2615
|
-
* invalidEmailMessage="Alamat email tidak valid. Silakan periksa dan coba lagi."
|
|
2616
|
-
* />
|
|
2617
|
-
*
|
|
2618
|
-
* // Custom styling
|
|
2619
|
-
* <Subscribe
|
|
2620
|
-
* className="bg-gradient-to-r from-blue-600 to-purple-600"
|
|
2621
|
-
* />
|
|
2622
|
-
* ```
|
|
2623
|
-
*/
|
|
2624
|
-
declare function Subscribe({ heading, subheading, buttonText, loadingButtonText, inputPlaceholder, successMessage, invalidEmailMessage, recaptchaMessage, errorMessage, apiEndpoint, verifyButtonText, className, }?: SubscribeProps): react_jsx_runtime.JSX.Element;
|
|
2625
|
-
|
|
2626
2529
|
/**
|
|
2627
2530
|
* Main Toolbar Component
|
|
2628
2531
|
*
|
|
@@ -2731,7 +2634,7 @@ declare const ToolbarActions: ({ children }: BaseComponentProps) => react_jsx_ru
|
|
|
2731
2634
|
|
|
2732
2635
|
/**
|
|
2733
2636
|
* User Avatar Component
|
|
2734
|
-
* Displays user profile pictures with fallback initials
|
|
2637
|
+
* Displays user profile pictures with fallback initials
|
|
2735
2638
|
* Built on top of the base Avatar component with enhanced user-specific features
|
|
2736
2639
|
*/
|
|
2737
2640
|
/**
|
|
@@ -2740,8 +2643,6 @@ declare const ToolbarActions: ({ children }: BaseComponentProps) => react_jsx_ru
|
|
|
2740
2643
|
interface UserAvatarProps {
|
|
2741
2644
|
/** Additional CSS classes for styling */
|
|
2742
2645
|
className?: string;
|
|
2743
|
-
/** Whether to show online status indicator */
|
|
2744
|
-
indicator?: boolean;
|
|
2745
2646
|
/** Source URL for the user's profile image */
|
|
2746
2647
|
src?: string | null | undefined;
|
|
2747
2648
|
/** Alt text for the image, also used to generate initials */
|
|
@@ -2751,19 +2652,16 @@ interface UserAvatarProps {
|
|
|
2751
2652
|
* UserAvatar Component
|
|
2752
2653
|
*
|
|
2753
2654
|
* Displays a user's profile picture with automatic fallback to initials
|
|
2754
|
-
* when no image is available.
|
|
2755
|
-
* and follows accessibility best practices.
|
|
2655
|
+
* when no image is available.
|
|
2756
2656
|
*
|
|
2757
2657
|
* Features:
|
|
2758
2658
|
* - Automatic initials generation from name
|
|
2759
2659
|
* - Fallback handling for missing images
|
|
2760
|
-
* - Optional online status indicator
|
|
2761
2660
|
* - Accessible alt text support
|
|
2762
2661
|
* - Customizable styling
|
|
2763
2662
|
*
|
|
2764
2663
|
* @param props - Component props
|
|
2765
2664
|
* @param props.className - Additional CSS classes for styling
|
|
2766
|
-
* @param props.indicator - Whether to show online status indicator (default: false)
|
|
2767
2665
|
* @param props.src - Source URL for the user's profile image
|
|
2768
2666
|
* @param props.alt - Alt text for the image, also used to generate initials
|
|
2769
2667
|
* @returns JSX element containing the user avatar
|
|
@@ -2776,13 +2674,6 @@ interface UserAvatarProps {
|
|
|
2776
2674
|
* alt="John Doe"
|
|
2777
2675
|
* />
|
|
2778
2676
|
*
|
|
2779
|
-
* // Avatar with online indicator
|
|
2780
|
-
* <UserAvatar
|
|
2781
|
-
* src="https://example.com/avatar.jpg"
|
|
2782
|
-
* alt="Jane Smith"
|
|
2783
|
-
* indicator={true}
|
|
2784
|
-
* />
|
|
2785
|
-
*
|
|
2786
2677
|
* // Avatar with fallback initials (no image)
|
|
2787
2678
|
* <UserAvatar
|
|
2788
2679
|
* alt="Bob Johnson"
|
|
@@ -2796,7 +2687,6 @@ interface UserAvatarProps {
|
|
|
2796
2687
|
* key={user.id}
|
|
2797
2688
|
* src={user.avatar}
|
|
2798
2689
|
* alt={user.name}
|
|
2799
|
-
* indicator={user.isOnline}
|
|
2800
2690
|
* className="w-8 h-8"
|
|
2801
2691
|
* />
|
|
2802
2692
|
* ))}
|
|
@@ -2807,7 +2697,6 @@ interface UserAvatarProps {
|
|
|
2807
2697
|
* <UserAvatar
|
|
2808
2698
|
* src={currentUser.avatar}
|
|
2809
2699
|
* alt={currentUser.name}
|
|
2810
|
-
* indicator={true}
|
|
2811
2700
|
* className="w-16 h-16"
|
|
2812
2701
|
* />
|
|
2813
2702
|
* <div>
|
|
@@ -2817,7 +2706,7 @@ interface UserAvatarProps {
|
|
|
2817
2706
|
* </div>
|
|
2818
2707
|
* ```
|
|
2819
2708
|
*/
|
|
2820
|
-
declare function UserAvatar({ className,
|
|
2709
|
+
declare function UserAvatar({ className, src, alt }: UserAvatarProps): react_jsx_runtime.JSX.Element;
|
|
2821
2710
|
/**
|
|
2822
2711
|
* Utility function to generate initials from a name
|
|
2823
2712
|
*
|
|
@@ -2893,94 +2782,4 @@ declare const cssFontFace = "\n @font-face {\n font-family: 'Satoshi';\n
|
|
|
2893
2782
|
*/
|
|
2894
2783
|
declare function SatoshiFontCSS(): react_jsx_runtime.JSX.Element;
|
|
2895
2784
|
|
|
2896
|
-
|
|
2897
|
-
* Props interface for the RecaptchaPopover component
|
|
2898
|
-
*/
|
|
2899
|
-
interface RecaptchaPopoverProps {
|
|
2900
|
-
/** Whether the popover is open */
|
|
2901
|
-
open: boolean;
|
|
2902
|
-
/** Callback when popover open state changes */
|
|
2903
|
-
onOpenChange: (open: boolean) => void;
|
|
2904
|
-
/** Callback when reCAPTCHA verification succeeds */
|
|
2905
|
-
onVerify: (token: string) => void;
|
|
2906
|
-
/** Trigger element that opens the popover */
|
|
2907
|
-
trigger: ReactNode;
|
|
2908
|
-
/** Custom text for the verify button (default: "Verify & Submit") */
|
|
2909
|
-
verifyButtonText?: string;
|
|
2910
|
-
}
|
|
2911
|
-
/**
|
|
2912
|
-
* RecaptchaPopover Component
|
|
2913
|
-
*
|
|
2914
|
-
* A popover component that displays Google reCAPTCHA v2 verification.
|
|
2915
|
-
* Provides a clean, accessible interface for bot protection without
|
|
2916
|
-
* disrupting the main page flow. Automatically handles reCAPTCHA
|
|
2917
|
-
* initialization, token retrieval, and error states.
|
|
2918
|
-
*
|
|
2919
|
-
* @param props - Component props
|
|
2920
|
-
* @returns JSX element containing the popover with reCAPTCHA
|
|
2921
|
-
*
|
|
2922
|
-
* @example
|
|
2923
|
-
* ```tsx
|
|
2924
|
-
* // Basic usage with form submission
|
|
2925
|
-
* function ContactForm() {
|
|
2926
|
-
* const [showRecaptcha, setShowRecaptcha] = useState(false);
|
|
2927
|
-
* const [formData, setFormData] = useState({ email: '', message: '' });
|
|
2928
|
-
*
|
|
2929
|
-
* const handleSubmit = (e: FormEvent) => {
|
|
2930
|
-
* e.preventDefault();
|
|
2931
|
-
* setShowRecaptcha(true);
|
|
2932
|
-
* };
|
|
2933
|
-
*
|
|
2934
|
-
* const handleRecaptchaVerify = async (token: string) => {
|
|
2935
|
-
* try {
|
|
2936
|
-
* await submitForm({ ...formData, recaptchaToken: token });
|
|
2937
|
-
* setShowRecaptcha(false);
|
|
2938
|
-
* toast.success('Form submitted successfully!');
|
|
2939
|
-
* } catch (error) {
|
|
2940
|
-
* toast.error('Submission failed. Please try again.');
|
|
2941
|
-
* }
|
|
2942
|
-
* };
|
|
2943
|
-
*
|
|
2944
|
-
* return (
|
|
2945
|
-
* <form onSubmit={handleSubmit}>
|
|
2946
|
-
* <input
|
|
2947
|
-
* type="email"
|
|
2948
|
-
* value={formData.email}
|
|
2949
|
-
* onChange={(e) => setFormData(prev => ({ ...prev, email: e.target.value }))}
|
|
2950
|
-
* placeholder="Email"
|
|
2951
|
-
* required
|
|
2952
|
-
* />
|
|
2953
|
-
* <textarea
|
|
2954
|
-
* value={formData.message}
|
|
2955
|
-
* onChange={(e) => setFormData(prev => ({ ...prev, message: e.target.value }))}
|
|
2956
|
-
* placeholder="Message"
|
|
2957
|
-
* required
|
|
2958
|
-
* />
|
|
2959
|
-
*
|
|
2960
|
-
* <RecaptchaPopover
|
|
2961
|
-
* open={showRecaptcha}
|
|
2962
|
-
* onOpenChange={setShowRecaptcha}
|
|
2963
|
-
* onVerify={handleRecaptchaVerify}
|
|
2964
|
-
* trigger={
|
|
2965
|
-
* <Button type="submit">
|
|
2966
|
-
* Send Message
|
|
2967
|
-
* </Button>
|
|
2968
|
-
* }
|
|
2969
|
-
* />
|
|
2970
|
-
* </form>
|
|
2971
|
-
* );
|
|
2972
|
-
* }
|
|
2973
|
-
*
|
|
2974
|
-
* // Custom verification button text
|
|
2975
|
-
* <RecaptchaPopover
|
|
2976
|
-
* open={showVerification}
|
|
2977
|
-
* onOpenChange={setShowVerification}
|
|
2978
|
-
* onVerify={handleVerification}
|
|
2979
|
-
* verifyButtonText="Complete Verification"
|
|
2980
|
-
* trigger={<Button>Verify Account</Button>}
|
|
2981
|
-
* />
|
|
2982
|
-
* ```
|
|
2983
|
-
*/
|
|
2984
|
-
declare function RecaptchaPopover({ open, onOpenChange, onVerify, trigger, verifyButtonText, }: RecaptchaPopoverProps): react_jsx_runtime.JSX.Element;
|
|
2985
|
-
|
|
2986
|
-
export { AlertComingsoon, AlertNotification, AlertToast, type AlertToastOptions, Announcement, AnnouncementTag, AnnouncementTitle, BackLink, BackgroundPaths, Body, Book, CodeDisplay, ComingSoon, type ComingSoonProps, CommandMenu, type CommandMenuProps, ConfirmDismissDialog, type ConfirmDismissDialogProps, DEFAULT_DATA_URL_KEY, DEFAULT_NULL_INDEX, DefaultImage, DefaultLink, DefaultNavigate, DotsPattern, DownloadFile, ErrorComponents, type ErrorComponentsProps, ExtraLink, FloatingPaths, Grid, GridBackground, HexagonBadge, ImageInput, type ImageInputFile, type ImageInputFiles, type ImageInputProps, LanguageSwitcher, type LanguageSwitcherProps, LayoutAuth, LayoutBlank, type LayoutBlankProps, type LocaleOption, Logo, MainNav, MaxWidthWrapper, MobileNav, MobileNavItemRenderer, ModeSwitcher, type ModeSwitcherProps, MovingBorder, MovingLabel, type NavItem, type NavigationProps, QueryProvider, 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 };
|
|
2785
|
+
export { AlertComingsoon, AlertNotification, AlertToast, type AlertToastOptions, Announcement, AnnouncementTag, AnnouncementTitle, BackLink, BackgroundPaths, Body, Book, CodeDisplay, ComingSoon, type ComingSoonProps, CommandMenu, type CommandMenuProps, ConfirmDismissDialog, type ConfirmDismissDialogProps, DEFAULT_DATA_URL_KEY, DEFAULT_NULL_INDEX, DefaultImage, DefaultLink, DefaultNavigate, DotsPattern, DownloadFile, ErrorComponents, type ErrorComponentsProps, ExtraLink, FloatingPaths, Grid, GridBackground, HexagonBadge, ImageInput, type ImageInputFile, type ImageInputFiles, type ImageInputProps, LanguageSwitcher, type LanguageSwitcherProps, LayoutAuth, LayoutBlank, type LayoutBlankProps, type LocaleOption, Logo, MainNav, MaxWidthWrapper, MobileNav, MobileNavItemRenderer, ModeSwitcher, type ModeSwitcherProps, MovingBorder, MovingLabel, type NavItem, type NavigationProps, QueryProvider, SatoshiFontCSS, ScreenLoader, type ScreenLoaderProps, Section, type SharedImage, type SharedLink, type SharedNavigate, SiteFooter, SiteHeader, Stack, ThemeProvider, Toolbar, ToolbarActions, ToolbarHeading, ToolbarTitle, UserAvatar, Video, Wrapper, Youtube, cssFontFace, getAcceptTypeString, getBase64, getImage, getInitials, getListFiles, openFileDialog, satoshiFontUrl };
|