@fanvue/ui 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/cjs/components/Alert/Alert.cjs +4 -4
  2. package/dist/cjs/components/Alert/Alert.cjs.map +1 -1
  3. package/dist/cjs/components/Avatar/Avatar.cjs.map +1 -1
  4. package/dist/cjs/components/Badge/Badge.cjs.map +1 -1
  5. package/dist/cjs/components/Button/Button.cjs +9 -9
  6. package/dist/cjs/components/Button/Button.cjs.map +1 -1
  7. package/dist/cjs/components/Checkbox/Checkbox.cjs +6 -7
  8. package/dist/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  9. package/dist/cjs/components/Chip/Chip.cjs +2 -2
  10. package/dist/cjs/components/Chip/Chip.cjs.map +1 -1
  11. package/dist/cjs/components/Count/Count.cjs.map +1 -1
  12. package/dist/cjs/components/DatePicker/DatePicker.cjs +30 -7
  13. package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
  14. package/dist/cjs/components/Divider/Divider.cjs.map +1 -1
  15. package/dist/cjs/components/IconButton/IconButton.cjs +10 -10
  16. package/dist/cjs/components/IconButton/IconButton.cjs.map +1 -1
  17. package/dist/cjs/components/Icons/ArrowRightIcon.cjs.map +1 -1
  18. package/dist/cjs/components/Icons/ArrowUpRightIcon.cjs.map +1 -1
  19. package/dist/cjs/components/Icons/CheckCircleIcon.cjs.map +1 -1
  20. package/dist/cjs/components/Icons/ChevronLeftIcon.cjs.map +1 -1
  21. package/dist/cjs/components/Icons/ChevronRightIcon.cjs.map +1 -1
  22. package/dist/cjs/components/Icons/CloseIcon.cjs.map +1 -1
  23. package/dist/cjs/components/Icons/CrossIcon.cjs.map +1 -1
  24. package/dist/cjs/components/Icons/CrownIcon.cjs.map +1 -1
  25. package/dist/cjs/components/Icons/ErrorCircleIcon.cjs.map +1 -1
  26. package/dist/cjs/components/Icons/ErrorIcon.cjs.map +1 -1
  27. package/dist/cjs/components/Icons/EyeIcon.cjs.map +1 -1
  28. package/dist/cjs/components/Icons/FireIcon.cjs.map +1 -1
  29. package/dist/cjs/components/Icons/HomeIcon.cjs.map +1 -1
  30. package/dist/cjs/components/Icons/InfoCircleIcon.cjs.map +1 -1
  31. package/dist/cjs/components/Icons/InfoIcon.cjs.map +1 -1
  32. package/dist/cjs/components/Icons/MicrophoneIcon.cjs.map +1 -1
  33. package/dist/cjs/components/Icons/PlusIcon.cjs.map +1 -1
  34. package/dist/cjs/components/Icons/SpinnerIcon.cjs.map +1 -1
  35. package/dist/cjs/components/Icons/StopIcon.cjs.map +1 -1
  36. package/dist/cjs/components/Icons/SuccessIcon.cjs.map +1 -1
  37. package/dist/cjs/components/Icons/WarningIcon.cjs.map +1 -1
  38. package/dist/cjs/components/Icons/WarningTriangleIcon.cjs.map +1 -1
  39. package/dist/cjs/components/Logo/Logo.cjs +11 -11
  40. package/dist/cjs/components/Logo/Logo.cjs.map +1 -1
  41. package/dist/cjs/components/Pagination/Pagination.cjs +3 -3
  42. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
  43. package/dist/cjs/components/Pill/Pill.cjs.map +1 -1
  44. package/dist/cjs/components/ProgressBar/ProgressBar.cjs.map +1 -1
  45. package/dist/cjs/components/Radio/Radio.cjs +1 -1
  46. package/dist/cjs/components/Radio/Radio.cjs.map +1 -1
  47. package/dist/cjs/components/RadioGroup/RadioGroup.cjs.map +1 -1
  48. package/dist/cjs/components/Slider/Slider.cjs.map +1 -1
  49. package/dist/cjs/components/Slider/SliderThumb.cjs +1 -0
  50. package/dist/cjs/components/Slider/SliderThumb.cjs.map +1 -1
  51. package/dist/cjs/components/Snackbar/Snackbar.cjs.map +1 -1
  52. package/dist/cjs/components/Switch/Switch.cjs +1 -0
  53. package/dist/cjs/components/Switch/Switch.cjs.map +1 -1
  54. package/dist/cjs/components/SwitchField/SwitchField.cjs.map +1 -1
  55. package/dist/cjs/components/SwitchToggle/SwitchToggle.cjs +48 -31
  56. package/dist/cjs/components/SwitchToggle/SwitchToggle.cjs.map +1 -1
  57. package/dist/cjs/components/Tabs/Tabs.cjs.map +1 -1
  58. package/dist/cjs/components/Tabs/TabsContent.cjs.map +1 -1
  59. package/dist/cjs/components/Tabs/TabsList.cjs.map +1 -1
  60. package/dist/cjs/components/Tabs/TabsTrigger.cjs +2 -0
  61. package/dist/cjs/components/Tabs/TabsTrigger.cjs.map +1 -1
  62. package/dist/cjs/components/TextField/TextField.cjs +1 -1
  63. package/dist/cjs/components/TextField/TextField.cjs.map +1 -1
  64. package/dist/cjs/components/Toast/Toast.cjs +1 -1
  65. package/dist/cjs/components/Toast/Toast.cjs.map +1 -1
  66. package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  67. package/dist/components/Alert/Alert.mjs +4 -4
  68. package/dist/components/Alert/Alert.mjs.map +1 -1
  69. package/dist/components/Avatar/Avatar.mjs.map +1 -1
  70. package/dist/components/Badge/Badge.mjs.map +1 -1
  71. package/dist/components/Button/Button.mjs +9 -9
  72. package/dist/components/Button/Button.mjs.map +1 -1
  73. package/dist/components/Checkbox/Checkbox.mjs +6 -7
  74. package/dist/components/Checkbox/Checkbox.mjs.map +1 -1
  75. package/dist/components/Chip/Chip.mjs +2 -2
  76. package/dist/components/Chip/Chip.mjs.map +1 -1
  77. package/dist/components/Count/Count.mjs.map +1 -1
  78. package/dist/components/DatePicker/DatePicker.mjs +30 -7
  79. package/dist/components/DatePicker/DatePicker.mjs.map +1 -1
  80. package/dist/components/Divider/Divider.mjs.map +1 -1
  81. package/dist/components/IconButton/IconButton.mjs +10 -10
  82. package/dist/components/IconButton/IconButton.mjs.map +1 -1
  83. package/dist/components/Icons/ArrowRightIcon.mjs.map +1 -1
  84. package/dist/components/Icons/ArrowUpRightIcon.mjs.map +1 -1
  85. package/dist/components/Icons/CheckCircleIcon.mjs.map +1 -1
  86. package/dist/components/Icons/ChevronLeftIcon.mjs.map +1 -1
  87. package/dist/components/Icons/ChevronRightIcon.mjs.map +1 -1
  88. package/dist/components/Icons/CloseIcon.mjs.map +1 -1
  89. package/dist/components/Icons/CrossIcon.mjs.map +1 -1
  90. package/dist/components/Icons/CrownIcon.mjs.map +1 -1
  91. package/dist/components/Icons/ErrorCircleIcon.mjs.map +1 -1
  92. package/dist/components/Icons/ErrorIcon.mjs.map +1 -1
  93. package/dist/components/Icons/EyeIcon.mjs.map +1 -1
  94. package/dist/components/Icons/FireIcon.mjs.map +1 -1
  95. package/dist/components/Icons/HomeIcon.mjs.map +1 -1
  96. package/dist/components/Icons/InfoCircleIcon.mjs.map +1 -1
  97. package/dist/components/Icons/InfoIcon.mjs.map +1 -1
  98. package/dist/components/Icons/MicrophoneIcon.mjs.map +1 -1
  99. package/dist/components/Icons/PlusIcon.mjs.map +1 -1
  100. package/dist/components/Icons/SpinnerIcon.mjs.map +1 -1
  101. package/dist/components/Icons/StopIcon.mjs.map +1 -1
  102. package/dist/components/Icons/SuccessIcon.mjs.map +1 -1
  103. package/dist/components/Icons/WarningIcon.mjs.map +1 -1
  104. package/dist/components/Icons/WarningTriangleIcon.mjs.map +1 -1
  105. package/dist/components/Logo/Logo.mjs +11 -11
  106. package/dist/components/Logo/Logo.mjs.map +1 -1
  107. package/dist/components/Pagination/Pagination.mjs +3 -3
  108. package/dist/components/Pagination/Pagination.mjs.map +1 -1
  109. package/dist/components/Pill/Pill.mjs.map +1 -1
  110. package/dist/components/ProgressBar/ProgressBar.mjs.map +1 -1
  111. package/dist/components/Radio/Radio.mjs +1 -1
  112. package/dist/components/Radio/Radio.mjs.map +1 -1
  113. package/dist/components/RadioGroup/RadioGroup.mjs.map +1 -1
  114. package/dist/components/Slider/Slider.mjs.map +1 -1
  115. package/dist/components/Slider/SliderThumb.mjs +1 -0
  116. package/dist/components/Slider/SliderThumb.mjs.map +1 -1
  117. package/dist/components/Snackbar/Snackbar.mjs.map +1 -1
  118. package/dist/components/Switch/Switch.mjs +1 -0
  119. package/dist/components/Switch/Switch.mjs.map +1 -1
  120. package/dist/components/SwitchField/SwitchField.mjs.map +1 -1
  121. package/dist/components/SwitchToggle/SwitchToggle.mjs +48 -31
  122. package/dist/components/SwitchToggle/SwitchToggle.mjs.map +1 -1
  123. package/dist/components/Tabs/Tabs.mjs.map +1 -1
  124. package/dist/components/Tabs/TabsContent.mjs.map +1 -1
  125. package/dist/components/Tabs/TabsList.mjs.map +1 -1
  126. package/dist/components/Tabs/TabsTrigger.mjs +2 -0
  127. package/dist/components/Tabs/TabsTrigger.mjs.map +1 -1
  128. package/dist/components/TextField/TextField.mjs +1 -1
  129. package/dist/components/TextField/TextField.mjs.map +1 -1
  130. package/dist/components/Toast/Toast.mjs +1 -1
  131. package/dist/components/Toast/Toast.mjs.map +1 -1
  132. package/dist/components/Tooltip/Tooltip.mjs.map +1 -1
  133. package/dist/index.d.ts +521 -142
  134. package/dist/styles/theme.css +6 -0
  135. package/package.json +2 -2
package/dist/index.d.ts CHANGED
@@ -15,133 +15,204 @@ import * as TabsPrimitive from '@radix-ui/react-tabs';
15
15
  import * as ToastPrimitive from '@radix-ui/react-toast';
16
16
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
17
17
 
18
+ /**
19
+ * Displays a contextual feedback message to the user.
20
+ *
21
+ * Supports `info`, `success`, `warning`, and `error` variants with an optional
22
+ * icon, title, description, and dismiss button.
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * <Alert variant="success" title="Saved" closable onClose={handleClose}>
27
+ * Your changes have been saved.
28
+ * </Alert>
29
+ * ```
30
+ */
18
31
  export declare const Alert: React_2.ForwardRefExoticComponent<AlertProps & React_2.RefAttributes<HTMLDivElement>>;
19
32
 
20
33
  export declare interface AlertProps extends React_2.HTMLAttributes<HTMLDivElement> {
21
- /** Visual style variant of the alert (matches Figma "Variant" property) */
34
+ /** Visual style variant of the alert. @default "info" */
22
35
  variant?: AlertVariant;
23
- /** Optional title text (bold) */
36
+ /** Optional title text displayed in bold above the description. */
24
37
  title?: string;
25
- /** Left icon element */
38
+ /** Icon element displayed at the leading edge of the alert. */
26
39
  icon?: React_2.ReactNode;
27
- /** Show close button */
40
+ /** Whether to show the close button. @default false */
28
41
  closable?: boolean;
29
- /** Callback when close button is clicked */
42
+ /** Callback fired when the close button is clicked. */
30
43
  onClose?: () => void;
31
44
  /** Accessible label for the close button. @default "Close alert" */
32
45
  closeLabel?: string;
33
46
  }
34
47
 
48
+ /** Visual style variant of the alert. */
35
49
  export declare type AlertVariant = "info" | "success" | "warning" | "error";
36
50
 
51
+ /** A right-pointing arrow icon (20 × 20). */
37
52
  export declare const ArrowRightIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
38
53
  className?: string;
39
54
  } & React_2.RefAttributes<SVGSVGElement>>;
40
55
 
56
+ /** A diagonal up-right arrow icon, commonly used for external links (20 × 20). */
41
57
  export declare const ArrowUpRightIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
42
58
  className?: string;
43
59
  } & React_2.RefAttributes<SVGSVGElement>>;
44
60
 
61
+ /**
62
+ * Displays a user avatar with optional online indicator, platinum border, and
63
+ * NSFW blur. Pass `src` and `fallback` for the simple API, or compose your own
64
+ * layout with `AvatarRoot`, `AvatarImage`, and `AvatarFallback` as children.
65
+ *
66
+ * @example
67
+ * ```tsx
68
+ * <Avatar src="/photo.jpg" alt="Jane Doe" fallback="JD" size={48} />
69
+ * ```
70
+ */
45
71
  export declare const Avatar: React_2.ForwardRefExoticComponent<AvatarProps & React_2.RefAttributes<HTMLSpanElement>>;
46
72
 
73
+ /** Renders fallback content (e.g. initials or an icon) when the avatar image has not loaded. */
47
74
  export declare const AvatarFallback: React_2.ForwardRefExoticComponent<AvatarFallbackProps & React_2.RefAttributes<HTMLSpanElement>>;
48
75
 
76
+ /** Props for the {@link AvatarFallback} compound component. */
49
77
  export declare interface AvatarFallbackProps extends React_2.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback> {
50
78
  }
51
79
 
80
+ /** Renders the avatar image. Automatically applies the NSFW blur when enabled on the parent `AvatarRoot`. */
52
81
  export declare const AvatarImage: React_2.ForwardRefExoticComponent<AvatarImageProps & React_2.RefAttributes<HTMLImageElement>>;
53
82
 
83
+ /** Props for the {@link AvatarImage} compound component. */
54
84
  export declare interface AvatarImageProps extends React_2.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image> {
55
85
  }
56
86
 
57
87
  export declare interface AvatarProps extends React_2.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>, AvatarStyleProps {
58
- /** URL of the avatar image */
88
+ /** URL of the avatar image. */
59
89
  src?: string;
60
- /** Alt text for the avatar image */
90
+ /** Alt text for the avatar image. @default "Avatar" */
61
91
  alt?: string;
62
- /** Fallback content (initials, icon, etc.) */
92
+ /** Fallback content rendered when the image has not loaded (e.g. initials or an icon). */
63
93
  fallback?: React_2.ReactNode;
64
94
  }
65
95
 
96
+ /**
97
+ * Low-level avatar root for custom compositions. Provides size context to
98
+ * child `AvatarImage` and `AvatarFallback` components.
99
+ *
100
+ * Prefer the higher-level {@link Avatar} component for most use cases.
101
+ */
66
102
  export declare const AvatarRoot: React_2.ForwardRefExoticComponent<AvatarRootProps & React_2.RefAttributes<HTMLSpanElement>>;
67
103
 
104
+ /** Props for the low-level {@link AvatarRoot} compound component. */
68
105
  export declare interface AvatarRootProps extends React_2.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>, AvatarStyleProps {
69
106
  }
70
107
 
108
+ /** Allowed pixel sizes for the avatar. */
71
109
  export declare type AvatarSize = 16 | 24 | 32 | 40 | 48 | 64 | 88 | 148;
72
110
 
73
- /** Shared avatar styling props */
111
+ /** Shared avatar styling props. */
74
112
  declare interface AvatarStyleProps {
75
- /** Size variant of the avatar (matches Figma "Size" property) */
113
+ /** Pixel size of the avatar. @default 40 */
76
114
  size?: AvatarSize;
77
- /** Show online status indicator */
115
+ /** Whether to show the online-status indicator dot. @default false */
78
116
  onlineIndicator?: boolean;
79
- /** Show platinum gradient border (matches Figma "Platinum show" property) */
117
+ /** Whether to show the platinum gradient border ring. @default false */
80
118
  platinumShow?: boolean;
81
- /** Show NSFW blur filter (matches Figma "NSFW show" property) */
119
+ /** Whether to apply the NSFW blur filter over the image. @default false */
82
120
  NSFWShow?: boolean;
83
121
  }
84
122
 
123
+ /**
124
+ * A small inline label for status, category, or metadata information.
125
+ *
126
+ * @example
127
+ * ```tsx
128
+ * <Badge variant="success">Active</Badge>
129
+ * ```
130
+ */
85
131
  export declare const Badge: React_2.ForwardRefExoticComponent<BadgeProps & React_2.RefAttributes<HTMLSpanElement>>;
86
132
 
87
133
  export declare interface BadgeProps extends React_2.HTMLAttributes<HTMLSpanElement> {
88
- /** Visual style variant of the badge */
134
+ /** Visual style variant of the badge. @default "default" */
89
135
  variant?: BadgeVariant;
90
- /** Show left status indicator dot */
136
+ /** Whether to show a coloured status dot at the leading edge. @default true */
91
137
  leftDot?: boolean;
92
- /** Left icon element */
138
+ /** Icon element displayed before the label. */
93
139
  leftIcon?: React_2.ReactNode;
94
- /** Right icon element */
140
+ /** Icon element displayed after the label. */
95
141
  rightIcon?: React_2.ReactNode;
96
- /** Render as a different element using Radix Slot */
142
+ /** Merge props onto a child element instead of rendering a `<span>`. @default false */
97
143
  asChild?: boolean;
98
144
  }
99
145
 
146
+ /** Visual style variant of the badge. */
100
147
  export declare type BadgeVariant = "default" | "dark" | "success" | "warning" | "error" | "special" | "info" | "online" | "brand" | "pink" | "brandLight" | "pinkLight";
101
148
 
149
+ /**
150
+ * A versatile button component with multiple visual variants, sizes, icon
151
+ * slots, loading state, and optional pricing display.
152
+ *
153
+ * @example
154
+ * ```tsx
155
+ * <Button variant="brand" size="40" leftIcon={<StarIcon />}>
156
+ * Subscribe
157
+ * </Button>
158
+ * ```
159
+ */
102
160
  export declare const Button: React_2.ForwardRefExoticComponent<ButtonProps & React_2.RefAttributes<HTMLButtonElement>>;
103
161
 
104
162
  export declare interface ButtonProps extends React_2.ButtonHTMLAttributes<HTMLButtonElement> {
105
- /** Visual style variant of the button */
163
+ /** Visual style variant of the button. @default "primary" */
106
164
  variant?: ButtonVariant;
107
- /** Size of the button in pixels */
165
+ /** Height of the button in pixels. @default "48" */
108
166
  size?: ButtonSize;
109
- /** Left icon element */
167
+ /** Icon element displayed before the label. */
110
168
  leftIcon?: React_2.ReactNode;
111
- /** Right icon element */
169
+ /** Icon element displayed after the label. */
112
170
  rightIcon?: React_2.ReactNode;
113
- /** Show loading spinner */
171
+ /** When `true`, replaces the label with a spinner and disables interaction. @default false */
114
172
  loading?: boolean;
115
- /** Render as a different element using Radix Slot */
173
+ /** Merge props onto a child element instead of rendering a `<button>`. @default false */
116
174
  asChild?: boolean;
117
- /** Old price shown with strikethrough before the current price */
175
+ /** Old price shown with a strikethrough before the current price. */
118
176
  discount?: string;
119
- /** Current price shown inside the button after the label/icons */
177
+ /** Current price shown inside the button after the label and icons. */
120
178
  price?: string;
121
179
  }
122
180
 
181
+ /** Button height in pixels. */
123
182
  export declare type ButtonSize = "48" | "40" | "32" | "24";
124
183
 
184
+ /** Visual style variant of the button. */
125
185
  export declare type ButtonVariant = "primary" | "secondary" | "tertiary" | "link" | "brand" | "destructive" | "white" | "tertiaryDestructive" | "text";
126
186
 
127
187
  /**
128
- * The ref type is intentionally `HTMLInputElement` (not `HTMLButtonElement`) for form library
129
- * compatibility. Libraries like react-hook-form call `register()` which expects an `HTMLInputElement`
130
- * ref. A hidden `<input>` is synced to the Radix checkbox state via `useImperativeHandle`.
188
+ * A checkbox input with optional label and helper text. Supports checked,
189
+ * unchecked, and indeterminate states.
190
+ *
191
+ * The ref type is intentionally `HTMLInputElement` (not `HTMLButtonElement`) for
192
+ * form-library compatibility — libraries like react-hook-form call `register()`
193
+ * which expects an `HTMLInputElement` ref. A hidden `<input>` is synced to the
194
+ * Radix checkbox state via `useImperativeHandle`.
195
+ *
196
+ * @example
197
+ * ```tsx
198
+ * <Checkbox label="Accept terms" helperText="Required to continue" />
199
+ * ```
131
200
  */
132
201
  export declare const Checkbox: React_2.ForwardRefExoticComponent<CheckboxProps & React_2.RefAttributes<HTMLInputElement>>;
133
202
 
134
203
  export declare interface CheckboxProps extends Omit<React_2.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>, "asChild"> {
135
- /** Size variant for label and helper text */
204
+ /** Size variant that controls label and helper text typography. @default "default" */
136
205
  size?: CheckboxSize;
137
- /** Label text displayed next to the checkbox */
206
+ /** Label text displayed next to the checkbox. */
138
207
  label?: string;
139
- /** Helper text displayed below the label */
208
+ /** Descriptive text displayed below the label. */
140
209
  helperText?: string;
141
210
  }
142
211
 
212
+ /** Size variant controlling label and helper text typography. */
143
213
  export declare type CheckboxSize = "default" | "small";
144
214
 
215
+ /** A checkmark inside a filled circle icon (20 × 20). */
145
216
  export declare const CheckCircleIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
146
217
  className?: string;
147
218
  } & React_2.RefAttributes<SVGSVGElement>>;
@@ -151,173 +222,270 @@ export declare const CheckIcon: React_2.ForwardRefExoticComponent<React_2.SVGAtt
151
222
  className?: string;
152
223
  } & React_2.RefAttributes<SVGSVGElement>>;
153
224
 
225
+ /** A left-pointing chevron icon (20 × 20). */
154
226
  export declare const ChevronLeftIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
155
227
  className?: string;
156
228
  } & React_2.RefAttributes<SVGSVGElement>>;
157
229
 
230
+ /** A right-pointing chevron icon (20 × 20). */
158
231
  export declare const ChevronRightIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
159
232
  className?: string;
160
233
  } & React_2.RefAttributes<SVGSVGElement>>;
161
234
 
235
+ /**
236
+ * A compact element for filters, tags, or toggleable actions. When an `onClick`
237
+ * handler is provided, the chip renders as an interactive `<button>` with
238
+ * `aria-pressed` support.
239
+ *
240
+ * @example
241
+ * ```tsx
242
+ * <Chip selected onClick={toggle}>Music</Chip>
243
+ * ```
244
+ */
162
245
  export declare const Chip: React_2.ForwardRefExoticComponent<ChipProps & React_2.RefAttributes<HTMLButtonElement>>;
163
246
 
164
247
  export declare interface ChipProps extends React_2.HTMLAttributes<HTMLElement> {
165
- /** Visual shape variant of the chip */
248
+ /** Visual variant of the chip. @default "rounded" */
166
249
  variant?: ChipVariant;
167
- /** Size of the chip */
250
+ /** Height of the chip in pixels. @default "32" */
168
251
  size?: ChipSize;
169
- /** Whether the chip is in a selected state */
252
+ /** Whether the chip is in a selected (pressed) state. @default false */
170
253
  selected?: boolean;
171
- /** Whether the chip is disabled */
254
+ /** Whether the chip is disabled. @default false */
172
255
  disabled?: boolean;
173
- /** Show left status dot */
256
+ /** Whether to show a coloured status dot at the leading edge. @default false */
174
257
  leftDot?: boolean;
175
- /** Left icon element */
258
+ /** Icon element displayed before the label. */
176
259
  leftIcon?: React_2.ReactNode;
177
- /** Right icon element */
260
+ /** Icon element displayed after the label. */
178
261
  rightIcon?: React_2.ReactNode;
179
- /** Notification badge content (e.g., "99+"). Passed as a string for i18n support. */
262
+ /** Notification badge content (e.g. `"99+"`). Passed as a string for i18n support. */
180
263
  notificationLabel?: string;
181
- /** Click handler — when provided, the chip renders as a `<button>` for accessibility */
264
+ /** Click handler — when provided, the chip renders as a `<button>` for accessibility. */
182
265
  onClick?: React_2.MouseEventHandler<HTMLElement>;
183
- /** Render as a different element using Radix Slot */
266
+ /** Merge props onto a child element instead of rendering a wrapper. @default false */
184
267
  asChild?: boolean;
185
268
  }
186
269
 
270
+ /** Height of the chip in pixels. */
187
271
  export declare type ChipSize = "32" | "40";
188
272
 
273
+ /** Visual variant of the chip. */
189
274
  export declare type ChipVariant = "rounded" | "square" | "dark";
190
275
 
276
+ /** A close/dismiss "×" icon with rounded stroke ends (20 × 20). */
191
277
  export declare const CloseIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
192
278
  className?: string;
193
279
  } & React_2.RefAttributes<SVGSVGElement>>;
194
280
 
195
281
  export declare function cn(...inputs: ClassValue[]): string;
196
282
 
283
+ /**
284
+ * A numeric badge typically used for notification counts. Automatically
285
+ * truncates values above `max` (e.g. `"99+"`). Renders nothing when the
286
+ * value is `0` and no children are provided.
287
+ *
288
+ * @example
289
+ * ```tsx
290
+ * <Count value={5} variant="brand" />
291
+ * ```
292
+ */
197
293
  export declare const Count: React_2.ForwardRefExoticComponent<CountProps & React_2.RefAttributes<HTMLSpanElement>>;
198
294
 
199
295
  export declare interface CountProps extends React_2.HTMLAttributes<HTMLSpanElement> {
200
- /** Visual style variant of the count */
296
+ /** Colour variant of the count badge. @default "default" */
201
297
  variant?: CountVariant;
202
- /** The count value to display */
298
+ /** Numeric value to display. Renders nothing when `0` and no `children` are provided. @default 0 */
203
299
  value?: number;
204
- /** Maximum value to display before showing overflow (e.g., "99+") */
300
+ /** Maximum value before showing overflow (e.g. `"99+"`). @default 99 */
205
301
  max?: number;
206
- /** Render as a different element using Radix Slot */
302
+ /** Merge props onto a child element instead of rendering a `<span>`. @default false */
207
303
  asChild?: boolean;
208
304
  }
209
305
 
306
+ /** Colour variant for the count badge. */
210
307
  export declare type CountVariant = "default" | "brand" | "pink" | "info" | "success" | "warning";
211
308
 
309
+ /** A compact "×" cross icon (20 × 20). */
212
310
  export declare const CrossIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
213
311
  className?: string;
214
312
  } & React_2.RefAttributes<SVGSVGElement>>;
215
313
 
314
+ /** A crown icon used for premium/VIP indicators (20 × 20). */
216
315
  export declare const CrownIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
217
316
  className?: string;
218
317
  } & React_2.RefAttributes<SVGSVGElement>>;
219
318
 
319
+ /**
320
+ * A calendar date picker supporting single-date and date-range selection with
321
+ * optional side-by-side month display and footer action buttons.
322
+ *
323
+ * Built on top of [react-day-picker](https://react-day-picker.js.org/) — all
324
+ * `DayPickerProps` (except `numberOfMonths`) are forwarded.
325
+ *
326
+ * @example
327
+ * ```tsx
328
+ * <DatePicker
329
+ * mode="range"
330
+ * type="double"
331
+ * selected={range}
332
+ * onSelect={setRange}
333
+ * onApply={save}
334
+ * onCancel={close}
335
+ * />
336
+ * ```
337
+ */
220
338
  export declare const DatePicker: ForwardRefExoticComponent<DatePickerProps & RefAttributes<HTMLDivElement>>;
221
339
 
340
+ /** Props specific to the DatePicker wrapper (not inherited from react-day-picker). */
222
341
  export declare interface DatePickerOwnProps {
223
342
  /** Display one month or two side-by-side. @default "single" */
224
- type?: DatePickerType;
225
- /** Called when the Apply button is clicked. */
343
+ variant?: DatePickerVariant;
344
+ /** Callback fired when the Apply button is clicked. */
226
345
  onApply?: () => void;
227
- /** Called when the Cancel button is clicked. */
346
+ /** Callback fired when the Cancel button is clicked. */
228
347
  onCancel?: () => void;
229
348
  /** Label for the cancel button. @default "Cancel" */
230
349
  cancelLabel?: string;
231
350
  /** Label for the apply button. @default "Apply" */
232
351
  applyLabel?: string;
233
- /** Whether to render cancel / apply footer buttons. @default true */
352
+ /** Whether to render the cancel / apply footer buttons. @default true */
234
353
  showFooter?: boolean;
235
- /** Additional className for the outer container. */
354
+ /** Additional CSS class name for the outer container. */
236
355
  className?: string;
237
356
  }
238
357
 
358
+ /** Combined props — own DatePicker options plus all react-day-picker props (except `numberOfMonths`). */
239
359
  export declare type DatePickerProps = DatePickerOwnProps & OmitDistributed<DayPickerProps, "numberOfMonths">;
240
360
 
241
- export declare type DatePickerType = "single" | "double";
361
+ /** Layout variant single or side-by-side month display. */
362
+ export declare type DatePickerVariant = "single" | "double";
242
363
 
243
364
  export { DateRange }
244
365
 
366
+ /**
367
+ * A horizontal separator used to divide content sections. Optionally displays a
368
+ * centred text label between two lines.
369
+ *
370
+ * @example
371
+ * ```tsx
372
+ * <Divider />
373
+ * <Divider label="or" />
374
+ * ```
375
+ */
245
376
  export declare const Divider: React_2.ForwardRefExoticComponent<DividerProps & React_2.RefAttributes<HTMLDivElement>>;
246
377
 
247
378
  export declare interface DividerProps extends React_2.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> {
248
- /** Custom label to display*/
379
+ /** Optional centred label text. When provided, the divider renders as two lines with the label between them. */
249
380
  label?: string;
250
381
  }
251
382
 
383
+ /** An "×" inside a filled circle icon for error states (20 × 20). */
252
384
  export declare const ErrorCircleIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
253
385
  className?: string;
254
386
  } & React_2.RefAttributes<SVGSVGElement>>;
255
387
 
388
+ /** An exclamation mark inside a filled circle icon for error/alert states (20 × 20). */
256
389
  export declare const ErrorIcon: default_2.ForwardRefExoticComponent<default_2.SVGAttributes<SVGSVGElement> & {
257
390
  className?: string;
258
391
  } & default_2.RefAttributes<SVGSVGElement>>;
259
392
 
393
+ /** An eye icon for visibility/show actions (20 × 20). */
260
394
  export declare const EyeIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
261
395
  className?: string;
262
396
  } & React_2.RefAttributes<SVGSVGElement>>;
263
397
 
398
+ /** A flame/fire icon for trending or popular content (20 × 20). */
264
399
  export declare const FireIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
265
400
  className?: string;
266
401
  } & React_2.RefAttributes<SVGSVGElement>>;
267
402
 
403
+ /** A house icon for home/dashboard navigation (20 × 20). */
268
404
  export declare const HomeIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
269
405
  className?: string;
270
406
  } & React_2.RefAttributes<SVGSVGElement>>;
271
407
 
408
+ /**
409
+ * A circular button containing only an icon. Use when an action can be
410
+ * represented by an icon alone (e.g. close, send, mic). Pair with an
411
+ * `aria-label` for accessibility.
412
+ *
413
+ * @example
414
+ * ```tsx
415
+ * <IconButton icon={<CloseIcon />} aria-label="Close" variant="tertiary" />
416
+ * ```
417
+ */
272
418
  export declare const IconButton: React_2.ForwardRefExoticComponent<IconButtonProps & React_2.RefAttributes<HTMLButtonElement>>;
273
419
 
274
420
  export declare interface IconButtonProps extends React_2.ButtonHTMLAttributes<HTMLButtonElement> {
275
- /** Visual style variant of the icon button */
421
+ /** Visual style variant of the icon button. @default "primary" */
276
422
  variant?: IconButtonVariant;
277
- /** Size of the button */
423
+ /** Size of the button in pixels. @default "40" */
278
424
  size?: IconButtonSize;
279
- /** Icon element to display */
425
+ /** Icon element to render inside the button. */
280
426
  icon: React_2.ReactNode;
281
- /** Counter value to display */
427
+ /** When provided, displays a {@link Count} badge at the top-right corner (tertiary & navTray variants only). */
282
428
  counterValue?: number;
283
429
  }
284
430
 
431
+ /** Icon button size in pixels. */
285
432
  export declare type IconButtonSize = "24" | "32" | "40" | "52" | "72";
286
433
 
434
+ /** Visual style variant of the icon button. */
287
435
  export declare type IconButtonVariant = "primary" | "secondary" | "tertiary" | "brand" | "contrast" | "messaging" | "navTray" | "tertiaryDestructive" | "stop" | "microphone";
288
436
 
289
- /** Icon component props. Override default size via className (e.g. className="size-6"). */
437
+ /**
438
+ * Shared props for all icon components. Extends standard SVG attributes.
439
+ *
440
+ * Each icon ships with a default size class (e.g. `size-5`). Override it via
441
+ * `className` (e.g. `className="size-6"`).
442
+ */
290
443
  export declare type IconProps = React_2.SVGAttributes<SVGSVGElement> & {
291
444
  className?: string;
292
445
  };
293
446
 
447
+ /** An "i" inside a filled circle icon for informational tooltips (20 × 20). */
294
448
  export declare const InfoCircleIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
295
449
  className?: string;
296
450
  } & React_2.RefAttributes<SVGSVGElement>>;
297
451
 
452
+ /** An info icon with exclamation-style "i" in a circle (20 × 20). */
298
453
  export declare const InfoIcon: default_2.ForwardRefExoticComponent<default_2.SVGAttributes<SVGSVGElement> & {
299
454
  className?: string;
300
455
  } & default_2.RefAttributes<SVGSVGElement>>;
301
456
 
457
+ /**
458
+ * The Fanvue brand logo. Supports full (icon + wordmark), icon-only, wordmark-only,
459
+ * and portrait (stacked) layouts with multiple colour schemes.
460
+ *
461
+ * @example
462
+ * ```tsx
463
+ * <Logo type="full" color="fullColour" />
464
+ * ```
465
+ */
302
466
  export declare const Logo: React_2.ForwardRefExoticComponent<LogoProps & React_2.RefAttributes<HTMLDivElement>>;
303
467
 
468
+ /** Colour scheme of the logo. */
304
469
  export declare type LogoColor = "fullColour" | "decolour" | "whiteAlways" | "blackAlways";
305
470
 
306
471
  export declare interface LogoProps extends React_2.HTMLAttributes<HTMLDivElement> {
307
- /** Logo layout type (matches Figma "Type" property) */
308
- type?: LogoType;
309
- /** Logo color scheme (matches Figma "Colour" property) */
472
+ /** Layout variant of the logo. @default "full" */
473
+ variant?: LogoVariant;
474
+ /** Colour scheme of the logo. @default "fullColour" */
310
475
  color?: LogoColor;
311
476
  /**
312
- * Accessible label for the logo.
313
- * Required when type="Icon" and used in interactive contexts (links, buttons).
314
- * @example "Fanvue home" or "Go to homepage"
477
+ * Accessible label for the logo. Required when `type` is `"icon"` and
478
+ * the logo is used inside interactive contexts (links, buttons).
479
+ *
480
+ * @example "Fanvue home"
315
481
  */
316
482
  "aria-label"?: string;
317
483
  }
318
484
 
319
- export declare type LogoType = "full" | "icon" | "wordmark" | "portrait";
485
+ /** Layout variant of the logo. */
486
+ export declare type LogoVariant = "full" | "icon" | "wordmark" | "portrait";
320
487
 
488
+ /** A microphone icon for audio recording actions (40 × 40). */
321
489
  export declare const MicrophoneIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
322
490
  className?: string;
323
491
  } & React_2.RefAttributes<SVGSVGElement>>;
@@ -342,309 +510,518 @@ export declare const MinusIcon: React_2.ForwardRefExoticComponent<React_2.SVGAtt
342
510
  */
343
511
  export declare type OmitDistributed<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
344
512
 
513
+ /**
514
+ * Page navigation control with previous/next buttons and numbered page
515
+ * indicators. Supports a numbered-buttons layout (`"default"`) and a compact
516
+ * dots layout (`"dots"`).
517
+ *
518
+ * @example
519
+ * ```tsx
520
+ * <Pagination totalPages={10} currentPage={page} onPageChange={setPage} />
521
+ * ```
522
+ */
345
523
  export declare const Pagination: React_2.ForwardRefExoticComponent<PaginationProps & React_2.RefAttributes<HTMLElement>>;
346
524
 
347
525
  export declare interface PaginationProps extends Omit<React_2.HTMLAttributes<HTMLElement>, "onChange"> {
348
- /** Visual style variant */
526
+ /** Display style numbered page buttons or minimal dots. @default "default" */
349
527
  variant?: PaginationVariant;
350
- /** Total number of pages */
528
+ /** Total number of pages. */
351
529
  totalPages: number;
352
- /** Current active page (1-indexed) */
530
+ /** Current active page (1-indexed). */
353
531
  currentPage: number;
354
- /** Called when the page changes */
532
+ /** Callback fired when the active page changes. Receives the new 1-indexed page number. */
355
533
  onPageChange?: (page: number) => void;
356
- /** Label for the nav landmark. @default "Pagination" */
534
+ /** Accessible label for the `<nav>` landmark. @default "Pagination" */
357
535
  ariaLabel?: string;
358
- /** Label for the previous button. @default "Previous page" */
536
+ /** Accessible label for the previous-page button. @default "Previous page" */
359
537
  previousLabel?: string;
360
- /** Label for the next button. @default "Next page" */
538
+ /** Accessible label for the next-page button. @default "Next page" */
361
539
  nextLabel?: string;
362
- /** Generates the aria-label for each page button. @default (page) => \`Page ${page}\` */
540
+ /** Function that returns an accessible label for each page button. @default (page) => \`Page ${page}\` */
363
541
  getPageLabel?: (page: number) => string;
364
542
  }
365
543
 
544
+ /** Pagination display style — numbered buttons or minimal dots. */
366
545
  export declare type PaginationVariant = "default" | "dots";
367
546
 
547
+ /**
548
+ * A small rounded label for categorisation, status, or tagging.
549
+ *
550
+ * @example
551
+ * ```tsx
552
+ * <Pill variant="brand">New</Pill>
553
+ * ```
554
+ */
368
555
  export declare const Pill: React_2.ForwardRefExoticComponent<PillProps & React_2.RefAttributes<HTMLSpanElement>>;
369
556
 
370
557
  export declare interface PillProps extends React_2.HTMLAttributes<HTMLSpanElement> {
371
- /** Visual style variant of the pill */
558
+ /** Colour variant of the pill. @default "green" */
372
559
  variant?: PillVariant;
373
- /** Left icon element */
560
+ /** Icon element displayed before the label. */
374
561
  leftIcon?: React_2.ReactNode;
375
- /** Right icon element */
562
+ /** Icon element displayed after the label. */
376
563
  rightIcon?: React_2.ReactNode;
377
- /** Render as a different element using Radix Slot */
564
+ /** Merge props onto a child element instead of rendering a `<span>`. @default false */
378
565
  asChild?: boolean;
379
566
  }
380
567
 
568
+ /** Colour variant of the pill. */
381
569
  export declare type PillVariant = "green" | "grey" | "blue" | "gold" | "pinkLight" | "base" | "brand" | "brandLight" | "beta" | "error";
382
570
 
571
+ /** A "+" plus icon for add/create actions (20 × 20). */
383
572
  export declare const PlusIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
384
573
  className?: string;
385
574
  } & React_2.RefAttributes<SVGSVGElement>>;
386
575
 
576
+ /**
577
+ * A horizontal progress indicator with optional title, completion percentage,
578
+ * step count, and helper text. The bar colour reflects progress when using the
579
+ * `"default"` variant.
580
+ *
581
+ * @example
582
+ * ```tsx
583
+ * <ProgressBar value={65} title="Upload" showCompletion />
584
+ * ```
585
+ */
387
586
  export declare const ProgressBar: React_2.ForwardRefExoticComponent<ProgressBarProps & React_2.RefAttributes<HTMLDivElement>>;
388
587
 
389
588
  export declare interface ProgressBarProps extends Omit<React_2.HTMLAttributes<HTMLDivElement>, "title"> {
390
- /** Current progress value (0-100) */
589
+ /** Current progress value, clamped to 0100. */
391
590
  value: number;
392
- /** Size variant - "default" (12px track) or "small" (6px track) */
591
+ /** Track height `"default"` (12px) or `"small"` (6px). @default "default" */
393
592
  size?: ProgressBarSize;
394
- /** Color variant - "default" uses color-coded progress, "generic" always green */
593
+ /** Colour mode `"default"` is colour-coded by value, `"generic"` always uses brand green. @default "default" */
395
594
  variant?: ProgressBarVariant;
396
- /** Title content shown at top left */
595
+ /** Title content shown at the top-left of the bar. */
397
596
  title?: React_2.ReactNode;
398
- /** Show the completion percentage at top */
597
+ /** Whether to display the completion percentage above the track. @default false */
399
598
  showCompletion?: boolean;
400
- /** Steps label shown at top right (e.g. "2/8 steps") */
599
+ /** Steps label shown at the top-right (e.g. `"2/8 steps"`). */
401
600
  stepsLabel?: React_2.ReactNode;
402
- /** Helper content at bottom left */
601
+ /** Helper content at the bottom-left of the bar. */
403
602
  helperLeft?: React_2.ReactNode;
404
- /** Helper content at bottom right */
603
+ /** Helper content at the bottom-right of the bar. */
405
604
  helperRight?: React_2.ReactNode;
406
- /** Icon shown at bottom left before helper text */
605
+ /** Icon shown at the bottom-left before the helper text. */
407
606
  leftIcon?: React_2.ReactNode;
408
- /** Accessible label for the progress bar (defaults to "Progress"). Use this for i18n. */
607
+ /** Accessible label for the `progressbar` role. @default "Progress" */
409
608
  ariaLabel?: string;
410
609
  }
411
610
 
611
+ /** Track height — `"default"` (12px) or `"small"` (6px). */
412
612
  export declare type ProgressBarSize = "default" | "small";
413
613
 
614
+ /** Colour mode — `"default"` uses red/yellow/green by value, `"generic"` always uses brand green. */
414
615
  export declare type ProgressBarVariant = "default" | "generic";
415
616
 
617
+ /**
618
+ * A single radio option within a {@link RadioGroup}. Includes an optional label
619
+ * and helper text.
620
+ *
621
+ * @example
622
+ * ```tsx
623
+ * <RadioGroup value={value} onValueChange={setValue}>
624
+ * <Radio value="a" label="Option A" />
625
+ * <Radio value="b" label="Option B" />
626
+ * </RadioGroup>
627
+ * ```
628
+ */
416
629
  export declare const Radio: React_2.ForwardRefExoticComponent<RadioProps & React_2.RefAttributes<HTMLButtonElement>>;
417
630
 
631
+ /**
632
+ * Groups {@link Radio} items into a single controlled or uncontrolled selection.
633
+ * Built on Radix UI `RadioGroup.Root`.
634
+ *
635
+ * @example
636
+ * ```tsx
637
+ * <RadioGroup value={value} onValueChange={setValue}>
638
+ * <Radio value="a" label="Option A" />
639
+ * <Radio value="b" label="Option B" />
640
+ * </RadioGroup>
641
+ * ```
642
+ */
418
643
  export declare const RadioGroup: React_2.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
419
644
 
645
+ /** Props for the {@link RadioGroup} component. Extends the Radix `RadioGroup.Root` props. */
420
646
  export declare type RadioGroupProps = React_2.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>;
421
647
 
422
648
  export declare interface RadioProps extends Omit<React_2.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>, "asChild"> {
423
- /** Size variant of the radio button */
649
+ /** Size variant controlling label and helper text typography. @default "default" */
424
650
  size?: "default" | "small";
425
- /** Label text for the radio button */
651
+ /** Label text displayed next to the radio button. */
426
652
  label?: string;
427
- /** Optional helper text displayed below the label */
653
+ /** Descriptive text displayed below the label. */
428
654
  helperText?: string;
429
655
  }
430
656
 
657
+ /**
658
+ * A range input for selecting one or more numeric values along a track.
659
+ * Supports single and multi-thumb modes, optional labels, and a value tooltip.
660
+ *
661
+ * Built on Radix UI `Slider`.
662
+ *
663
+ * @example
664
+ * ```tsx
665
+ * <Slider
666
+ * label="Volume"
667
+ * min={0}
668
+ * max={100}
669
+ * defaultValue={[50]}
670
+ * showTooltip
671
+ * />
672
+ * ```
673
+ */
431
674
  export declare const Slider: React_2.ForwardRefExoticComponent<SliderProps & React_2.RefAttributes<HTMLSpanElement>>;
432
675
 
676
+ /** Position of the slider label relative to the track. */
433
677
  export declare type SliderLabelPosition = "top" | "left";
434
678
 
435
679
  export declare interface SliderProps extends Omit<React_2.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>, "asChild" | "children"> {
436
- /** Label text displayed alongside the slider */
680
+ /** Label text displayed alongside the slider. */
437
681
  label?: string;
438
- /** Position of the label relative to the slider track */
682
+ /** Position of the label relative to the slider track. @default "top" */
439
683
  labelPosition?: SliderLabelPosition;
440
- /** Text shown at the minimum end of the track */
684
+ /** Text shown at the minimum end of the track. */
441
685
  minLabel?: string;
442
- /** Text shown at the maximum end of the track */
686
+ /** Text shown at the maximum end of the track. */
443
687
  maxLabel?: string;
444
- /** Whether to show a tooltip with the current value above the thumb */
688
+ /** Whether to show a tooltip with the current value above the thumb. @default false */
445
689
  showTooltip?: boolean;
446
- /** Override the displayed tooltip value (e.g. for formatting) */
690
+ /** Custom formatter for the tooltip value (e.g. to add units or format numbers). */
447
691
  formatTooltip?: (value: number) => string;
448
692
  }
449
693
 
694
+ /**
695
+ * A prominent inline message with optional title, description, action buttons,
696
+ * and close control. Supports three layout variants: `default`, `vipEarn`, and
697
+ * `welcome`.
698
+ *
699
+ * @example
700
+ * ```tsx
701
+ * <Snackbar
702
+ * variant="default"
703
+ * primaryLabel="Undo"
704
+ * primaryOnClick={undo}
705
+ * closable
706
+ * onClose={dismiss}
707
+ * >
708
+ * Item deleted
709
+ * </Snackbar>
710
+ * ```
711
+ */
450
712
  export declare const Snackbar: React_2.ForwardRefExoticComponent<SnackbarProps & React_2.RefAttributes<HTMLDivElement>>;
451
713
 
452
714
  export declare interface SnackbarProps extends Omit<React_2.HTMLAttributes<HTMLDivElement>, "title"> {
453
- /** Snackbar layout variant */
715
+ /** Layout variant of the snackbar. @default "default" */
454
716
  variant?: SnackbarVariant;
455
- /** Left icon element */
717
+ /** Icon element displayed at the leading edge (used by the `vipEarn` variant). */
456
718
  icon?: React_2.ReactNode;
457
- /** Title text */
719
+ /** Title content. */
458
720
  title?: React_2.ReactNode;
459
- /** Description text */
721
+ /** Descriptive body text. */
460
722
  description?: React_2.ReactNode;
461
- /** Whether to show the actions section */
723
+ /** Whether to show primary/secondary action buttons. @default true */
462
724
  showActions?: boolean;
463
- /** Primary CTA label (renders a default Button) */
725
+ /** Primary CTA label renders a default {@link Button}. */
464
726
  primaryLabel?: string;
465
- /** Primary CTA click handler (used with primaryLabel) */
727
+ /** Click handler for the primary CTA (used together with `primaryLabel`). */
466
728
  primaryOnClick?: () => void;
467
- /** Custom element to render as primary CTA (overrides primaryLabel/primaryOnClick) */
729
+ /** Custom element rendered as the primary CTA. Overrides `primaryLabel` / `primaryOnClick`. */
468
730
  primarySlot?: React_2.ReactNode;
469
- /** Secondary CTA label (renders a default Button) */
731
+ /** Secondary CTA label renders a default {@link Button}. */
470
732
  secondaryLabel?: string;
471
- /** Secondary CTA click handler (used with secondaryLabel) */
733
+ /** Click handler for the secondary CTA (used together with `secondaryLabel`). */
472
734
  secondaryOnClick?: () => void;
473
- /** Custom element to render as secondary CTA (overrides secondaryLabel/secondaryOnClick) */
735
+ /** Custom element rendered as the secondary CTA. Overrides `secondaryLabel` / `secondaryOnClick`. */
474
736
  secondarySlot?: React_2.ReactNode;
475
- /** Show close button */
737
+ /** Whether to show the close button. @default false */
476
738
  closable?: boolean;
477
- /** Close button click handler */
739
+ /** Callback fired when the close button is clicked. */
478
740
  onClose?: () => void;
479
741
  /** Accessible label for the close button. @default "Close snackbar" */
480
742
  closeLabel?: string;
481
743
  }
482
744
 
745
+ /** Layout variant of the snackbar. */
483
746
  export declare type SnackbarVariant = "default" | "vipEarn" | "welcome";
484
747
 
748
+ /** A circular spinner icon for loading states (20 × 20). Pair with a CSS `animate-spin` class. */
485
749
  export declare const SpinnerIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
486
750
  className?: string;
487
751
  } & React_2.RefAttributes<SVGSVGElement>>;
488
752
 
753
+ /** A filled-square stop icon for media/recording controls (40 × 40). */
489
754
  export declare const StopIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
490
755
  className?: string;
491
756
  } & React_2.RefAttributes<SVGSVGElement>>;
492
757
 
758
+ /** A checkmark inside a filled circle icon for success states (20 × 20). */
493
759
  export declare const SuccessIcon: default_2.ForwardRefExoticComponent<default_2.SVGAttributes<SVGSVGElement> & {
494
760
  className?: string;
495
761
  } & default_2.RefAttributes<SVGSVGElement>>;
496
762
 
763
+ /**
764
+ * A toggle switch for boolean on/off states. Built on Radix UI `Switch`.
765
+ *
766
+ * For a labelled switch with helper text, see {@link SwitchField}.
767
+ *
768
+ * @example
769
+ * ```tsx
770
+ * <Switch checked={on} onCheckedChange={setOn} />
771
+ * ```
772
+ */
497
773
  export declare const Switch: React_2.ForwardRefExoticComponent<SwitchProps & React_2.RefAttributes<HTMLButtonElement>>;
498
774
 
775
+ /**
776
+ * A labelled switch field with optional helper text and info tooltip. Composes
777
+ * the {@link Switch} component with a `<label>` and description.
778
+ *
779
+ * @example
780
+ * ```tsx
781
+ * <SwitchField
782
+ * label="Notifications"
783
+ * helperText="Receive push notifications"
784
+ * checked={enabled}
785
+ * onCheckedChange={setEnabled}
786
+ * />
787
+ * ```
788
+ */
499
789
  export declare const SwitchField: React_2.ForwardRefExoticComponent<SwitchFieldProps & React_2.RefAttributes<HTMLButtonElement>>;
500
790
 
791
+ /** Side on which the switch toggle is positioned relative to the label. */
501
792
  export declare type SwitchFieldOrientation = "right" | "left";
502
793
 
503
794
  export declare interface SwitchFieldProps extends Omit<React_2.ComponentPropsWithoutRef<typeof Switch>, "size" | "className"> {
504
- /** Position of the switch relative to the label */
795
+ /** Side on which the switch is placed relative to the label. @default "right" */
505
796
  orientation?: SwitchFieldOrientation;
506
- /** Size variant of the switch and text */
797
+ /** Size variant of the switch and accompanying text. @default "default" */
507
798
  size?: SwitchSize;
508
- /** Label text displayed next to the switch */
799
+ /** Label text displayed next to the switch. */
509
800
  label?: string;
510
- /** Helper text displayed below the label */
801
+ /** Descriptive text displayed below the label. */
511
802
  helperText?: string;
512
- /** Info tooltip text displayed on hover of the info icon */
803
+ /** Tooltip text shown when hovering the info icon next to the label. */
513
804
  infoText?: string;
514
805
  /** Accessible label for the info tooltip trigger button. Override for i18n.
515
806
  * @default "More information"
516
807
  */
517
808
  infoLabel?: string;
518
- /** Additional className for the wrapper */
809
+ /** Additional CSS class name for the outer wrapper. */
519
810
  className?: string;
520
811
  }
521
812
 
522
813
  export declare interface SwitchProps extends Omit<React_2.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root>, "asChild"> {
523
- /** Size variant of the switch */
814
+ /** Size variant of the switch. @default "default" */
524
815
  size?: SwitchSize;
525
816
  }
526
817
 
818
+ /** Size variant of the switch toggle. */
527
819
  export declare type SwitchSize = "default" | "small";
528
820
 
821
+ /**
822
+ * A binary segmented toggle rendered as a `radiogroup`. The active option is
823
+ * highlighted with a sliding pill indicator. Supports both controlled and
824
+ * uncontrolled usage.
825
+ *
826
+ * @example
827
+ * ```tsx
828
+ * <SwitchToggle
829
+ * options={[
830
+ * { label: "Monthly", value: "monthly" },
831
+ * { label: "Yearly", value: "yearly" },
832
+ * ]}
833
+ * value={billing}
834
+ * onChange={setBilling}
835
+ * />
836
+ * ```
837
+ */
529
838
  export declare const SwitchToggle: React_2.ForwardRefExoticComponent<SwitchToggleProps & React_2.RefAttributes<HTMLDivElement>>;
530
839
 
840
+ /** Describes one side of the binary toggle. */
531
841
  export declare interface SwitchToggleOption {
532
- /** Display label for the option */
842
+ /** Display label for the option. */
533
843
  label: string;
534
- /** Value identifier for the option */
844
+ /** Value identifier returned via `onChange`. */
535
845
  value: string;
536
846
  }
537
847
 
538
848
  export declare interface SwitchToggleProps extends Omit<React_2.HTMLAttributes<HTMLDivElement>, "onChange"> {
539
- /** Size variant */
849
+ /** Height of the toggle in pixels. @default "24" */
540
850
  size?: SwitchToggleSize;
541
- /** The two options to toggle between */
851
+ /** The two options to toggle between (exactly two required). */
542
852
  options: [SwitchToggleOption, SwitchToggleOption];
543
- /** Currently selected value */
853
+ /** Currently selected value (controlled). */
544
854
  value?: string;
545
- /** Default selected value (uncontrolled) */
855
+ /** Initially selected value (uncontrolled). */
546
856
  defaultValue?: string;
547
- /** Callback when the selected value changes */
857
+ /** Callback fired when the selected value changes. */
548
858
  onChange?: (value: string) => void;
549
- /** Whether the toggle is disabled */
859
+ /** Whether the toggle is disabled. @default false */
550
860
  disabled?: boolean;
551
861
  }
552
862
 
863
+ /** Height of the switch toggle in pixels. */
553
864
  export declare type SwitchToggleSize = "24" | "32" | "40";
554
865
 
866
+ /**
867
+ * Root container for a tabbed interface. Manages the active tab state and
868
+ * coordinates {@link TabsList}, {@link TabsTrigger}, and {@link TabsContent}.
869
+ *
870
+ * Built on Radix UI `Tabs`.
871
+ *
872
+ * @example
873
+ * ```tsx
874
+ * <Tabs defaultValue="tab1">
875
+ * <TabsList>
876
+ * <TabsTrigger value="tab1">Tab 1</TabsTrigger>
877
+ * <TabsTrigger value="tab2">Tab 2</TabsTrigger>
878
+ * </TabsList>
879
+ * <TabsContent value="tab1">Content 1</TabsContent>
880
+ * <TabsContent value="tab2">Content 2</TabsContent>
881
+ * </Tabs>
882
+ * ```
883
+ */
555
884
  export declare const Tabs: React_2.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React_2.RefAttributes<HTMLDivElement>>;
556
885
 
886
+ /** Renders the content panel for a given tab `value`. Only visible when its value matches the active tab. */
557
887
  export declare const TabsContent: React_2.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
558
888
 
889
+ /** Props for the {@link TabsContent} panel component. */
559
890
  export declare type TabsContentProps = React_2.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>;
560
891
 
892
+ /** Container for {@link TabsTrigger} elements. Supports both horizontal and vertical orientations. */
561
893
  export declare const TabsList: React_2.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
562
894
 
895
+ /** Props for the {@link TabsList} component. */
563
896
  export declare type TabsListProps = React_2.ComponentPropsWithoutRef<typeof TabsPrimitive.List>;
564
897
 
898
+ /** Props for the {@link Tabs} root component. Extends Radix `Tabs.Root` props. */
565
899
  export declare type TabsProps = React_2.ComponentPropsWithoutRef<typeof TabsPrimitive.Root>;
566
900
 
901
+ /** An interactive tab button that activates its associated {@link TabsContent} panel when clicked. */
567
902
  export declare const TabsTrigger: React_2.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
568
903
 
904
+ /** Props for the {@link TabsTrigger} button component. */
569
905
  export declare type TabsTriggerProps = React_2.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>;
570
906
 
907
+ /**
908
+ * A text input field with optional label, helper/error text, and icon slots.
909
+ *
910
+ * Provide at least one of `label`, `aria-label`, or `aria-labelledby` for
911
+ * accessibility — a console warning is emitted in development if none are set.
912
+ *
913
+ * @example
914
+ * ```tsx
915
+ * <TextField
916
+ * label="Email"
917
+ * placeholder="you@example.com"
918
+ * error={!!emailError}
919
+ * errorMessage={emailError}
920
+ * />
921
+ * ```
922
+ */
571
923
  export declare const TextField: React_2.ForwardRefExoticComponent<TextFieldProps & React_2.RefAttributes<HTMLInputElement>>;
572
924
 
573
925
  export declare interface TextFieldProps extends Omit<React_2.InputHTMLAttributes<HTMLInputElement>, "size" | "prefix"> {
574
- /** Label text displayed above the input */
926
+ /** Label text displayed above the input. Also used as the accessible name. */
575
927
  label?: string;
576
- /** Helper text displayed below the input */
928
+ /** Helper text displayed below the input. Replaced by `errorMessage` when `error` is `true`. */
577
929
  helperText?: string;
578
- /** Size variant of the text field */
930
+ /** Height of the text field in pixels. @default "48" */
579
931
  size?: TextFieldSize;
580
- /** Error state of the text field */
932
+ /** Whether the text field is in an error state. @default false */
581
933
  error?: boolean;
582
- /** Error message displayed below the input. Overrides helper text when error is true. */
934
+ /** Error message displayed below the input. Shown instead of `helperText` when `error` is `true`. */
583
935
  errorMessage?: string;
584
- /** Icon displayed on the left side of the input */
936
+ /** Icon element displayed at the left side of the input. */
585
937
  leftIcon?: React_2.ReactNode;
586
- /** Icon displayed on the right side of the input */
938
+ /** Icon element displayed at the right side of the input. */
587
939
  rightIcon?: React_2.ReactNode;
588
- /** Whether the text field should take the full width of its container */
940
+ /** Whether the text field stretches to fill its container width. @default false */
589
941
  fullWidth?: boolean;
590
942
  }
591
943
 
944
+ /** Text field height in pixels. */
592
945
  export declare type TextFieldSize = "48" | "40" | "32";
593
946
 
947
+ /**
948
+ * A dismissible notification that appears temporarily. Supports `info`,
949
+ * `warning`, `success`, `error`, and `messageToast` variants with optional
950
+ * action button, close control, and avatar.
951
+ *
952
+ * Use inside a {@link ToastProvider} with a {@link ToastViewport}.
953
+ *
954
+ * @example
955
+ * ```tsx
956
+ * <Toast variant="success" title="Saved" description="Your changes are live." />
957
+ * ```
958
+ */
594
959
  export declare const Toast: React_2.ForwardRefExoticComponent<ToastProps & React_2.RefAttributes<HTMLLIElement>>;
595
960
 
596
961
  export declare interface ToastProps extends Omit<Omit<React_2.ComponentPropsWithoutRef<typeof ToastPrimitive.Root>, "type">, "title"> {
597
- /** Variant of the toast */
962
+ /** Visual/semantic variant of the toast. @default "info" */
598
963
  variant?: ToastVariant;
599
- /** Toast title */
964
+ /** Title text displayed in bold at the top of the toast. */
600
965
  title?: string;
601
- /** Toast description/message */
966
+ /** Description or body content displayed below the title. */
602
967
  description?: React_2.ReactNode;
603
- /** Action button label */
968
+ /** Label for the optional action button. @default "Action" */
604
969
  actionLabel?: string;
605
- /** Action button click handler */
970
+ /** Click handler for the action button. When provided, the action button is rendered. */
606
971
  onActionClick?: () => void;
607
- /** Show close button */
972
+ /** Whether to show the close button. @default true */
608
973
  showClose?: boolean;
609
974
  /** Accessible label for the close button. @default "Close notification" */
610
975
  closeLabel?: string;
611
- /** Avatar image source */
976
+ /** Avatar image URL (used by the `messageToast` variant). */
612
977
  avatarSrc?: string;
613
- /** Avatar alt text */
978
+ /** Alt text for the avatar image. */
614
979
  avatarAlt?: string;
615
- /** Avatar fallback text */
980
+ /** Fallback content for the avatar (e.g. initials). */
616
981
  avatarFallback?: string;
617
982
  }
618
983
 
984
+ /** Provides toast context. Wrap your application (or a subtree) with this provider. */
619
985
  export declare const ToastProvider: React_2.FC<ToastProviderProps>;
620
986
 
987
+ /** Props for the {@link ToastProvider}. Wraps Radix `Toast.Provider`. */
621
988
  export declare interface ToastProviderProps extends ToastPrimitive.ToastProviderProps {
622
989
  }
623
990
 
991
+ /** Visual/semantic variant of the toast notification. */
624
992
  export declare type ToastVariant = "info" | "warning" | "success" | "error" | "messageToast";
625
993
 
994
+ /** Fixed-position container that renders active toasts. Place once at the root of your app. */
626
995
  export declare const ToastViewport: React_2.ForwardRefExoticComponent<ToastViewportProps & React_2.RefAttributes<HTMLOListElement>>;
627
996
 
997
+ /** Props for the {@link ToastViewport}. Controls where toasts are rendered on screen. */
628
998
  export declare interface ToastViewportProps extends React_2.ComponentPropsWithoutRef<typeof ToastPrimitive.Viewport> {
629
999
  }
630
1000
 
1001
+ /** Root component that manages open/close state for a single tooltip. */
631
1002
  export declare const Tooltip: React_2.FC<TooltipPrimitive.TooltipProps>;
632
1003
 
1004
+ /** The popup content of the tooltip. Renders inside a portal. */
633
1005
  export declare const TooltipContent: React_2.ForwardRefExoticComponent<TooltipContentProps & React_2.RefAttributes<HTMLDivElement>>;
634
1006
 
635
1007
  export declare interface TooltipContentProps extends React_2.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> {
636
- /** Whether to show the arrow pointer */
1008
+ /** Whether to show the arrow pointer. @default true */
637
1009
  showArrow?: boolean;
638
1010
  }
639
1011
 
1012
+ /** Props for the {@link Tooltip} root component. */
640
1013
  export declare type TooltipProps = React_2.ComponentPropsWithoutRef<typeof TooltipPrimitive.Root>;
641
1014
 
1015
+ /** Provides tooltip delay and skip-delay context. Wrap your app or a subtree. */
642
1016
  export declare const TooltipProvider: React_2.FC<TooltipPrimitive.TooltipProviderProps>;
643
1017
 
1018
+ /** Props for the {@link TooltipProvider}. Wraps Radix `Tooltip.Provider`. */
644
1019
  export declare type TooltipProviderProps = React_2.ComponentPropsWithoutRef<typeof TooltipPrimitive.Provider>;
645
1020
 
1021
+ /** The element that triggers the tooltip on hover/focus. */
646
1022
  export declare const TooltipTrigger: React_2.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
647
1023
 
1024
+ /** Props for the {@link TooltipTrigger} component. */
648
1025
  export declare type TooltipTriggerProps = React_2.ComponentPropsWithoutRef<typeof TooltipPrimitive.Trigger>;
649
1026
 
650
1027
  /** VIP badge icon with metallic gradient background and crown symbol */
@@ -652,10 +1029,12 @@ export declare const VipBadgeIcon: React_2.ForwardRefExoticComponent<React_2.SVG
652
1029
  className?: string;
653
1030
  } & React_2.RefAttributes<SVGSVGElement>>;
654
1031
 
1032
+ /** A filled warning icon with exclamation mark (20 × 20). */
655
1033
  export declare const WarningIcon: default_2.ForwardRefExoticComponent<default_2.SVGAttributes<SVGSVGElement> & {
656
1034
  className?: string;
657
1035
  } & default_2.RefAttributes<SVGSVGElement>>;
658
1036
 
1037
+ /** A filled warning-triangle icon with exclamation mark (20 × 20). */
659
1038
  export declare const WarningTriangleIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
660
1039
  className?: string;
661
1040
  } & React_2.RefAttributes<SVGSVGElement>>;