@fanvue/ui 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,604 @@
1
+ import * as AvatarPrimitive from '@radix-ui/react-avatar';
2
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
3
+ import { ClassValue } from 'clsx';
4
+ import { DateRange } from 'react-day-picker';
5
+ import { DayPickerProps } from 'react-day-picker';
6
+ import { ForwardRefExoticComponent } from 'react';
7
+ import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
8
+ import * as React_2 from 'react';
9
+ import { RefAttributes } from 'react';
10
+ import * as SeparatorPrimitive from '@radix-ui/react-separator';
11
+ import * as SliderPrimitive from '@radix-ui/react-slider';
12
+ import * as SwitchPrimitive from '@radix-ui/react-switch';
13
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
14
+ import * as ToastPrimitive from '@radix-ui/react-toast';
15
+
16
+ export declare const Alert: React_2.ForwardRefExoticComponent<AlertProps & React_2.RefAttributes<HTMLDivElement>>;
17
+
18
+ export declare interface AlertProps extends React_2.HTMLAttributes<HTMLDivElement> {
19
+ /** Visual style variant of the alert (matches Figma "Variant" property) */
20
+ variant?: AlertVariant;
21
+ /** Optional title text (bold) */
22
+ title?: string;
23
+ /** Left icon element */
24
+ icon?: React_2.ReactNode;
25
+ /** Show close button */
26
+ closable?: boolean;
27
+ /** Callback when close button is clicked */
28
+ onClose?: () => void;
29
+ }
30
+
31
+ export declare type AlertVariant = "info" | "success" | "warning" | "error";
32
+
33
+ export declare const ArrowRightIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
34
+ className?: string;
35
+ } & React_2.RefAttributes<SVGSVGElement>>;
36
+
37
+ export declare const ArrowUpRightIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
38
+ className?: string;
39
+ } & React_2.RefAttributes<SVGSVGElement>>;
40
+
41
+ export declare const Avatar: React_2.ForwardRefExoticComponent<AvatarProps & React_2.RefAttributes<HTMLSpanElement>>;
42
+
43
+ export declare const AvatarFallback: React_2.ForwardRefExoticComponent<AvatarFallbackProps & React_2.RefAttributes<HTMLSpanElement>>;
44
+
45
+ export declare interface AvatarFallbackProps extends React_2.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback> {
46
+ }
47
+
48
+ export declare const AvatarImage: React_2.ForwardRefExoticComponent<AvatarImageProps & React_2.RefAttributes<HTMLImageElement>>;
49
+
50
+ export declare interface AvatarImageProps extends React_2.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image> {
51
+ }
52
+
53
+ export declare interface AvatarProps extends React_2.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>, AvatarStyleProps {
54
+ /** URL of the avatar image */
55
+ src?: string;
56
+ /** Alt text for the avatar image */
57
+ alt?: string;
58
+ /** Fallback content (initials, icon, etc.) */
59
+ fallback?: React_2.ReactNode;
60
+ }
61
+
62
+ export declare const AvatarRoot: React_2.ForwardRefExoticComponent<AvatarRootProps & React_2.RefAttributes<HTMLSpanElement>>;
63
+
64
+ export declare interface AvatarRootProps extends React_2.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>, AvatarStyleProps {
65
+ }
66
+
67
+ export declare type AvatarSize = 16 | 24 | 32 | 40 | 48 | 64 | 88 | 148;
68
+
69
+ /** Shared avatar styling props */
70
+ declare interface AvatarStyleProps {
71
+ /** Size variant of the avatar (matches Figma "Size" property) */
72
+ size?: AvatarSize;
73
+ /** Show online status indicator */
74
+ onlineIndicator?: boolean;
75
+ /** Show platinum gradient border (matches Figma "Platinum show" property) */
76
+ platinumShow?: boolean;
77
+ /** Show NSFW blur filter (matches Figma "NSFW show" property) */
78
+ NSFWShow?: boolean;
79
+ }
80
+
81
+ export declare const Badge: React_2.ForwardRefExoticComponent<BadgeProps & React_2.RefAttributes<HTMLSpanElement>>;
82
+
83
+ export declare interface BadgeProps extends React_2.HTMLAttributes<HTMLSpanElement> {
84
+ /** Visual style variant of the badge */
85
+ variant?: BadgeVariant;
86
+ /** Show left status indicator dot */
87
+ leftDot?: boolean;
88
+ /** Left icon element */
89
+ leftIcon?: React_2.ReactNode;
90
+ /** Right icon element */
91
+ rightIcon?: React_2.ReactNode;
92
+ /** Render as a different element using Radix Slot */
93
+ asChild?: boolean;
94
+ }
95
+
96
+ export declare type BadgeVariant = keyof typeof badgeVariants.variant;
97
+
98
+ declare const badgeVariants: {
99
+ readonly variant: {
100
+ readonly default: "bg-neutral-100 text-neutral-400";
101
+ readonly dark: "bg-background-800 text-body-300 dark:text-body-white-solid-constant";
102
+ readonly success: "bg-neutral-100 text-neutral-400";
103
+ readonly warning: "bg-neutral-100 text-neutral-400";
104
+ readonly error: "bg-neutral-100 text-neutral-400";
105
+ readonly special: "bg-neutral-100 text-neutral-400";
106
+ readonly info: "bg-neutral-100 text-neutral-400";
107
+ readonly online: "bg-background-200 text-brand-green-500";
108
+ readonly brand: "bg-brand-green-500 text-body-black-solid-constant";
109
+ readonly pink: "bg-brand-pink-500 text-body-black-solid-constant";
110
+ readonly brandLight: "bg-brand-green-50 text-body-black-solid-constant";
111
+ readonly pinkLight: "bg-brand-pink-50 text-body-black-solid-constant";
112
+ };
113
+ readonly dotColor: {
114
+ readonly default: "bg-body-black-solid-constant";
115
+ readonly dark: "bg-body-300 dark:bg-body-white-solid-constant";
116
+ readonly success: "bg-success-500";
117
+ readonly warning: "bg-warning-500";
118
+ readonly error: "bg-error-500";
119
+ readonly special: "bg-special-500";
120
+ readonly info: "bg-info-500";
121
+ readonly online: "bg-brand-green-500";
122
+ readonly brand: "bg-body-black-solid-constant";
123
+ readonly pink: "bg-body-black-solid-constant";
124
+ readonly brandLight: "bg-body-black-solid-constant";
125
+ readonly pinkLight: "bg-body-black-solid-constant";
126
+ };
127
+ };
128
+
129
+ export declare const Button: React_2.ForwardRefExoticComponent<ButtonProps & React_2.RefAttributes<HTMLButtonElement>>;
130
+
131
+ export declare interface ButtonProps extends React_2.ButtonHTMLAttributes<HTMLButtonElement> {
132
+ /** Visual style variant of the button */
133
+ variant?: ButtonVariant;
134
+ /** Size of the button in pixels */
135
+ size?: ButtonSize;
136
+ /** Left icon element */
137
+ leftIcon?: React_2.ReactNode;
138
+ /** Right icon element */
139
+ rightIcon?: React_2.ReactNode;
140
+ /** Show loading spinner */
141
+ loading?: boolean;
142
+ /** Render as a different element using Radix Slot */
143
+ asChild?: boolean;
144
+ /** Old price shown with strikethrough before the current price */
145
+ discount?: string;
146
+ /** Current price shown inside the button after the label/icons */
147
+ price?: string;
148
+ }
149
+
150
+ export declare type ButtonSize = "48" | "40" | "32" | "24";
151
+
152
+ export declare type ButtonVariant = "primary" | "secondary" | "tertiary" | "link" | "brand" | "destructive" | "white" | "tertiaryDestructive" | "text";
153
+
154
+ export declare const Checkbox: React_2.ForwardRefExoticComponent<CheckboxProps & React_2.RefAttributes<HTMLInputElement>>;
155
+
156
+ export declare interface CheckboxProps extends Omit<React_2.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>, "asChild"> {
157
+ /** Size variant for label and helper text */
158
+ size?: CheckboxSize;
159
+ /** Label text displayed next to the checkbox */
160
+ label?: string;
161
+ /** Helper text displayed below the label */
162
+ helperText?: string;
163
+ }
164
+
165
+ export declare type CheckboxSize = "default" | "small";
166
+
167
+ export declare const CheckCircleIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
168
+ className?: string;
169
+ } & React_2.RefAttributes<SVGSVGElement>>;
170
+
171
+ /** Small checkmark icon for use in checkbox/toggle components (12x12 viewBox) */
172
+ export declare const CheckIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
173
+ className?: string;
174
+ } & React_2.RefAttributes<SVGSVGElement>>;
175
+
176
+ export declare const ChevronLeftIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
177
+ className?: string;
178
+ } & React_2.RefAttributes<SVGSVGElement>>;
179
+
180
+ export declare const ChevronRightIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
181
+ className?: string;
182
+ } & React_2.RefAttributes<SVGSVGElement>>;
183
+
184
+ export declare function cn(...inputs: ClassValue[]): string;
185
+
186
+ export declare const Count: React_2.ForwardRefExoticComponent<CountProps & React_2.RefAttributes<HTMLSpanElement>>;
187
+
188
+ export declare interface CountProps extends React_2.HTMLAttributes<HTMLSpanElement> {
189
+ /** Visual style variant of the count */
190
+ variant?: CountVariant;
191
+ /** The count value to display */
192
+ value?: number;
193
+ /** Maximum value to display before showing overflow (e.g., "99+") */
194
+ max?: number;
195
+ /** Render as a different element using Radix Slot */
196
+ asChild?: boolean;
197
+ }
198
+
199
+ export declare type CountVariant = "Default" | "Brand" | "Pink" | "Info" | "Success" | "Warning";
200
+
201
+ export declare const CrossIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
202
+ className?: string;
203
+ } & React_2.RefAttributes<SVGSVGElement>>;
204
+
205
+ export declare const CrownIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
206
+ className?: string;
207
+ } & React_2.RefAttributes<SVGSVGElement>>;
208
+
209
+ export declare const DatePicker: ForwardRefExoticComponent<DatePickerProps & RefAttributes<HTMLDivElement>>;
210
+
211
+ export declare interface DatePickerOwnProps {
212
+ /** Display one month or two side-by-side. @default "single" */
213
+ type?: DatePickerType;
214
+ /** Called when the Apply button is clicked. */
215
+ onApply?: () => void;
216
+ /** Called when the Cancel button is clicked. */
217
+ onCancel?: () => void;
218
+ /** Label for the cancel button. @default "Cancel" */
219
+ cancelLabel?: string;
220
+ /** Label for the apply button. @default "Apply" */
221
+ applyLabel?: string;
222
+ /** Whether to render cancel / apply footer buttons. @default true */
223
+ showFooter?: boolean;
224
+ /** Additional className for the outer container. */
225
+ className?: string;
226
+ }
227
+
228
+ export declare type DatePickerProps = DatePickerOwnProps & OmitDistributed<DayPickerProps, "numberOfMonths">;
229
+
230
+ export declare type DatePickerType = "single" | "double";
231
+
232
+ export { DateRange }
233
+
234
+ export declare const Divider: React_2.ForwardRefExoticComponent<DividerProps & React_2.RefAttributes<HTMLDivElement>>;
235
+
236
+ export declare interface DividerProps extends React_2.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> {
237
+ /** Custom label to display*/
238
+ label?: string;
239
+ }
240
+
241
+ export declare const ErrorCircleIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
242
+ className?: string;
243
+ } & React_2.RefAttributes<SVGSVGElement>>;
244
+
245
+ export declare const FireIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
246
+ className?: string;
247
+ } & React_2.RefAttributes<SVGSVGElement>>;
248
+
249
+ export declare const HomeIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
250
+ className?: string;
251
+ } & React_2.RefAttributes<SVGSVGElement>>;
252
+
253
+ export declare const IconButton: React_2.ForwardRefExoticComponent<IconButtonProps & React_2.RefAttributes<HTMLButtonElement>>;
254
+
255
+ export declare interface IconButtonProps extends Omit<React_2.ButtonHTMLAttributes<HTMLButtonElement>, "style"> {
256
+ /** Visual style variant of the icon button */
257
+ variant?: IconButtonVariant;
258
+ /** Size of the button */
259
+ size?: IconButtonSize;
260
+ /** Icon element to display */
261
+ icon: React_2.ReactNode;
262
+ /** Counter value to display */
263
+ counterValue?: number;
264
+ }
265
+
266
+ export declare type IconButtonSize = "24" | "32" | "40" | "52" | "72";
267
+
268
+ export declare type IconButtonVariant = "primary" | "secondary" | "tertiary" | "brand" | "contrast" | "messaging" | "navTray" | "tertiaryDestructive" | "stop" | "microphone";
269
+
270
+ /** Icon component props. Override default size via className (e.g. className="size-6"). */
271
+ export declare type IconProps = React_2.SVGAttributes<SVGSVGElement> & {
272
+ className?: string;
273
+ };
274
+
275
+ export declare const InfoCircleIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
276
+ className?: string;
277
+ } & React_2.RefAttributes<SVGSVGElement>>;
278
+
279
+ export declare const Logo: React_2.ForwardRefExoticComponent<LogoProps & React_2.RefAttributes<HTMLDivElement>>;
280
+
281
+ export declare type LogoColor = "Full colour" | "Decolour" | "White Always" | "Black Always";
282
+
283
+ export declare interface LogoProps extends React_2.HTMLAttributes<HTMLDivElement> {
284
+ /** Logo layout type (matches Figma "Type" property) */
285
+ type?: LogoType;
286
+ /** Logo color scheme (matches Figma "Colour" property) */
287
+ color?: LogoColor;
288
+ /**
289
+ * Accessible label for the logo.
290
+ * Required when type="Icon" and used in interactive contexts (links, buttons).
291
+ * @example "Fanvue home" or "Go to homepage"
292
+ */
293
+ "aria-label"?: string;
294
+ }
295
+
296
+ export declare type LogoType = "Full" | "Icon" | "Wordmark" | "Portrait";
297
+
298
+ /** Small minus/indeterminate icon for use in checkbox components (12x12 viewBox) */
299
+ export declare const MinusIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
300
+ className?: string;
301
+ } & React_2.RefAttributes<SVGSVGElement>>;
302
+
303
+ /**
304
+ * Like `Omit`, but preserves discriminated unions.
305
+ *
306
+ * `Omit<A | B, K>` collapses the union first, losing narrowing by discriminant.
307
+ * This distributes over each member: `Omit<A, K> | Omit<B, K>`.
308
+ *
309
+ * @example
310
+ * ```ts
311
+ * type Action = { type: "a"; payload: string } | { type: "b"; count: number };
312
+ * type WithoutPayload = OmitDistributed<Action, "payload">;
313
+ * // => { type: "a" } | { type: "b"; count: number }
314
+ * ```
315
+ */
316
+ export declare type OmitDistributed<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
317
+
318
+ export declare const Pagination: React_2.ForwardRefExoticComponent<PaginationProps & React_2.RefAttributes<HTMLElement>>;
319
+
320
+ export declare interface PaginationProps extends Omit<React_2.HTMLAttributes<HTMLElement>, "onChange"> {
321
+ /** Visual style variant */
322
+ variant?: PaginationVariant;
323
+ /** Total number of pages */
324
+ totalPages: number;
325
+ /** Current active page (1-indexed) */
326
+ currentPage: number;
327
+ /** Called when the page changes */
328
+ onPageChange?: (page: number) => void;
329
+ /** Label for the nav landmark. @default "Pagination" */
330
+ ariaLabel?: string;
331
+ /** Label for the previous button. @default "Previous page" */
332
+ previousLabel?: string;
333
+ /** Label for the next button. @default "Next page" */
334
+ nextLabel?: string;
335
+ /** Generates the aria-label for each page button. @default (page) => \`Page ${page}\` */
336
+ getPageLabel?: (page: number) => string;
337
+ }
338
+
339
+ export declare type PaginationVariant = "default" | "dots";
340
+
341
+ export declare const Pill: React_2.ForwardRefExoticComponent<PillProps & React_2.RefAttributes<HTMLSpanElement>>;
342
+
343
+ export declare interface PillProps extends React_2.HTMLAttributes<HTMLSpanElement> {
344
+ /** Visual style variant of the pill */
345
+ variant?: PillVariant;
346
+ /** Left icon element */
347
+ leftIcon?: React_2.ReactNode;
348
+ /** Right icon element */
349
+ rightIcon?: React_2.ReactNode;
350
+ /** Render as a different element using Radix Slot */
351
+ asChild?: boolean;
352
+ }
353
+
354
+ export declare type PillVariant = keyof typeof pillVariants.variant;
355
+
356
+ declare const pillVariants: {
357
+ readonly variant: {
358
+ readonly green: "bg-success-50 text-success-500";
359
+ readonly grey: "bg-neutral-100 text-body-200";
360
+ readonly blue: "bg-info-50 text-info-500";
361
+ readonly gold: "bg-warning-50 text-warning-500";
362
+ readonly pinkLight: "bg-brand-pink-50 text-body-100";
363
+ readonly base: "bg-neutral-400 text-body-300";
364
+ readonly brand: "bg-brand-green-500 text-body-black-solid-constant";
365
+ readonly brandLight: "bg-brand-green-50 text-body-black-solid-constant";
366
+ readonly beta: "bg-brand-pink-500 text-body-black-solid-constant";
367
+ readonly error: "bg-error-500 text-error-50";
368
+ };
369
+ };
370
+
371
+ export declare const PlusIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
372
+ className?: string;
373
+ } & React_2.RefAttributes<SVGSVGElement>>;
374
+
375
+ export declare const ProgressBar: React_2.ForwardRefExoticComponent<ProgressBarProps & React_2.RefAttributes<HTMLDivElement>>;
376
+
377
+ export declare interface ProgressBarProps extends Omit<React_2.HTMLAttributes<HTMLDivElement>, "title"> {
378
+ /** Current progress value (0-100) */
379
+ value: number;
380
+ /** Size variant - "default" (12px track) or "small" (6px track) */
381
+ size?: ProgressBarSize;
382
+ /** Color variant - "default" uses color-coded progress, "generic" always green */
383
+ variant?: ProgressBarVariant;
384
+ /** Title content shown at top left */
385
+ title?: React_2.ReactNode;
386
+ /** Show the completion percentage at top */
387
+ showCompletion?: boolean;
388
+ /** Steps label shown at top right (e.g. "2/8 steps") */
389
+ stepsLabel?: React_2.ReactNode;
390
+ /** Helper content at bottom left */
391
+ helperLeft?: React_2.ReactNode;
392
+ /** Helper content at bottom right */
393
+ helperRight?: React_2.ReactNode;
394
+ /** Icon shown at bottom left before helper text */
395
+ leftIcon?: React_2.ReactNode;
396
+ /** Accessible label for the progress bar (defaults to "Progress"). Use this for i18n. */
397
+ ariaLabel?: string;
398
+ }
399
+
400
+ export declare type ProgressBarSize = "default" | "small";
401
+
402
+ export declare type ProgressBarVariant = "default" | "generic";
403
+
404
+ export declare const Radio: React_2.ForwardRefExoticComponent<RadioProps & React_2.RefAttributes<HTMLButtonElement>>;
405
+
406
+ export declare const RadioGroup: React_2.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
407
+
408
+ export declare type RadioGroupProps = React_2.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>;
409
+
410
+ export declare interface RadioProps extends Omit<React_2.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>, "asChild"> {
411
+ /** Size variant of the radio button */
412
+ size?: "default" | "small";
413
+ /** Label text for the radio button */
414
+ label?: string;
415
+ /** Optional helper text displayed below the label */
416
+ helperText?: string;
417
+ }
418
+
419
+ export declare const Slider: React_2.ForwardRefExoticComponent<SliderProps & React_2.RefAttributes<HTMLSpanElement>>;
420
+
421
+ export declare type SliderLabelPosition = "top" | "left";
422
+
423
+ export declare interface SliderProps extends Omit<React_2.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>, "asChild" | "children"> {
424
+ /** Label text displayed alongside the slider */
425
+ label?: string;
426
+ /** Position of the label relative to the slider track */
427
+ labelPosition?: SliderLabelPosition;
428
+ /** Text shown at the minimum end of the track */
429
+ minLabel?: string;
430
+ /** Text shown at the maximum end of the track */
431
+ maxLabel?: string;
432
+ /** Whether to show a tooltip with the current value above the thumb */
433
+ showTooltip?: boolean;
434
+ /** Override the displayed tooltip value (e.g. for formatting) */
435
+ formatTooltip?: (value: number) => string;
436
+ }
437
+
438
+ export declare const Snackbar: React_2.ForwardRefExoticComponent<SnackbarProps & React_2.RefAttributes<HTMLDivElement>>;
439
+
440
+ export declare interface SnackbarProps extends Omit<React_2.HTMLAttributes<HTMLDivElement>, "title"> {
441
+ /** Snackbar layout variant */
442
+ variant?: SnackbarVariant;
443
+ /** Left icon element */
444
+ icon?: React_2.ReactNode;
445
+ /** Title text */
446
+ title?: React_2.ReactNode;
447
+ /** Description text */
448
+ description?: React_2.ReactNode;
449
+ /** Whether to show the actions section */
450
+ showActions?: boolean;
451
+ /** Primary CTA label (renders a default Button) */
452
+ primaryLabel?: string;
453
+ /** Primary CTA click handler (used with primaryLabel) */
454
+ primaryOnClick?: () => void;
455
+ /** Custom element to render as primary CTA (overrides primaryLabel/primaryOnClick) */
456
+ primarySlot?: React_2.ReactNode;
457
+ /** Secondary CTA label (renders a default Button) */
458
+ secondaryLabel?: string;
459
+ /** Secondary CTA click handler (used with secondaryLabel) */
460
+ secondaryOnClick?: () => void;
461
+ /** Custom element to render as secondary CTA (overrides secondaryLabel/secondaryOnClick) */
462
+ secondarySlot?: React_2.ReactNode;
463
+ /** Show close button */
464
+ closable?: boolean;
465
+ /** Close button click handler */
466
+ onClose?: () => void;
467
+ }
468
+
469
+ export declare type SnackbarVariant = "default" | "vipEarn" | "welcome";
470
+
471
+ export declare const SpinnerIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
472
+ className?: string;
473
+ } & React_2.RefAttributes<SVGSVGElement>>;
474
+
475
+ export declare const Switch: React_2.ForwardRefExoticComponent<SwitchProps & React_2.RefAttributes<HTMLButtonElement>>;
476
+
477
+ export declare const SwitchField: React_2.ForwardRefExoticComponent<SwitchFieldProps & React_2.RefAttributes<HTMLButtonElement>>;
478
+
479
+ export declare type SwitchFieldOrientation = "right" | "left";
480
+
481
+ export declare interface SwitchFieldProps extends Omit<React_2.ComponentPropsWithoutRef<typeof Switch>, "size" | "className"> {
482
+ /** Position of the switch relative to the label */
483
+ orientation?: SwitchFieldOrientation;
484
+ /** Size variant of the switch and text */
485
+ size?: SwitchSize;
486
+ /** Label text displayed next to the switch */
487
+ label?: string;
488
+ /** Helper text displayed below the label */
489
+ helperText?: string;
490
+ /** Info tooltip text displayed on hover of the info icon */
491
+ infoText?: string;
492
+ /** Additional className for the wrapper */
493
+ className?: string;
494
+ }
495
+
496
+ export declare interface SwitchProps extends Omit<React_2.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root>, "asChild"> {
497
+ /** Size variant of the switch */
498
+ size?: SwitchSize;
499
+ }
500
+
501
+ export declare type SwitchSize = "default" | "small";
502
+
503
+ export declare const SwitchToggle: React_2.ForwardRefExoticComponent<SwitchToggleProps & React_2.RefAttributes<HTMLDivElement>>;
504
+
505
+ export declare interface SwitchToggleOption {
506
+ /** Display label for the option */
507
+ label: string;
508
+ /** Value identifier for the option */
509
+ value: string;
510
+ }
511
+
512
+ export declare interface SwitchToggleProps extends Omit<React_2.HTMLAttributes<HTMLDivElement>, "onChange"> {
513
+ /** Size variant */
514
+ size?: SwitchToggleSize;
515
+ /** The two options to toggle between */
516
+ options: [SwitchToggleOption, SwitchToggleOption];
517
+ /** Currently selected value */
518
+ value?: string;
519
+ /** Default selected value (uncontrolled) */
520
+ defaultValue?: string;
521
+ /** Callback when the selected value changes */
522
+ onChange?: (value: string) => void;
523
+ /** Whether the toggle is disabled */
524
+ disabled?: boolean;
525
+ }
526
+
527
+ export declare type SwitchToggleSize = "24" | "32" | "40";
528
+
529
+ export declare const Tabs: React_2.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React_2.RefAttributes<HTMLDivElement>>;
530
+
531
+ export declare const TabsContent: React_2.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
532
+
533
+ export declare type TabsContentProps = React_2.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>;
534
+
535
+ export declare const TabsList: React_2.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
536
+
537
+ export declare type TabsListProps = React_2.ComponentPropsWithoutRef<typeof TabsPrimitive.List>;
538
+
539
+ export declare type TabsProps = React_2.ComponentPropsWithoutRef<typeof TabsPrimitive.Root>;
540
+
541
+ export declare const TabsTrigger: React_2.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
542
+
543
+ export declare type TabsTriggerProps = React_2.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>;
544
+
545
+ export declare const Toast: React_2.ForwardRefExoticComponent<ToastProps & React_2.RefAttributes<HTMLLIElement>>;
546
+
547
+ export declare interface ToastProps extends Omit<Omit<React_2.ComponentPropsWithoutRef<typeof ToastPrimitive.Root>, "type">, "title"> {
548
+ /** Variant of the toast */
549
+ variant?: ToastVariant;
550
+ /** Toast title */
551
+ title?: string;
552
+ /** Toast description/message */
553
+ description?: React_2.ReactNode;
554
+ /** Action button label */
555
+ actionLabel?: string;
556
+ /** Action button click handler */
557
+ onActionClick?: () => void;
558
+ /** Show close button */
559
+ showClose?: boolean;
560
+ /** Avatar image source */
561
+ avatarSrc?: string;
562
+ /** Avatar alt text */
563
+ avatarAlt?: string;
564
+ /** Avatar fallback text */
565
+ avatarFallback?: string;
566
+ }
567
+
568
+ export declare const ToastProvider: React_2.FC<ToastProviderProps>;
569
+
570
+ export declare interface ToastProviderProps extends ToastPrimitive.ToastProviderProps {
571
+ }
572
+
573
+ export declare type ToastVariant = keyof typeof toastVariants;
574
+
575
+ declare enum toastVariants {
576
+ info = "info",
577
+ warning = "warning",
578
+ success = "success",
579
+ error = "error",
580
+ messageToast = "messageToast"
581
+ }
582
+
583
+ export declare const ToastViewport: React_2.ForwardRefExoticComponent<ToastViewportProps & React_2.RefAttributes<HTMLOListElement>>;
584
+
585
+ export declare interface ToastViewportProps extends React_2.ComponentPropsWithoutRef<typeof ToastPrimitive.Viewport> {
586
+ }
587
+
588
+ /** VIP badge icon with metallic gradient background and crown symbol */
589
+ export declare const VipBadgeIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
590
+ className?: string;
591
+ } & React_2.RefAttributes<SVGSVGElement>>;
592
+
593
+ export declare const WarningTriangleIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
594
+ className?: string;
595
+ } & React_2.RefAttributes<SVGSVGElement>>;
596
+
597
+ export { }
598
+
599
+
600
+ declare module "vitest" {
601
+ interface Assertion<T> {
602
+ toHaveNoViolations(): T;
603
+ }
604
+ }