@adoptaunabuelo/react-components 0.3.145 → 0.3.147

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 (49) hide show
  1. package/dist/esm/components/Avatar/Avatar.d.ts +19 -0
  2. package/dist/esm/components/BreadCrumb/BreadCrumb.d.ts +11 -0
  3. package/dist/esm/components/Button/Button.d.ts +19 -0
  4. package/dist/esm/components/CellSelector/CellSelector.d.ts +28 -0
  5. package/dist/esm/components/Chat/Chat.d.ts +19 -0
  6. package/dist/esm/components/Checkbox/CheckboxList.d.ts +25 -0
  7. package/dist/esm/components/Countdown/Countdown.d.ts +17 -0
  8. package/dist/esm/components/Counter/Counter.d.ts +21 -0
  9. package/dist/esm/components/CurrencySelector/CurrencySelector.d.ts +23 -0
  10. package/dist/esm/components/Dropdown/Dropdown.d.ts +29 -0
  11. package/dist/esm/components/FAQs/FAQs.d.ts +22 -0
  12. package/dist/esm/components/Feedback/Feedback.d.ts +22 -0
  13. package/dist/esm/components/Filter/Filter.d.ts +13 -0
  14. package/dist/esm/components/Form/Form.d.ts +15 -0
  15. package/dist/esm/components/Hover/Hover.d.ts +12 -0
  16. package/dist/esm/components/Input/Basic/Input.d.ts +17 -0
  17. package/dist/esm/components/Input/Basic/InputPrimary.d.ts +3 -0
  18. package/dist/esm/components/Input/Basic/InputSecondary.d.ts +3 -0
  19. package/dist/esm/components/Input/Basic/InputThird.d.ts +3 -0
  20. package/dist/esm/components/Input/Birthday/InputBirthday.d.ts +14 -0
  21. package/dist/esm/components/Input/Chat/InputChat.d.ts +24 -0
  22. package/dist/esm/components/Input/Code/InputCode.d.ts +15 -0
  23. package/dist/esm/components/Input/DateRange/InputDateRange.d.ts +19 -0
  24. package/dist/esm/components/Input/Image/InputImage.d.ts +19 -0
  25. package/dist/esm/components/Input/Location/InputLocation.d.ts +29 -0
  26. package/dist/esm/components/Input/Phone/InputPhone.d.ts +21 -0
  27. package/dist/esm/components/Input/Price/InputPrice.d.ts +30 -0
  28. package/dist/esm/components/Input/Range/InputRange.d.ts +31 -0
  29. package/dist/esm/components/Label/Label.d.ts +17 -0
  30. package/dist/esm/components/Menu/Menu.d.ts +28 -0
  31. package/dist/esm/components/Modal/Modal.d.ts +18 -0
  32. package/dist/esm/components/Pagination/Pagination.d.ts +18 -0
  33. package/dist/esm/components/Payout/Payout.d.ts +32 -0
  34. package/dist/esm/components/ProgressBar/ProgressBar.d.ts +20 -0
  35. package/dist/esm/components/RadioButton/RadioButtonList.d.ts +22 -0
  36. package/dist/esm/components/SearchBar/SearchBar.d.ts +16 -0
  37. package/dist/esm/components/Select/Select.d.ts +25 -0
  38. package/dist/esm/components/Stamp/Stamp.d.ts +16 -0
  39. package/dist/esm/components/Switch/Switch.d.ts +16 -0
  40. package/dist/esm/components/SwitchTag/SwitchTag.d.ts +17 -0
  41. package/dist/esm/components/Tabs/Tabs.d.ts +27 -0
  42. package/dist/esm/components/TagSelector/TagSelector.d.ts +25 -0
  43. package/dist/esm/components/Text/Animated.d.ts +17 -0
  44. package/dist/esm/components/Text/Text.d.ts +11 -0
  45. package/dist/esm/components/TextArea/TextArea.d.ts +19 -0
  46. package/dist/esm/index.js +441 -441
  47. package/dist/esm/index.js.map +1 -1
  48. package/dist/index.d.ts +835 -0
  49. package/package.json +7 -3
package/dist/index.d.ts CHANGED
@@ -9,8 +9,19 @@ import { LocationProps as LocationProps$1 } from '@components/Input/Location/Inp
9
9
 
10
10
  declare const BreadCrumb: ({ steps, selectedStep, ...restProps }: Props$g) => react_jsx_runtime.JSX.Element;
11
11
 
12
+ /**
13
+ * Step indicator component displaying circular dots to show progress through a multi-step flow.
14
+ * Highlights the current active step with primary color.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <BreadCrumb steps={4} selectedStep={1} />
19
+ * ```
20
+ */
12
21
  interface Props$g extends ComponentPropsWithoutRef<"div"> {
22
+ /** Current active step index (0-based) */
13
23
  selectedStep?: number;
24
+ /** Total number of steps to display */
14
25
  steps: number;
15
26
  }
16
27
 
@@ -31,49 +42,121 @@ interface ButtonProps$1 extends ComponentPropsWithoutRef<"p"> {
31
42
 
32
43
  declare const Text: (props: TextProps) => react_jsx_runtime.JSX.Element | null;
33
44
 
45
+ /**
46
+ * Unified typography component that renders headers (h1-h6, d1), paragraphs (p, p2, c1, c2, o1, o2), or button text (b1, b2, b3).
47
+ * Automatically chooses the correct semantic HTML element based on the `type` prop.
48
+ *
49
+ * @example
50
+ * ```tsx
51
+ * <Text type="h1" weight="bold">Page Title</Text>
52
+ * <Text type="p" color={ColorV2.text.neutralMedium}>Body text</Text>
53
+ * <Text type="b1">Button text</Text>
54
+ * ```
55
+ */
34
56
  type TextProps = HeaderProps | ParagraphProps | ButtonProps$1;
35
57
 
36
58
  declare const ProgressBar: (props: Props$f) => react_jsx_runtime.JSX.Element;
37
59
 
60
+ /**
61
+ * Animated progress bar supporting single or multiple progress indicators with optional percentage display.
62
+ * Smoothly transitions to new values with configurable animation timing.
63
+ *
64
+ * @example
65
+ * ```tsx
66
+ * <ProgressBar
67
+ * progress={75}
68
+ * showPercentage
69
+ * animationTime={1.5}
70
+ * />
71
+ * ```
72
+ */
38
73
  interface Props$f extends ComponentPropsWithoutRef<"div"> {
74
+ /** Current progress value or array of multiple progress values with optional colors */
39
75
  progress: number | Array<{
40
76
  value: number;
41
77
  color?: string;
42
78
  }>;
79
+ /** Minimum value for progress calculation (default: 0) */
43
80
  minValue?: number;
81
+ /** Maximum value for progress calculation (default: 100) */
44
82
  maxValue?: number;
83
+ /** Bar color (overrides default primary color) */
45
84
  color?: string;
85
+ /** Animation duration in seconds */
46
86
  animationTime?: number;
87
+ /** Delay in seconds before animation starts */
47
88
  animationDelay?: number;
89
+ /** Display percentage badge above progress bar */
48
90
  showPercentage?: boolean;
49
91
  }
50
92
 
51
93
  declare const FeedBack: ({ type, text, isVisible, ...props }: FeedBackProps) => react_jsx_runtime.JSX.Element | null;
52
94
 
95
+ /**
96
+ * Toast-style feedback notification with slide-in/out animation.
97
+ * Auto-dismisses after specified duration. Supports success, error, and custom types.
98
+ *
99
+ * @example
100
+ * ```tsx
101
+ * <Feedback
102
+ * type="success"
103
+ * text="Changes saved successfully"
104
+ * isVisible={showFeedback}
105
+ * closeAfter={5000}
106
+ * onClose={() => setShowFeedback(false)}
107
+ * />
108
+ * ```
109
+ */
53
110
  interface FeedBackProps extends ComponentPropsWithoutRef<"div"> {
111
+ /** Controls visibility (triggers show/hide animation) */
54
112
  isVisible: boolean;
113
+ /** Visual variant: `success` (green with check), `error` (red with X), `custom` (use your own icon/color) */
55
114
  type: "success" | "error" | "custom";
115
+ /** Custom icon for `type="custom"` */
56
116
  icon?: ReactNode;
117
+ /** Message text to display */
57
118
  text: string;
119
+ /** Auto-dismiss duration in milliseconds (default: 3000) */
58
120
  closeAfter?: number;
121
+ /** Show manual close button */
59
122
  showClose?: boolean;
123
+ /** Callback fired when dismissed (auto or manual) */
60
124
  onClose?: () => void;
61
125
  }
62
126
 
63
127
  declare const Button: ({ design, onSuccess, ...restProps }: ButtonProps) => react_jsx_runtime.JSX.Element;
64
128
 
129
+ /**
130
+ * Button component with multiple visual variants and built-in loading/success states.
131
+ *
132
+ * @example
133
+ * ```tsx
134
+ * <Button design="primary" loading={isLoading}>
135
+ * Submit
136
+ * </Button>
137
+ * ```
138
+ */
65
139
  interface ButtonProps extends ComponentPropsWithoutRef<"button"> {
140
+ /** Visual variant: `primary` for main actions, `secondary` for less emphasis, `text` for minimal style, `image` for icon-only, `call-to-action` for prominent CTAs */
66
141
  design?: "primary" | "secondary" | "text" | "image" | "call-to-action";
142
+ /** Button size: `normal` (default) or `small` for compact layouts */
67
143
  size?: "small" | "normal";
68
144
  icon?: react__default.ReactElement;
69
145
  iconPosition?: "left" | "right";
146
+ /** Shows animated loading spinner (Lottie animation) */
70
147
  loading?: boolean;
71
148
  disabled?: boolean;
149
+ /** Triggers success animation (Lottie checkmark) */
72
150
  success?: boolean;
151
+ /** Delay in milliseconds before showing loading animation */
73
152
  animationDelay?: number;
153
+ /** Duration in milliseconds for success animation before callback */
74
154
  animationTime?: number;
155
+ /** Time in seconds to display countdown on button */
75
156
  countdown?: number;
157
+ /** Callback fired when success animation completes */
76
158
  onSuccess?: (success: boolean) => void;
159
+ /** Callback fired when countdown reaches zero */
77
160
  onCountdownEnd?: () => void;
78
161
  }
79
162
 
@@ -81,50 +164,114 @@ interface InputStyledProps extends ComponentPropsWithRef<"input"> {
81
164
  }
82
165
 
83
166
  interface InputPrimaryProps extends InputStyledProps {
167
+ /** Custom React element to display on the left side of the input (e.g., icon, prefix) */
84
168
  LeftContent?: ReactElement;
169
+ /** Custom CSS properties for the outer container wrapper */
85
170
  containerStyle?: CSSProperties;
171
+ /** Error message displayed below the input in red text */
86
172
  error?: string | undefined;
87
173
  design?: "primary";
88
174
  }
89
175
 
90
176
  interface InputSecondaryProps extends InputStyledProps {
177
+ /** Custom React element to display on the left side of the input (e.g., icon, prefix) */
91
178
  LeftContent?: ReactElement;
179
+ /** Custom CSS properties for the outer container wrapper */
92
180
  containerStyle?: CSSProperties;
181
+ /** Error message displayed below the input in red text */
93
182
  error?: string | undefined;
94
183
  design?: "secondary";
95
184
  }
96
185
 
97
186
  interface InputThirdProps extends InputStyledProps {
187
+ /** Custom React element to display on the left side of the input (e.g., icon, prefix) */
98
188
  LeftContent?: ReactElement;
189
+ /** Custom CSS properties for the outer container wrapper */
99
190
  containerStyle?: CSSProperties;
191
+ /** Error message displayed below the input in red text */
100
192
  error?: string | undefined;
101
193
  design?: "third";
102
194
  }
103
195
 
104
196
  declare const Input: react.ForwardRefExoticComponent<(Omit<InputPrimaryProps & {
197
+ /** Input type: determines keyboard type and validation on mobile devices */
105
198
  type?: "text" | "email" | "date" | "password" | "time" | "number";
106
199
  }, "ref"> | Omit<InputSecondaryProps & {
200
+ /** Input type: determines keyboard type and validation on mobile devices */
107
201
  type?: "text" | "email" | "date" | "password" | "time" | "number";
108
202
  }, "ref"> | Omit<InputThirdProps & {
203
+ /** Input type: determines keyboard type and validation on mobile devices */
109
204
  type?: "text" | "email" | "date" | "password" | "time" | "number";
110
205
  }, "ref">) & react.RefAttributes<HTMLInputElement>>;
111
206
 
207
+ /**
208
+ * Text input component with three visual design variants.
209
+ * Supports all native HTML input attributes plus custom styling and error handling.
210
+ *
211
+ * @example
212
+ * ```tsx
213
+ * <Input
214
+ * design="secondary"
215
+ * placeholder="Enter your email"
216
+ * error="Invalid email format"
217
+ * />
218
+ * ```
219
+ */
112
220
  type InputProps = (InputPrimaryProps | InputSecondaryProps | InputThirdProps) & {
221
+ /** Input type: determines keyboard type and validation on mobile devices */
113
222
  type?: "text" | "email" | "date" | "password" | "time" | "number";
114
223
  };
115
224
 
116
225
  declare const InputBirthday: ({ error, onChange, containerStyle, ...restProps }: InputBirthdayProps) => react_jsx_runtime.JSX.Element;
117
226
 
227
+ /**
228
+ * Birthday input split into three numeric fields (Day/Month/Year).
229
+ * Auto-focuses next field when complete, validates date with moment.js.
230
+ *
231
+ * @example
232
+ * ```tsx
233
+ * <InputBirthday
234
+ * defaultValue="1990-05-15"
235
+ * error={validationError}
236
+ * onChange={(date) => setDateOfBirth(date)}
237
+ * />
238
+ * ```
239
+ */
118
240
  type InputBirthdayProps = Omit<InputProps, 'onChange'> & {
241
+ /** Callback with valid Date object when all fields complete. Format for defaultValue: "YYYY-MM-DD" */
119
242
  onChange?: (date: Date | ChangeEvent<HTMLInputElement>) => void;
120
243
  };
121
244
 
122
245
  declare const InputChat: (props: InputChatProps) => react_jsx_runtime.JSX.Element;
123
246
 
247
+ /**
248
+ * Chat input with text messaging and voice recording capabilities.
249
+ * Features waveform visualization during recording and optional attachment menu.
250
+ *
251
+ * @example
252
+ * ```tsx
253
+ * <InputChat
254
+ * placeholder="Type a message..."
255
+ * options={[
256
+ * { id: "photo", label: "Photo", icon: <Camera /> },
257
+ * { id: "file", label: "File", icon: <Paperclip /> }
258
+ * ]}
259
+ * onOptionClick={(id) => handleAttachment(id)}
260
+ * onSend={(data) => {
261
+ * if (data.text) sendTextMessage(data.text);
262
+ * if (data.media) sendAudioMessage(data.media.base64);
263
+ * }}
264
+ * />
265
+ * ```
266
+ */
124
267
  interface InputChatProps extends ComponentPropsWithoutRef<"input"> {
268
+ /** Shows loading animation, disables input */
125
269
  loading?: boolean;
270
+ /** Attachment menu options (shows Plus icon button) */
126
271
  options?: Array<optionType>;
272
+ /** Callback when attachment menu item is clicked */
127
273
  onOptionClick?: (id: string) => void;
274
+ /** Callback when message is sent (Enter key or Send button). Audio is converted to base64 WAV format */
128
275
  onSend?: (data: {
129
276
  text?: string;
130
277
  media?: {
@@ -141,32 +288,81 @@ type optionType = {
141
288
 
142
289
  declare const InputCode: (props: InputCodeProps) => react_jsx_runtime.JSX.Element;
143
290
 
291
+ /**
292
+ * 6-digit verification code input with monospace font and letter spacing.
293
+ * Auto-blurs and triggers callback when all 6 digits are entered.
294
+ *
295
+ * @example
296
+ * ```tsx
297
+ * <InputCode
298
+ * autoFocus
299
+ * error={codeError}
300
+ * loading={isVerifying}
301
+ * onChange={(code) => verifyCode(code)}
302
+ * />
303
+ * ```
304
+ */
144
305
  interface InputCodeProps {
145
306
  style?: CSSProperties;
146
307
  containerStyle?: CSSProperties;
147
308
  autoFocus?: boolean;
148
309
  error?: string;
149
310
  loading?: boolean;
311
+ /** Callback fired when 6 digits are entered (input auto-blurs) */
150
312
  onChange?: (code: string) => void;
151
313
  }
152
314
 
153
315
  declare const InputDateRange: (props: InputDateRangeProps) => react_jsx_runtime.JSX.Element;
154
316
 
317
+ /**
318
+ * Date range picker powered by react-dates (Airbnb).
319
+ * Uses moment.js for date handling with Spanish localization.
320
+ *
321
+ * @example
322
+ * ```tsx
323
+ * <InputDateRange
324
+ * startDate={startDate}
325
+ * endDate={endDate}
326
+ * onChange={({ startDate, endDate }) => {
327
+ * setStartDate(startDate);
328
+ * setEndDate(endDate);
329
+ * }}
330
+ * isOutsideRange={(date) => date.isBefore(moment())}
331
+ * />
332
+ * ```
333
+ */
155
334
  interface InputDateRangeProps {
156
335
  style?: CSSProperties;
157
336
  startDate: moment.Moment | null;
158
337
  endDate: moment.Moment | null;
159
338
  focus?: boolean;
339
+ /** Callback fired when either date changes */
160
340
  onChange: (data: {
161
341
  startDate: moment.Moment | null;
162
342
  endDate: moment.Moment | null;
163
343
  }) => void;
344
+ /** Optional function to disable specific dates (return true to disable) */
164
345
  isOutsideRange?: (date: moment.Moment) => boolean;
165
346
  }
166
347
 
167
348
  declare const InputImage: (props: InputImageProps) => react_jsx_runtime.JSX.Element;
168
349
 
350
+ /**
351
+ * Image upload with crop, compression, and webcam capture.
352
+ * Uses react-image-crop for 1:1 aspect ratio cropping and compressorjs for compression.
353
+ *
354
+ * @example
355
+ * ```tsx
356
+ * <InputImage
357
+ * options={["camera", "library"]}
358
+ * maxHeight={1200}
359
+ * maxWidth={1200}
360
+ * onChange={(base64Image) => setProfilePhoto(base64Image)}
361
+ * />
362
+ * ```
363
+ */
169
364
  interface InputImageProps {
365
+ /** Image source options (shows modal on mobile if multiple). Default: ["library"] */
170
366
  options?: Array<"camera" | "library">;
171
367
  icon?: ReactElement;
172
368
  style?: CSSProperties;
@@ -174,32 +370,65 @@ interface InputImageProps {
174
370
  buttonText?: string;
175
371
  previewStyle?: CSSProperties;
176
372
  label?: string;
373
+ /** Max height in pixels for compressed image */
177
374
  maxHeight?: number;
375
+ /** Max width in pixels for compressed image */
178
376
  maxWidth?: number;
377
+ /** Skip crop UI, immediately compress and return image */
179
378
  hideCrop?: boolean;
379
+ /** Callback with base64-encoded WebP image */
180
380
  onChange?: (image: string | ArrayBuffer | null) => void;
181
381
  }
182
382
 
183
383
  declare const InputLocation: ({ isLoaded, isForm, searchTypes, searchFields, onLocationChange, ...restProps }: InputLocationProps) => react_jsx_runtime.JSX.Element;
184
384
 
385
+ /**
386
+ * Location autocomplete input powered by Google Maps Places API.
387
+ * Debounced search (500ms) with structured address parsing in Spanish.
388
+ *
389
+ * @example
390
+ * ```tsx
391
+ * <InputLocation
392
+ * isLoaded={isGoogleMapsLoaded}
393
+ * placeholder="Introduce tu dirección"
394
+ * searchTypes={["address"]}
395
+ * searchFields={["geometry", "address_components"]}
396
+ * onLocationChange={(location) => {
397
+ * console.log(location.address);
398
+ * console.log(location.location); // { lat, lng }
399
+ * }}
400
+ * />
401
+ * ```
402
+ */
185
403
  type InputLocationProps = InputProps & {
404
+ /** If true, only shows route + number in input after selection */
186
405
  isForm?: boolean;
406
+ /** Must be true when Google Maps API is loaded */
187
407
  isLoaded: boolean;
408
+ /** Google Places API search types. Default: ["address"] */
188
409
  searchTypes?: string[];
410
+ /** Google Places API fields to fetch. Default: ["geometry", "address_components"] */
189
411
  searchFields?: string[];
412
+ /** Callback with parsed location data */
190
413
  onLocationChange?: (result: LocationProps) => void;
191
414
  };
192
415
  interface LocationProps {
416
+ /** Full formatted address string */
193
417
  address?: string;
418
+ /** Short address (city, province, country) */
194
419
  sortAddress?: string;
420
+ /** Street name */
195
421
  route?: string;
422
+ /** Street number */
196
423
  routeNumber?: string;
197
424
  routeInfo?: string;
198
425
  city?: string;
199
426
  province?: string;
200
427
  zipCode?: string;
201
428
  country?: string;
429
+ /** ISO country code (e.g., "ES") */
202
430
  shortCountry?: string;
431
+ /** Coordinates { lat, lng } */
203
432
  location?: google.maps.LatLngLiteral;
204
433
  timeZone?: string;
205
434
  }
@@ -214,80 +443,203 @@ interface CountryProps {
214
443
 
215
444
  declare const InputPhone: (props: InputPhoneProps) => react_jsx_runtime.JSX.Element;
216
445
 
446
+ /**
447
+ * Phone input with country selector and validation using google-libphonenumber.
448
+ * Validates phone format for the selected country region.
449
+ *
450
+ * @example
451
+ * ```tsx
452
+ * <InputPhone
453
+ * country="ES"
454
+ * countryOptions={countryList}
455
+ * onPhoneChange={({ country, value, isValid }) => {
456
+ * if (isValid) setPhoneNumber(country + value);
457
+ * }}
458
+ * />
459
+ * ```
460
+ */
217
461
  type InputPhoneProps = InputProps & {
462
+ /** ISO country code (e.g., "ES") to pre-select */
218
463
  country?: string;
464
+ /** Array of country options with prefix and countryCode */
219
465
  countryOptions?: CountryProps[];
466
+ /** Callback fired on input change or country change with validation status */
220
467
  onPhoneChange?: (item: {
468
+ /** Country prefix (e.g., "+34") */
221
469
  country: string;
470
+ /** Phone number without prefix */
222
471
  value?: string | number;
472
+ /** Whether phone is valid for selected country */
223
473
  isValid: boolean;
224
474
  }) => void;
225
475
  };
226
476
 
227
477
  declare const InputRange: (props: InputRangeProps) => react_jsx_runtime.JSX.Element;
228
478
 
479
+ /**
480
+ * Range slider with heart icon thumb and optional milestone markers ("presents").
481
+ * Milestones animate with Lottie pop effect when value reaches them.
482
+ *
483
+ * @example
484
+ * ```tsx
485
+ * <InputRange
486
+ * min={0}
487
+ * max={100}
488
+ * unit="€"
489
+ * value={currentValue}
490
+ * presents={[
491
+ * { value: 25, icon: Gift, color: "#ccc", colorSuccess: "#0088ff", onClick: () => alert("25 reached!") },
492
+ * { value: 50, icon: Star, color: "#ccc", colorSuccess: "#0088ff" }
493
+ * ]}
494
+ * onChange={(e) => setValue(parseInt(e.target.value))}
495
+ * />
496
+ * ```
497
+ */
229
498
  interface InputRangeProps extends ComponentPropsWithoutRef<"input"> {
499
+ /** Color for filled portion of slider track */
230
500
  lineColor?: string;
501
+ /** Color for unfilled portion of slider track */
231
502
  backgroundColor?: string;
503
+ /** Color for heart icon thumb */
232
504
  thumbColor?: string;
233
505
  min?: number;
234
506
  max?: number;
507
+ /** Unit label shown at min/max (e.g., "€", "kg") */
235
508
  unit?: string;
509
+ /** Hide floating value tooltip above thumb */
236
510
  hideRange?: boolean;
511
+ /** Hide min/max labels below slider */
237
512
  hideLabels?: boolean;
513
+ /** Milestone markers with Lottie animation when reached */
238
514
  presents?: {
515
+ /** Value at which to show marker */
239
516
  value: number;
517
+ /** Lucide icon component */
240
518
  icon: React.ComponentType<{
241
519
  height?: number;
242
520
  width?: number;
243
521
  color?: string;
244
522
  }>;
523
+ /** Color when milestone not reached */
245
524
  color: string;
525
+ /** Color when milestone reached (slider value >= milestone value) */
246
526
  colorSuccess: string;
527
+ /** Optional callback when marker is clicked */
247
528
  onClick?: () => void;
248
529
  }[];
249
530
  }
250
531
 
251
532
  declare const InputPrice: (props: InputPriceProps) => react_jsx_runtime.JSX.Element;
252
533
 
534
+ /**
535
+ * Price selector with predefined options in horizontal scroll and optional custom input.
536
+ * Auto-centers selected option, validates minimum price. Spanish number formatting.
537
+ *
538
+ * @example
539
+ * ```tsx
540
+ * <InputPrice
541
+ * options={[
542
+ * { price: 10, data: [{ title: "1 coffee", icon: "Coffee" }] },
543
+ * { price: 25, data: [{ title: "3 coffees", icon: "Coffee" }] },
544
+ * { price: 50 }
545
+ * ]}
546
+ * currency="€"
547
+ * label="Equivale a {{value}} cafés"
548
+ * labelValueConversion={0.1}
549
+ * defaultOption={25}
550
+ * onChange={(price) => setDonationAmount(price)}
551
+ * />
552
+ * ```
553
+ */
253
554
  type InputPriceProps = {
254
555
  style?: CSSProperties;
255
556
  containerStyle?: CSSProperties;
557
+ /** Predefined price options (scrollable horizontally) */
256
558
  options: {
257
559
  price: number;
560
+ /** Optional feature list shown below price with icons */
258
561
  data?: {
259
562
  title: string;
563
+ /** Lucide icon name (e.g., "Check", "Coffee") */
260
564
  icon?: string;
261
565
  }[];
262
566
  }[];
567
+ /** Floating label above options. Use {{value}} for dynamic calculation */
263
568
  label?: string;
569
+ /** Multiplier for {{value}} in label (e.g., 0.1 converts 100€ to "10 coffees") */
264
570
  labelValueConversion?: number;
571
+ /** Currency symbol (e.g., "€", "$") */
265
572
  currency: string;
573
+ /** Pre-select an option by price */
266
574
  defaultOption?: number;
575
+ /** Hide custom amount input field */
267
576
  hideCustomAmount?: boolean;
577
+ /** Custom element shown below custom amount input */
268
578
  customAmountData?: React.ReactElement;
579
+ /** Callback with selected/entered price. Validates minimum from first option */
269
580
  onChange?: (value: number) => void;
270
581
  };
271
582
 
272
583
  declare const Select: (props: Props$e) => react_jsx_runtime.JSX.Element;
273
584
 
585
+ /**
586
+ * Dropdown select component with icons and keyboard-friendly navigation.
587
+ * Auto-closes when clicking outside. Supports controlled and uncontrolled modes.
588
+ *
589
+ * @example
590
+ * ```tsx
591
+ * <Select
592
+ * id="language-select"
593
+ * options={[
594
+ * { label: "English", icon: <FlagIcon /> },
595
+ * { label: "Spanish", icon: <FlagIcon /> }
596
+ * ]}
597
+ * selectedItem={currentLanguage}
598
+ * onChange={(option) => setLanguage(option)}
599
+ * />
600
+ * ```
601
+ */
274
602
  interface Props$e extends Omit<ComponentPropsWithoutRef<"div">, "onChange"> {
603
+ /** Unique identifier required for click-outside detection */
275
604
  id: string;
605
+ /** Custom styles for the dropdown options container */
276
606
  optionStyle?: CSSProperties;
607
+ /** Hide the selected item label (icon-only mode) */
277
608
  hideTitle?: boolean;
609
+ /** Array of selectable options */
278
610
  options: Array<OptionProps$5>;
611
+ /** Current selected option (controlled component) */
279
612
  selectedItem?: OptionProps$5;
613
+ /** Callback fired when selection changes */
280
614
  onChange?: (option: OptionProps$5) => void;
281
615
  }
282
616
  interface OptionProps$5 {
617
+ /** Optional icon displayed before label */
283
618
  icon?: React.ReactElement;
619
+ /** Display text for the option */
284
620
  label: string;
285
621
  }
286
622
 
287
623
  declare const SearchBar: (props: Props$d) => react_jsx_runtime.JSX.Element;
288
624
 
625
+ /**
626
+ * Search input with magnifying glass icon. Supports two sizes and visual designs.
627
+ * Auto-focuses on click and changes style on interaction.
628
+ *
629
+ * @example
630
+ * ```tsx
631
+ * <SearchBar
632
+ * type="big"
633
+ * design="primary"
634
+ * placeholder="Search..."
635
+ * onChange={(e) => handleSearch(e.target.value)}
636
+ * />
637
+ * ```
638
+ */
289
639
  interface Props$d extends ComponentPropsWithoutRef<"input"> {
640
+ /** Size variant: `big` (48px height) or `small` (38px height) */
290
641
  type?: "big" | "small";
642
+ /** Visual design: `primary` (gray background) or `secondary` (white with border) */
291
643
  design?: "primary" | "secondary";
292
644
  }
293
645
 
@@ -315,59 +667,141 @@ interface ModalRef {
315
667
 
316
668
  declare const ModalComponent: react.ForwardRefExoticComponent<ModalProps & react.RefAttributes<ModalRef>>;
317
669
 
670
+ /**
671
+ * Modal dialog component with three display modes: default, form, and web.
672
+ * Use `type="form"` with `options` for structured form layouts, or `type="web"` with `url` to embed external content.
673
+ *
674
+ * @example
675
+ * ```tsx
676
+ * <Modal
677
+ * type="form"
678
+ * isVisible={isOpen}
679
+ * options={[
680
+ * { id: "name", title: "Name", Data: <Input /> },
681
+ * { id: "separator" }
682
+ * ]}
683
+ * />
684
+ * ```
685
+ */
318
686
  interface ModalProps extends ModalPrimaryProps {
687
+ /** Array of form field configurations for `type="form"`. Each item creates a labeled row or separator. */
319
688
  options?: Array<{
320
689
  id: string;
321
690
  title?: string;
322
691
  Data?: React.ReactElement;
323
692
  hidden?: boolean;
324
693
  }>;
694
+ /** External URL to display in an iframe when `type="web"` */
325
695
  url?: string;
326
696
  }
327
697
 
328
698
  declare const MenuList: react.ForwardRefExoticComponent<MenuProps & react.RefAttributes<MenuRef>>;
329
699
 
700
+ /**
701
+ * Dropdown menu component with customizable positioning and icon trigger.
702
+ * Automatically closes when clicking outside. Supports both predefined options and custom children.
703
+ *
704
+ * @example
705
+ * ```tsx
706
+ * <Menu
707
+ * id="actions-menu"
708
+ * position="bottom-right"
709
+ * options={[
710
+ * { id: "edit", label: "Edit", icon: <EditIcon /> },
711
+ * { id: "delete", label: "Delete", labelColor: "red" }
712
+ * ]}
713
+ * onClick={(option) => handleAction(option.id)}
714
+ * />
715
+ * ```
716
+ */
330
717
  interface MenuProps {
718
+ /** Unique identifier required for click-outside detection */
331
719
  id: string;
332
720
  style?: CSSProperties;
721
+ /** Custom styles for the dropdown menu container */
333
722
  menuStyle?: CSSProperties;
723
+ /** Icon for the button trigger (lowercase, used with Button component) */
334
724
  icon?: React.ReactElement;
725
+ /** Icon element for custom trigger (uppercase, replaces Button) */
335
726
  Icon?: React.ReactElement;
727
+ /** Positioning of the dropdown relative to the trigger button */
336
728
  position: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
729
+ /** Custom content to display in menu (alternative to options) */
337
730
  children?: React.ReactNode;
731
+ /** Array of menu items with labels and icons */
338
732
  options?: Array<OptionsProps>;
733
+ /** Callback fired when menu visibility changes */
339
734
  onChange?: (visible: boolean) => void;
735
+ /** Callback fired when a menu option is clicked */
340
736
  onClick?: (option: OptionsProps) => void;
341
737
  }
342
738
  interface OptionsProps {
343
739
  id: string;
344
740
  label: string;
741
+ /** Custom text color for the label */
345
742
  labelColor?: string;
346
743
  icon?: React.ReactElement;
347
744
  }
348
745
  interface MenuRef {
746
+ /** Programmatically close the menu */
349
747
  close: () => void;
350
748
  }
351
749
 
352
750
  declare const Label: (props: Props$c) => react_jsx_runtime.JSX.Element;
353
751
 
752
+ /**
753
+ * Label/badge component with status-aware coloring and two visual types.
754
+ * Automatically applies predefined colors for common status values (e.g., "pending", "active", "canceled").
755
+ *
756
+ * @example
757
+ * ```tsx
758
+ * <Label type="label" text="active" />
759
+ * <Label type="chip" size="big" text="Pending" />
760
+ * <Label text="done" icon={<CheckIcon />} />
761
+ * ```
762
+ */
354
763
  interface Props$c extends ComponentPropsWithoutRef<"div"> {
764
+ /** Text to display. For predefined status values, color is automatically applied. */
355
765
  text: string;
356
766
  disabled?: boolean;
767
+ /** Visual variant: `label` for badges, `chip` for rounded buttons */
357
768
  type?: "label" | "chip";
769
+ /** Size variant for chips: `big` (full text), `small` (initials only), `selector` (bordered) */
358
770
  size?: "big" | "small" | "selector";
771
+ /** Optional icon displayed before the text */
359
772
  icon?: ReactElement;
773
+ /** Custom background color (overrides automatic status colors) */
360
774
  backgroundColor?: string;
775
+ /** Custom text color (overrides automatic status colors) */
361
776
  color?: string;
362
777
  }
363
778
 
364
779
  declare const Avatar: (props: Props$b) => react_jsx_runtime.JSX.Element;
365
780
 
781
+ /**
782
+ * Circular avatar component supporting images, initials, and file upload.
783
+ * Click to view full-size image or to upload new one when editable.
784
+ *
785
+ * @example
786
+ * ```tsx
787
+ * <Avatar
788
+ * icon={userImageUrl}
789
+ * name="John Doe"
790
+ * editable
791
+ * onChange={(file) => uploadAvatar(file)}
792
+ * />
793
+ * ```
794
+ */
366
795
  interface Props$b extends Omit<ComponentPropsWithoutRef<"div">, "onChange"> {
796
+ /** Image URL to display */
367
797
  icon?: string;
798
+ /** User name (displays first letter as fallback when no icon) */
368
799
  name?: string;
800
+ /** Enable file upload on click (accepts jpg, jpeg, png, gif) */
369
801
  editable?: boolean;
802
+ /** Enable click to view full-size image in modal */
370
803
  clickable?: boolean;
804
+ /** Callback fired when new image is selected, receives base64-encoded file */
371
805
  onChange?: (file: string | ArrayBuffer | null) => void;
372
806
  }
373
807
 
@@ -455,40 +889,94 @@ type CheckboxOption = {
455
889
  error?: boolean;
456
890
  [key: string]: string | React.ReactElement | boolean | undefined;
457
891
  };
892
+ /**
893
+ * Checkbox list component supporting single or multiple selection modes.
894
+ * Renders a collection of checkboxes with optional labels, icons, and custom elements.
895
+ *
896
+ * @example
897
+ * ```tsx
898
+ * <CheckboxList
899
+ * type="multiple"
900
+ * options={[
901
+ * { id: "1", label: "Option 1" },
902
+ * { id: "2", label: "Option 2", sublabel: "Description" }
903
+ * ]}
904
+ * onChange={(selected) => console.log(selected)}
905
+ * />
906
+ * ```
907
+ */
458
908
  interface Props$a {
459
909
  style?: CSSProperties;
910
+ /** Custom styles applied to each individual checkbox element */
460
911
  elementStyle?: CSSProperties;
461
912
  options: Array<CheckboxOption>;
913
+ /** Pre-selected options (controlled component pattern) */
462
914
  selectedOptions?: Array<{
463
915
  id: string;
464
916
  }>;
917
+ /** Height in pixels for each checkbox */
465
918
  height?: number;
919
+ /** Width in pixels for each checkbox */
466
920
  width?: number;
921
+ /** Selection mode: `single` for radio-like behavior, `multiple` for checkboxes */
467
922
  type: "single" | "multiple";
923
+ /** Callback fired when selection changes, receives array of selected options */
468
924
  onChange?: (result: Array<CheckboxOption>) => void;
925
+ /** Position of the checkbox indicator relative to content */
469
926
  position?: "left" | "right";
927
+ /** Show avatar-style circular checkboxes */
470
928
  avatarEnabled?: boolean;
929
+ /** Visual shape of the checkbox indicator */
471
930
  shape?: "circle" | "square";
472
931
  }
473
932
 
474
933
  declare const Dropdown: (props: Props$9) => react_jsx_runtime.JSX.Element;
475
934
 
935
+ /**
936
+ * Dropdown select with optional search, multi-select, and icon support.
937
+ * Auto-closes when clicking outside. Displays selected items as comma-separated text.
938
+ *
939
+ * @example
940
+ * ```tsx
941
+ * <Dropdown
942
+ * id="category-dropdown"
943
+ * placeholder="Select categories"
944
+ * type="multiple"
945
+ * options={categories}
946
+ * selectedOptions={selected}
947
+ * onSearchChange={(text) => filterOptions(text)}
948
+ * onChange={(items) => setSelected(items)}
949
+ * />
950
+ * ```
951
+ */
476
952
  interface Props$9 {
953
+ /** Unique identifier required for click-outside detection */
477
954
  id: string;
478
955
  style?: CSSProperties;
956
+ /** Custom styles for the dropdown menu container */
479
957
  menuStyle?: CSSProperties;
958
+ /** Custom styles for individual option items */
480
959
  optionStyle?: CSSProperties;
960
+ /** Array of selectable options */
481
961
  options: Array<OptionProps$4>;
962
+ /** Placeholder text shown when nothing is selected */
482
963
  placeholder: string;
964
+ /** Currently selected options (controlled component) */
483
965
  selectedOptions?: Array<OptionProps$4>;
966
+ /** Selection mode: `single` for one item, `multiple` for checkboxes */
484
967
  type?: "single" | "multiple";
968
+ /** Position of dropdown menu relative to trigger */
485
969
  menuPosition?: "bottom" | "top";
970
+ /** Callback fired when selection changes */
486
971
  onChange?: (a: Array<OptionProps$4>) => void;
972
+ /** Callback fired when search input changes, enables search functionality */
487
973
  onSearchChange?: (text: string) => void;
488
974
  }
489
975
  interface OptionProps$4 {
490
976
  id: string;
977
+ /** Display text for the option */
491
978
  title?: string;
979
+ /** Optional icon displayed before title */
492
980
  icon?: React.ReactElement;
493
981
  }
494
982
 
@@ -516,88 +1004,214 @@ declare const TextArea: (props: TextAreaDefaultProps | TextAreaEditorProps) => r
516
1004
 
517
1005
  declare const RadioButtonList: (props: Props$8) => react_jsx_runtime.JSX.Element;
518
1006
 
1007
+ /**
1008
+ * Radio button list supporting single or multiple selection.
1009
+ * Each option can contain any React content (text, images, custom components).
1010
+ *
1011
+ * @example
1012
+ * ```tsx
1013
+ * <RadioButtonList
1014
+ * type="single"
1015
+ * options={[
1016
+ * { id: "1", children: <div>Option 1</div>, selected: true },
1017
+ * { id: "2", children: <div>Option 2</div> }
1018
+ * ]}
1019
+ * onChange={(selected) => console.log(selected)}
1020
+ * />
1021
+ * ```
1022
+ */
519
1023
  interface Props$8 {
1024
+ /** Array of radio button options with custom content */
520
1025
  options: Array<OptionProps$3>;
1026
+ /** Selection mode: `single` for radio behavior, `multiple` for checkboxes */
521
1027
  type: "single" | "multiple";
522
1028
  style?: CSSProperties;
1029
+ /** Custom styles applied to each radio button cell */
523
1030
  cellStyle?: CSSProperties;
1031
+ /** Callback fired when selection changes, receives array of selected options */
524
1032
  onChange?: (data: Array<OptionProps$3>) => void;
525
1033
  }
526
1034
  interface OptionProps$3 {
527
1035
  id: string;
1036
+ /** Custom React content to display in the radio button */
528
1037
  children: React.ReactNode;
1038
+ /** Initial selected state */
529
1039
  selected?: boolean;
530
1040
  }
531
1041
 
532
1042
  declare const CellSelector: (props: Props$7) => react_jsx_runtime.JSX.Element;
533
1043
 
1044
+ /**
1045
+ * Grid of selectable cells with icons, titles, and optional subtitles.
1046
+ * Supports single or multiple selection with visual feedback and hover states.
1047
+ *
1048
+ * @example
1049
+ * ```tsx
1050
+ * <CellSelector
1051
+ * type="multiple"
1052
+ * options={[
1053
+ * { id: "1", title: "Option 1", icon: <Icon />, subtitle: "Description" },
1054
+ * { id: "2", title: "Option 2", icon: <Icon />, disabled: true }
1055
+ * ]}
1056
+ * selectedOptions={selected}
1057
+ * onChange={(items) => setSelected(items)}
1058
+ * />
1059
+ * ```
1060
+ */
534
1061
  interface Props$7 {
535
1062
  style?: CSSProperties;
1063
+ /** Custom styles applied to each cell */
536
1064
  cellStyle?: CSSProperties;
1065
+ /** Array of selectable cell options */
537
1066
  options: Array<OptionProps$2>;
1067
+ /** Currently selected options (controlled component) */
538
1068
  selectedOptions?: Array<OptionProps$2>;
1069
+ /** Selection mode: `single` for radio behavior, `multiple` for checkboxes */
539
1070
  type?: "single" | "multiple";
1071
+ /** Callback fired when selection changes, receives array of selected options */
540
1072
  onChange?: (array: Array<OptionProps$2>) => void;
1073
+ /** Callback fired when individual cell is clicked */
541
1074
  onClick?: (item: OptionProps$2) => void;
1075
+ /** Visual design variant */
542
1076
  design?: "design1" | "design2";
543
1077
  }
544
1078
  interface OptionProps$2 {
545
1079
  id: string;
1080
+ /** Main title displayed in the cell */
546
1081
  title: string;
1082
+ /** Optional subtitle displayed below the cell */
547
1083
  subtitle?: string;
1084
+ /** Icon displayed at the top of the cell */
548
1085
  icon?: ReactElement;
1086
+ /** Disables cell interaction and applies opacity */
549
1087
  disabled?: boolean;
550
1088
  }
551
1089
 
552
1090
  declare const Tabs: (props: Props$6) => react_jsx_runtime.JSX.Element;
553
1091
 
1092
+ /**
1093
+ * Tab navigation component with two visual designs.
1094
+ * Primary design shows underline indicator, secondary design shows rounded background.
1095
+ *
1096
+ * @example
1097
+ * ```tsx
1098
+ * <Tabs
1099
+ * design="secondary"
1100
+ * options={[
1101
+ * { id: "1", title: "Overview" },
1102
+ * { id: "2", title: "Details" }
1103
+ * ]}
1104
+ * selectedOption={currentTab}
1105
+ * onChange={(tab) => setCurrentTab(tab)}
1106
+ * />
1107
+ * ```
1108
+ */
554
1109
  interface Props$6 {
555
1110
  style?: CSSProperties;
1111
+ /** Custom styles for individual tab cells */
556
1112
  cellStyle?: CSSProperties;
1113
+ /** Custom styles for tab text labels */
557
1114
  textStyle?: CSSProperties;
1115
+ /** Background color for selected tab (secondary design) */
558
1116
  cellColor?: string;
1117
+ /** Text color for selected tab */
559
1118
  textColor?: string;
1119
+ /** Background color for the entire tabs container */
560
1120
  backgroundColor?: string;
1121
+ /** Array of tab options */
561
1122
  options: Array<OptionProps$1>;
1123
+ /** Currently selected tab (controlled component) */
562
1124
  selectedOption?: OptionProps$1;
1125
+ /** Visual design: `primary` (underline) or `secondary` (rounded background) */
563
1126
  design?: "primary" | "secondary";
1127
+ /** Callback fired when tab selection changes */
564
1128
  onChange?: (option: OptionProps$1) => void;
565
1129
  }
566
1130
  interface OptionProps$1 {
567
1131
  id: string;
1132
+ /** Display text for the tab */
568
1133
  title: string;
569
1134
  }
570
1135
 
571
1136
  declare const Payout: react.ForwardRefExoticComponent<PayoutProps & react.RefAttributes<PayoutRef>>;
572
1137
 
1138
+ /**
1139
+ * Stripe payment method setup component supporting card and SEPA direct debit.
1140
+ * Handles 3D Secure authentication flow in modal. Requires Stripe publishable key.
1141
+ *
1142
+ * @example
1143
+ * ```tsx
1144
+ * const payoutRef = useRef<PayoutRef>(null);
1145
+ *
1146
+ * <Payout
1147
+ * ref={payoutRef}
1148
+ * stripeKey={process.env.STRIPE_KEY}
1149
+ * paymentOption="card"
1150
+ * design="secondary"
1151
+ * onLoading={(loading) => setIsLoading(loading)}
1152
+ * onSetupConfirmed={() => handleSuccess()}
1153
+ * />
1154
+ *
1155
+ * // Get payment method
1156
+ * const method = await payoutRef.current?.getPaymentMethod();
1157
+ * ```
1158
+ */
573
1159
  interface PayoutProps {
574
1160
  style?: CSSProperties;
1161
+ /** Stripe publishable API key (starts with pk_) */
575
1162
  stripeKey: string;
1163
+ /** 3D Secure confirmation URL from Stripe setup intent */
576
1164
  stripeConfirmUrl?: string;
1165
+ /** Payment method type: credit/debit card or SEPA direct debit */
577
1166
  paymentOption: "sepa_debit" | "card";
1167
+ /** Custom styles for the card input form */
578
1168
  cardStyle?: CSSProperties;
579
1169
  error?: boolean;
1170
+ /** Pre-filled user data (email required for SEPA) */
580
1171
  userData?: {
581
1172
  email?: string;
582
1173
  };
1174
+ /** Visual design variant */
583
1175
  design?: "primary" | "secondary";
1176
+ /** Custom placeholder for name input */
584
1177
  placeholderName?: string;
1178
+ /** Custom placeholder for email input */
585
1179
  placeholderEmail?: string;
1180
+ /** Callback fired when 3D Secure authentication completes successfully */
586
1181
  onSetupConfirmed?: () => void;
1182
+ /** Callback fired when loading state changes */
587
1183
  onLoading?: (a: boolean) => void;
588
1184
  }
589
1185
  interface PayoutRef {
1186
+ /** Collects payment method from Stripe and returns payment method object */
590
1187
  getPaymentMethod: () => Promise<PaymentMethod | undefined>;
591
1188
  }
592
1189
 
593
1190
  declare const SwitchTag: (props: Props$5) => react_jsx_runtime.JSX.Element;
594
1191
 
1192
+ /**
1193
+ * Icon-based toggle switch for switching between 2+ options.
1194
+ * Displays icons in a pill-shaped container with active state highlighting.
1195
+ *
1196
+ * @example
1197
+ * ```tsx
1198
+ * <SwitchTag
1199
+ * options={[
1200
+ * { id: "grid", icon: <GridIcon /> },
1201
+ * { id: "list", icon: <ListIcon /> }
1202
+ * ]}
1203
+ * onChange={(option) => setViewMode(option.id)}
1204
+ * />
1205
+ * ```
1206
+ */
595
1207
  interface Props$5 {
596
1208
  style?: CSSProperties;
1209
+ /** Array of icon options (automatically colors icons based on selection) */
597
1210
  options: Array<{
598
1211
  id: string;
599
1212
  icon: react__default.ReactElement;
600
1213
  }>;
1214
+ /** Callback fired when option changes, receives selected option */
601
1215
  onChange?: (option: {
602
1216
  id: string;
603
1217
  icon: react__default.ReactElement;
@@ -606,78 +1220,213 @@ interface Props$5 {
606
1220
 
607
1221
  declare const Pagination: (props: Props$4) => react_jsx_runtime.JSX.Element;
608
1222
 
1223
+ /**
1224
+ * Pagination control with first/previous/next/last navigation buttons.
1225
+ * Displays current page number and total pages (e.g., "1 de 5").
1226
+ *
1227
+ * @example
1228
+ * ```tsx
1229
+ * <Pagination
1230
+ * length={100}
1231
+ * rowsPerPage={10}
1232
+ * start={0}
1233
+ * onChange={(page) => fetchData(page)}
1234
+ * />
1235
+ * ```
1236
+ */
609
1237
  interface Props$4 {
610
1238
  style?: CSSProperties;
1239
+ /** Initial/controlled page index (0-based) */
611
1240
  start?: number;
1241
+ /** Total number of items to paginate */
612
1242
  length: number;
1243
+ /** Number of items to display per page */
613
1244
  rowsPerPage: number;
1245
+ /** Callback fired when page changes, receives new page index (0-based) */
614
1246
  onChange?: (page: number) => void;
615
1247
  }
616
1248
 
617
1249
  declare const Countdown: (props: Props$3) => react_jsx_runtime.JSX.Element;
618
1250
 
1251
+ /**
1252
+ * Countdown timer displaying human-readable time remaining or elapsed.
1253
+ * Auto-warns with red background when less than 2 hours remain.
1254
+ *
1255
+ * @example
1256
+ * ```tsx
1257
+ * <Countdown
1258
+ * toDate={new Date("2024-12-31")}
1259
+ * color={ColorV2.surface.primary}
1260
+ * textColor={ColorV2.text.white}
1261
+ * />
1262
+ * // Shows: "3 días restantes" or "2 horas de retraso"
1263
+ * ```
1264
+ */
619
1265
  interface Props$3 extends ComponentPropsWithoutRef<"div"> {
1266
+ /** Target date to count down to (or count up from if past) */
620
1267
  toDate: Date;
1268
+ /** Background color (overridden by warning red when <2h remain) */
621
1269
  color?: string;
1270
+ /** Text and icon color (overridden by white when warning) */
622
1271
  textColor?: string;
623
1272
  }
624
1273
 
625
1274
  declare const TagSelector: (props: Props$2) => react_jsx_runtime.JSX.Element;
626
1275
 
1276
+ /**
1277
+ * Tag selector component for single or multiple selection of options.
1278
+ * Renders clickable tags with optional subtitles in a flex-wrap layout.
1279
+ *
1280
+ * @example
1281
+ * ```tsx
1282
+ * <TagSelector
1283
+ * type="multiple"
1284
+ * options={[
1285
+ * { id: "1", title: "React" },
1286
+ * { id: "2", title: "TypeScript", subtitle: "Recommended" }
1287
+ * ]}
1288
+ * optionsSelected={selectedTags}
1289
+ * onChange={(tags) => setSelectedTags(tags)}
1290
+ * />
1291
+ * ```
1292
+ */
627
1293
  interface Props$2 {
1294
+ /** Selection mode: `single` for radio-like, `multiple` for multi-select */
628
1295
  type?: "multiple" | "single";
629
1296
  style?: CSSProperties;
1297
+ /** Available tag options to display */
630
1298
  options: Array<OptionProps>;
1299
+ /** Pre-selected options (controlled component pattern) */
631
1300
  optionsSelected?: Array<OptionProps>;
1301
+ /** Callback fired when selection changes, receives array of selected options */
632
1302
  onChange?: (selection: Array<OptionProps>) => void;
1303
+ /** When true, disables click interactions (display only) */
633
1304
  onlyVisual?: boolean;
1305
+ /** Visual design variant */
634
1306
  design?: "design1" | "design2";
635
1307
  }
636
1308
  interface OptionProps {
637
1309
  id: string;
1310
+ /** Main text displayed on the tag */
638
1311
  title: string;
1312
+ /** Optional secondary text below the title */
639
1313
  subtitle?: string;
640
1314
  style?: react__default.CSSProperties;
641
1315
  }
642
1316
 
643
1317
  declare const FAQs: (props: Props$1) => react_jsx_runtime.JSX.Element;
644
1318
 
1319
+ /**
1320
+ * FAQ accordion component with expandable/collapsible question-answer pairs.
1321
+ * Only one question can be expanded at a time.
1322
+ *
1323
+ * @example
1324
+ * ```tsx
1325
+ * <FAQs
1326
+ * options={[
1327
+ * {
1328
+ * id: "1",
1329
+ * title: "How do I get started?",
1330
+ * description: "To get started, simply..."
1331
+ * }
1332
+ * ]}
1333
+ * onClick={(index) => trackFaqClick(index)}
1334
+ * />
1335
+ * ```
1336
+ */
645
1337
  interface Props$1 {
646
1338
  style?: CSSProperties;
1339
+ /** Array of FAQ items with question and answer */
647
1340
  options: Array<{
648
1341
  id: string;
1342
+ /** Question text (always visible) */
649
1343
  title: string;
1344
+ /** Answer text (visible when expanded) */
650
1345
  description: string;
651
1346
  }>;
1347
+ /** Callback fired when FAQ item is clicked, receives item index */
652
1348
  onClick?: (index: number) => void;
653
1349
  }
654
1350
 
655
1351
  declare function Counter(props: Props): react_jsx_runtime.JSX.Element;
656
1352
 
1353
+ /**
1354
+ * Animated flip-clock style counter that animates from zero to the target amount.
1355
+ * Each digit flips individually with a smooth animation effect.
1356
+ *
1357
+ * @example
1358
+ * ```tsx
1359
+ * <Counter
1360
+ * amount={12345}
1361
+ * height={60}
1362
+ * width={40}
1363
+ * fontSize={32}
1364
+ * />
1365
+ * ```
1366
+ */
657
1367
  interface Props {
1368
+ /** Height in pixels for each digit block */
658
1369
  height: number;
1370
+ /** Width in pixels for each digit block */
659
1371
  width: number;
1372
+ /** Target number to count up to (animates from amount-10 or 0) */
660
1373
  amount: number;
1374
+ /** Text color for the digits */
661
1375
  color?: string;
1376
+ /** Background color for each digit block */
662
1377
  backgroundColor?: string;
1378
+ /** Border/divider color between digit segments */
663
1379
  borderColor?: string;
1380
+ /** Font size in pixels for the numbers */
664
1381
  fontSize?: number;
665
1382
  }
666
1383
 
667
1384
  declare const Stamp: (props: StampProps) => react_jsx_runtime.JSX.Element;
668
1385
 
1386
+ /**
1387
+ * Decorative postage stamp component with perforated edges.
1388
+ * Displays an emoji icon and title. Responsive sizing for mobile.
1389
+ *
1390
+ * @example
1391
+ * ```tsx
1392
+ * <Stamp
1393
+ * icon="🎉"
1394
+ * title="Celebration"
1395
+ * backgroundColor={ColorV2.surface.greenSoft}
1396
+ * />
1397
+ * ```
1398
+ */
669
1399
  interface StampProps {
670
1400
  style?: CSSProperties;
1401
+ /** Emoji or single character to display (rendered large) */
671
1402
  icon: string;
1403
+ /** Text label below the icon (truncates with ellipsis) */
672
1404
  title: string;
1405
+ /** Background color for the icon area */
673
1406
  backgroundColor: string;
674
1407
  }
675
1408
 
676
1409
  declare const Switch: (props: SwitchProps) => react_jsx_runtime.JSX.Element;
677
1410
 
1411
+ /**
1412
+ * Toggle switch component with sliding animation and checkmark indicator.
1413
+ * Changes color and position when toggled on/off.
1414
+ *
1415
+ * @example
1416
+ * ```tsx
1417
+ * <Switch
1418
+ * active={isEnabled}
1419
+ * color={ColorV2.surface.primary}
1420
+ * onChange={(on) => setIsEnabled(on)}
1421
+ * />
1422
+ * ```
1423
+ */
678
1424
  interface SwitchProps {
1425
+ /** Current state (controlled component) */
679
1426
  active?: boolean;
1427
+ /** Custom color when active (default: primary) */
680
1428
  color?: string;
1429
+ /** Callback fired when toggled, receives new state */
681
1430
  onChange?: (on: boolean) => void;
682
1431
  }
683
1432
 
@@ -705,17 +1454,36 @@ interface ChatMessageProps {
705
1454
 
706
1455
  declare const Chat: (props: ChatProps) => react_jsx_runtime.JSX.Element;
707
1456
 
1457
+ /**
1458
+ * Full-featured chat interface with message history, template support, and media uploads.
1459
+ * Automatically groups messages by date and shows template prompt when last message is > 24 hours old.
1460
+ *
1461
+ * @example
1462
+ * ```tsx
1463
+ * <Chat
1464
+ * messages={chatMessages}
1465
+ * templates={messageTemplates}
1466
+ * loading={isSending}
1467
+ * onSend={(data) => handleSendMessage(data)}
1468
+ * />
1469
+ * ```
1470
+ */
708
1471
  interface ChatProps {
709
1472
  style?: CSSProperties;
1473
+ /** Array of chat messages to display, grouped automatically by date */
710
1474
  messages: ChatMessageProps[];
1475
+ /** Shows loading spinner in input when true */
711
1476
  loading?: boolean;
1477
+ /** Placeholder text for the input field */
712
1478
  placeholder?: string;
1479
+ /** Available message templates shown when conversation is inactive (>24 hrs) */
713
1480
  templates: {
714
1481
  id: string;
715
1482
  title: string;
716
1483
  subtitle: string;
717
1484
  description: string;
718
1485
  }[];
1486
+ /** Callback fired when user sends a message, template, or uploads media */
719
1487
  onSend: (data: {
720
1488
  text?: string;
721
1489
  template?: string;
@@ -741,35 +1509,102 @@ interface LocationFormProps {
741
1509
 
742
1510
  declare const Form: (props: FormProps & LocationFormProps) => react_jsx_runtime.JSX.Element | null;
743
1511
 
1512
+ /**
1513
+ * Form router component (currently only supports location type).
1514
+ * Delegates to specific form implementations based on type.
1515
+ *
1516
+ * @example
1517
+ * ```tsx
1518
+ * <Form
1519
+ * type="location"
1520
+ * isLoaded={isGoogleMapsLoaded}
1521
+ * onChange={(location) => setLocation(location)}
1522
+ * />
1523
+ * ```
1524
+ */
744
1525
  interface FormProps {
1526
+ /** Form type to render */
745
1527
  type: "location";
1528
+ /** Whether Google Maps API is loaded (required for location form) */
746
1529
  isLoaded: boolean;
747
1530
  }
748
1531
 
749
1532
  declare const CurrencySelector: (props: CurrencySelectorProps) => react_jsx_runtime.JSX.Element;
750
1533
 
1534
+ /**
1535
+ * Currency selector dropdown with modal for choosing from available currencies.
1536
+ * Displays symbol and currency code (e.g., "€ EUR"). Responsive with full-screen modal on mobile.
1537
+ *
1538
+ * @example
1539
+ * ```tsx
1540
+ * <CurrencySelector
1541
+ * options={[
1542
+ * { currency: "EUR", name: "Euro", symbol: "€" },
1543
+ * { currency: "USD", name: "US Dollar", symbol: "$" },
1544
+ * { currency: "GBP", name: "British Pound", symbol: "£" }
1545
+ * ]}
1546
+ * selectedOption={{ currency: "EUR", name: "Euro", symbol: "€" }}
1547
+ * onChange={(option) => setCurrency(option.currency)}
1548
+ * />
1549
+ * ```
1550
+ */
751
1551
  interface CurrencySelectorProps {
752
1552
  style?: React.CSSProperties;
1553
+ /** Available currency options */
753
1554
  options: CurrencySelectorOption[];
1555
+ /** Currently selected currency (defaults to first option) */
754
1556
  selectedOption?: CurrencySelectorOption;
1557
+ /** Callback when currency is selected */
755
1558
  onChange?: (option: CurrencySelectorOption) => void;
756
1559
  }
757
1560
  interface CurrencySelectorOption {
1561
+ /** ISO currency code (e.g., "EUR", "USD") */
758
1562
  currency: string;
1563
+ /** Full currency name (e.g., "Euro") */
759
1564
  name: string;
1565
+ /** Currency symbol (e.g., "€", "$") */
760
1566
  symbol: string;
761
1567
  }
762
1568
 
763
1569
  declare const TextAnimated: ({ children, ...props }: TextAnimatedProps) => react_jsx_runtime.JSX.Element;
764
1570
 
1571
+ /**
1572
+ * Text component with rotating animated words that cycle through options array.
1573
+ * Uses {{data}} placeholder in children string for where animation appears.
1574
+ *
1575
+ * @example
1576
+ * ```tsx
1577
+ * <TextAnimated
1578
+ * type="h1"
1579
+ * options={["developers", "designers", "creators"]}
1580
+ * interval={3000}
1581
+ * >
1582
+ * Built for {{data}}
1583
+ * </TextAnimated>
1584
+ * ```
1585
+ */
765
1586
  type TextAnimatedProps = TextProps & {
1587
+ /** Array of strings to cycle through */
766
1588
  options: string[];
1589
+ /** Time in milliseconds between transitions. Default: 2500ms */
767
1590
  interval?: number;
768
1591
  };
769
1592
 
770
1593
  declare const Hover: ({ children, modalProps, ...props }: HoverProps) => react_jsx_runtime.JSX.Element;
771
1594
 
1595
+ /**
1596
+ * Hover trigger component that displays content on hover.
1597
+ * Content appears below the trigger element with shadow and border.
1598
+ *
1599
+ * @example
1600
+ * ```tsx
1601
+ * <Hover modalProps={{ children: <div>Hover content here</div> }}>
1602
+ * <button>Hover over me</button>
1603
+ * </Hover>
1604
+ * ```
1605
+ */
772
1606
  interface HoverProps extends ComponentPropsWithoutRef<"div"> {
1607
+ /** Props for the hover content container (including children to display) */
773
1608
  modalProps: React.ComponentProps<"div">;
774
1609
  }
775
1610