@wix/form-public 0.18.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,56 +1,867 @@
1
+ import { ErrorType } from '@wix/ambassador-forms-v1-validation-result/types';
2
+ import { FieldType } from '@wix/form-fields';
1
3
  import { Form as Form_2 } from '@wix/ambassador-forms-v4-form/types';
2
- import { FormError } from '@wix/form-viewer';
3
- import { FormFields } from '@wix/form-viewer';
4
- import { FormValues } from '@wix/form-viewer';
5
4
  import { JSX as JSX_2 } from 'react/jsx-runtime';
5
+ import { requests } from '@wix/ambassador-forms-v4-submission/build/cjs/proto/client/proto-generated';
6
+ import { RichContent } from '@wix/ricos';
6
7
 
7
8
  export declare const AppointmentMapper: PropsMapper;
8
9
 
10
+ /**
11
+ * Props for appointment field.
12
+ * Field allows users to select a date and time for an appointment.
13
+ * Used with fieldMap key: APPOINTMENT
14
+ *
15
+ * @interface AppointmentProps
16
+ *
17
+ * @property {string} id - The unique identifier for the form field
18
+ * @property {string | null | undefined} value - The current value of the form field (ISO datetime string format: YYYY-MM-DDTHH:mm)
19
+ * @property {boolean} required - Whether the field is required for form submission
20
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
21
+ * @property {string} label - The display label for the form field
22
+ * @property {boolean} showLabel - Whether to display the field label
23
+ * @property {RichContent} [description] - Optional rich content description for the field
24
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
25
+ * @property {function} onChange - Callback function called when the appointment value changes
26
+ * @property {function} onBlur - Callback function called when the field loses focus
27
+ * @property {function} onFocus - Callback function called when the field gains focus
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * const appointmentField: AppointmentProps = {
32
+ * id: 'appointment',
33
+ * value: '2024-12-25T14:30',
34
+ * required: true,
35
+ * readOnly: false,
36
+ * label: 'Appointment Date & Time',
37
+ * showLabel: true,
38
+ * description: { nodes: [{ type: 'text', text: 'Choose your preferred appointment time' }] },
39
+ * onChange: (value) => console.log('Appointment changed:', value),
40
+ * onBlur: () => console.log('Field blurred'),
41
+ * onFocus: () => console.log('Field focused')
42
+ * };
43
+ * ```
44
+ */
45
+ declare interface AppointmentProps extends BaseFieldProps {
46
+ value: string | null | undefined;
47
+ label: string;
48
+ showLabel: boolean;
49
+ description?: RichContent;
50
+ }
51
+ export { AppointmentProps }
52
+ export { AppointmentProps as AppointmentProps_alias_1 }
53
+
54
+ export declare interface AppointmentSubmitData {
55
+ startDate: string;
56
+ endDate: string;
57
+ timeZone: string;
58
+ }
59
+
60
+ declare interface BaseCheckboxProps extends BaseFieldProps {
61
+ value: boolean;
62
+ label: RichContent;
63
+ defaultValue: boolean;
64
+ }
65
+
66
+ declare interface BaseFieldProps {
67
+ id: string;
68
+ required: boolean;
69
+ readOnly: boolean;
70
+ error: string | undefined;
71
+ onChange: (value: unknown) => void;
72
+ onBlur: () => void;
73
+ onFocus: () => void;
74
+ }
75
+
9
76
  export declare const BaseMapper: PropsMapper;
10
77
 
78
+ declare interface BaseTextFieldProps extends BaseFieldProps {
79
+ value: string | null | undefined;
80
+ label: string;
81
+ showLabel: boolean;
82
+ placeholder?: string;
83
+ description?: RichContent;
84
+ }
85
+
86
+ declare const CALLING_COUNTRY_CODES: {
87
+ readonly AW: "ABW";
88
+ readonly AO: "AGO";
89
+ readonly AF: "AFG";
90
+ readonly AI: "AIA";
91
+ readonly AX: "ALA";
92
+ readonly AL: "ALB";
93
+ readonly AD: "AND";
94
+ readonly AE: "ARE";
95
+ readonly AR: "ARG";
96
+ readonly AM: "ARM";
97
+ readonly AS: "ASM";
98
+ readonly AG: "ATG";
99
+ readonly AU: "AUS";
100
+ readonly AT: "AUT";
101
+ readonly AZ: "AZE";
102
+ readonly BI: "BDI";
103
+ readonly BE: "BEL";
104
+ readonly BJ: "BEN";
105
+ readonly BQ: "BES";
106
+ readonly BF: "BFA";
107
+ readonly BD: "BGD";
108
+ readonly BG: "BGR";
109
+ readonly BH: "BHR";
110
+ readonly BS: "BHS";
111
+ readonly BA: "BIH";
112
+ readonly BL: "BLM";
113
+ readonly BY: "BLR";
114
+ readonly BZ: "BLZ";
115
+ readonly BM: "BMU";
116
+ readonly BO: "BOL";
117
+ readonly BR: "BRA";
118
+ readonly BB: "BRB";
119
+ readonly BN: "BRN";
120
+ readonly BT: "BTN";
121
+ readonly BW: "BWA";
122
+ readonly CF: "CAF";
123
+ readonly CA: "CAN";
124
+ readonly CC: "CCK";
125
+ readonly CH: "CHE";
126
+ readonly CL: "CHL";
127
+ readonly CN: "CHN";
128
+ readonly CI: "CIV";
129
+ readonly CM: "CMR";
130
+ readonly CD: "COD";
131
+ readonly CG: "COG";
132
+ readonly CK: "COK";
133
+ readonly CO: "COL";
134
+ readonly KM: "COM";
135
+ readonly CV: "CPV";
136
+ readonly CR: "CRI";
137
+ readonly CW: "CUW";
138
+ readonly CX: "CXR";
139
+ readonly KY: "CYM";
140
+ readonly CY: "CYP";
141
+ readonly CZ: "CZE";
142
+ readonly DE: "DEU";
143
+ readonly DJ: "DJI";
144
+ readonly DM: "DMA";
145
+ readonly DK: "DNK";
146
+ readonly DO: "DOM";
147
+ readonly DZ: "DZA";
148
+ readonly EC: "ECU";
149
+ readonly EG: "EGY";
150
+ readonly ER: "ERI";
151
+ readonly ES: "ESP";
152
+ readonly EE: "EST";
153
+ readonly ET: "ETH";
154
+ readonly FI: "FIN";
155
+ readonly FJ: "FJI";
156
+ readonly FK: "FLK";
157
+ readonly FR: "FRA";
158
+ readonly FO: "FRO";
159
+ readonly FM: "FSM";
160
+ readonly GA: "GAB";
161
+ readonly GB: "GBR";
162
+ readonly GE: "GEO";
163
+ readonly GG: "GGY";
164
+ readonly GH: "GHA";
165
+ readonly GI: "GIB";
166
+ readonly GN: "GIN";
167
+ readonly GP: "GLP";
168
+ readonly GM: "GMB";
169
+ readonly GW: "GNB";
170
+ readonly GQ: "GNQ";
171
+ readonly GR: "GRC";
172
+ readonly GD: "GRD";
173
+ readonly GL: "GRL";
174
+ readonly GT: "GTM";
175
+ readonly GF: "GUF";
176
+ readonly GU: "GUM";
177
+ readonly GY: "GUY";
178
+ readonly HK: "HKG";
179
+ readonly HN: "HND";
180
+ readonly HR: "HRV";
181
+ readonly HT: "HTI";
182
+ readonly HU: "HUN";
183
+ readonly ID: "IDN";
184
+ readonly IM: "IMN";
185
+ readonly IN: "IND";
186
+ readonly IO: "IOT";
187
+ readonly IE: "IRL";
188
+ readonly IS: "ISL";
189
+ readonly IL: "ISR";
190
+ readonly IT: "ITA";
191
+ readonly IQ: "IRQ";
192
+ readonly JM: "JAM";
193
+ readonly JE: "JEY";
194
+ readonly JO: "JOR";
195
+ readonly JP: "JPN";
196
+ readonly KZ: "KAZ";
197
+ readonly KE: "KEN";
198
+ readonly KG: "KGZ";
199
+ readonly KH: "KHM";
200
+ readonly KI: "KIR";
201
+ readonly KN: "KNA";
202
+ readonly KR: "KOR";
203
+ readonly KW: "KWT";
204
+ readonly LA: "LAO";
205
+ readonly LB: "LBN";
206
+ readonly LR: "LBR";
207
+ readonly LY: "LBY";
208
+ readonly LC: "LCA";
209
+ readonly LI: "LIE";
210
+ readonly LK: "LKA";
211
+ readonly LS: "LSO";
212
+ readonly LT: "LTU";
213
+ readonly LU: "LUX";
214
+ readonly LV: "LVA";
215
+ readonly MO: "MAC";
216
+ readonly MF: "MAF";
217
+ readonly MA: "MAR";
218
+ readonly MC: "MCO";
219
+ readonly MD: "MDA";
220
+ readonly MG: "MDG";
221
+ readonly MV: "MDV";
222
+ readonly MX: "MEX";
223
+ readonly MH: "MHL";
224
+ readonly MK: "MKD";
225
+ readonly ML: "MLI";
226
+ readonly MT: "MLT";
227
+ readonly MM: "MMR";
228
+ readonly ME: "MNE";
229
+ readonly MN: "MNG";
230
+ readonly MP: "MNP";
231
+ readonly MZ: "MOZ";
232
+ readonly MR: "MRT";
233
+ readonly MS: "MSR";
234
+ readonly MQ: "MTQ";
235
+ readonly MU: "MUS";
236
+ readonly MW: "MWI";
237
+ readonly MY: "MYS";
238
+ readonly YT: "MYT";
239
+ readonly NA: "NAM";
240
+ readonly NC: "NCL";
241
+ readonly NE: "NER";
242
+ readonly NF: "NFK";
243
+ readonly NG: "NGA";
244
+ readonly NI: "NIC";
245
+ readonly NU: "NIU";
246
+ readonly NL: "NLD";
247
+ readonly NO: "NOR";
248
+ readonly NP: "NPL";
249
+ readonly NR: "NRU";
250
+ readonly NZ: "NZL";
251
+ readonly OM: "OMN";
252
+ readonly PK: "PAK";
253
+ readonly PA: "PAN";
254
+ readonly PE: "PER";
255
+ readonly PH: "PHL";
256
+ readonly PW: "PLW";
257
+ readonly PG: "PNG";
258
+ readonly PL: "POL";
259
+ readonly PR: "PRI";
260
+ readonly PT: "PRT";
261
+ readonly PY: "PRY";
262
+ readonly PS: "PSE";
263
+ readonly PF: "PYF";
264
+ readonly QA: "QAT";
265
+ readonly RE: "REU";
266
+ readonly RO: "ROU";
267
+ readonly RU: "RUS";
268
+ readonly RW: "RWA";
269
+ readonly SA: "SAU";
270
+ readonly SD: "SDN";
271
+ readonly SN: "SEN";
272
+ readonly SG: "SGP";
273
+ readonly SH: "SHN";
274
+ readonly SJ: "SJM";
275
+ readonly SB: "SLB";
276
+ readonly SL: "SLE";
277
+ readonly SV: "SLV";
278
+ readonly SM: "SMR";
279
+ readonly SO: "SOM";
280
+ readonly PM: "SPM";
281
+ readonly RS: "SRB";
282
+ readonly SS: "SSD";
283
+ readonly ST: "STP";
284
+ readonly SR: "SUR";
285
+ readonly SK: "SVK";
286
+ readonly SI: "SVN";
287
+ readonly SE: "SWE";
288
+ readonly SZ: "SWZ";
289
+ readonly SX: "SXM";
290
+ readonly SC: "SYC";
291
+ readonly TC: "TCA";
292
+ readonly TD: "TCD";
293
+ readonly TG: "TGO";
294
+ readonly TH: "THA";
295
+ readonly TJ: "TJK";
296
+ readonly TK: "TKL";
297
+ readonly TM: "TKM";
298
+ readonly TL: "TLS";
299
+ readonly TO: "TON";
300
+ readonly TT: "TTO";
301
+ readonly TN: "TUN";
302
+ readonly TR: "TUR";
303
+ readonly TV: "TUV";
304
+ readonly TW: "TWN";
305
+ readonly TZ: "TZA";
306
+ readonly UG: "UGA";
307
+ readonly UA: "UKR";
308
+ readonly UY: "URY";
309
+ readonly US: "USA";
310
+ readonly UZ: "UZB";
311
+ readonly VA: "VAT";
312
+ readonly VC: "VCT";
313
+ readonly VE: "VEN";
314
+ readonly VG: "VGB";
315
+ readonly VI: "VIR";
316
+ readonly VN: "VNM";
317
+ readonly VU: "VUT";
318
+ readonly WF: "WLF";
319
+ readonly WS: "WSM";
320
+ readonly XK: "KOS";
321
+ readonly YE: "YEM";
322
+ readonly ZA: "ZAF";
323
+ readonly ZM: "ZMB";
324
+ readonly ZW: "ZWE";
325
+ };
326
+
327
+ declare type CallingCountryCode = keyof typeof CALLING_COUNTRY_CODES;
328
+ export { CallingCountryCode }
329
+ export { CallingCountryCode as CallingCountryCode_alias_1 }
330
+
11
331
  export declare const CheckboxGroupMapper: PropsMapper;
12
332
 
333
+ /**
334
+ * Props for checkbox group field.
335
+ * Field allows to choose multiple options from a list.
336
+ * Used with fieldMap key: CHECKBOX_GROUP
337
+ *
338
+ * @interface CheckboxGroupProps
339
+ *
340
+ * @property {string} id - The unique identifier for the form field
341
+ * @property {string[] | null | undefined} value - The current values of the checkbox group (array of selected option values)
342
+ * @property {string} label - The display label for the form field
343
+ * @property {boolean} showLabel - Whether to display the field label
344
+ * @property {boolean} required - Whether the field is required for form submission
345
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
346
+ * @property {ChoiceOption[]} options - Array of checkbox options with id, value, label, and default properties
347
+ * @property {1 | 2 | 3} numberOfColumns - Number of columns for layout (1, 2, or 3)
348
+ * @property {Object} customOption - Configuration for custom "Other" option with text input
349
+ * @property {string} customOption.label - Label for the custom option checkbox
350
+ * @property {string} customOption.placeholder - Placeholder text for the custom option input
351
+ * @property {number} [minItems] - Minimum number of items that must be selected
352
+ * @property {number} [maxItems] - Maximum number of items that can be selected
353
+ * @property {RichContent} [description] - Optional rich content description for the field
354
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
355
+ * @property {function} onChange - Callback function called when the checkbox group values change
356
+ * @property {function} onBlur - Callback function called when the field loses focus
357
+ * @property {function} onFocus - Callback function called when the field gains focus
358
+ */
359
+ declare interface CheckboxGroupProps extends BaseFieldProps {
360
+ value: string[] | null | undefined;
361
+ label: string;
362
+ showLabel: boolean;
363
+ options: ChoiceOption[];
364
+ description?: RichContent;
365
+ numberOfColumns: 1 | 2 | 3;
366
+ customOption: CustomOption;
367
+ maxItems?: number;
368
+ minItems?: number;
369
+ }
370
+ export { CheckboxGroupProps }
371
+ export { CheckboxGroupProps as CheckboxGroupProps_alias_1 }
372
+
13
373
  export declare const CheckboxMapper: PropsMapper;
14
374
 
375
+ /**
376
+ * Props for checkbox field.
377
+ * Field allows to collect a boolean answer.
378
+ * Used with fieldMap key: CHECKBOX
379
+ *
380
+ * @interface CheckboxProps
381
+ *
382
+ * @property {string} id - The unique identifier for the form field
383
+ * @property {boolean} value - The current value of the form field
384
+ * @property {boolean} required - Whether the field is required for form submission
385
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
386
+ * @property {RichContent} label - The display label for the form field
387
+ * @property {boolean} defaultValue - The default checked state for the checkbox
388
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
389
+ * @property {function} onChange - Callback function called when the field value changes
390
+ * @property {function} onBlur - Callback function called when the field loses focus
391
+ * @property {function} onFocus - Callback function called when the field gains focus
392
+ *
393
+ * @example
394
+ * ```tsx
395
+ * const checkboxField: CheckboxProps = {
396
+ * id: 'agree',
397
+ * value: true,
398
+ * required: true,
399
+ * readOnly: false,
400
+ * label: { nodes: [{ type: 'text', text: 'I agree to the terms and conditions' }] },
401
+ * defaultValue: false,
402
+ * onChange: (value) => console.log('Value changed:', value),
403
+ * onBlur: () => console.log('Field blurred'),
404
+ * onFocus: () => console.log('Field focused')
405
+ * };
406
+ * ```
407
+ */
408
+ declare interface CheckboxProps extends BaseCheckboxProps {
409
+ }
410
+ export { CheckboxProps }
411
+ export { CheckboxProps as CheckboxProps_alias_1 }
412
+
413
+ declare interface ChoiceOption {
414
+ id: string;
415
+ value: string;
416
+ label: string;
417
+ default: boolean;
418
+ }
419
+
15
420
  export declare type Currency = {
16
421
  sign?: string;
17
422
  code?: string;
18
423
  };
19
424
 
425
+ declare interface CustomOption {
426
+ label: string;
427
+ placeholder: string;
428
+ }
429
+
20
430
  export declare const DateInputMapper: PropsMapper;
21
431
 
432
+ /**
433
+ * Props for date input field.
434
+ * Used with fieldMap key: DATE_INPUT
435
+ * The field MUST render 3 separate number inputs on the UI for day, month and year.
436
+ *
437
+ * @interface DateInputProps
438
+ *
439
+ * @property {string} id - The unique identifier for the form field
440
+ * @property {string | null | undefined} value - The current value of the form field (ISO date string format: YYYY-MM-DD)
441
+ * @property {string} label - The display label for the form field
442
+ * @property {boolean} required - Whether the field is required for form submission
443
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
444
+ * @property {RichContent} [description] - Optional rich content description for the field
445
+ * @property {boolean} showLabel - Whether to display the field label
446
+ * @property {boolean} showPlaceholder - Whether to show placeholder text for the date inputs
447
+ * @property {'SUNDAY' | 'MONDAY'} [firstDayOfWeek] - The first day of the week for date calculations (defaults to 'SUNDAY')
448
+ * @property {'all' | 'past' | 'future'} [acceptedDates] - Which dates are accepted for selection (defaults to 'all')
449
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
450
+ * @property {function} onChange - Callback function called when the field value changes
451
+ * @property {function} onBlur - Callback function called when the field loses focus
452
+ * @property {function} onFocus - Callback function called when the field gains focus
453
+ *
454
+ * @example
455
+ * ```tsx
456
+ * const dateField: DateInputProps = {
457
+ * id: 'event-date',
458
+ * value: '2024-12-25',
459
+ * label: 'Event Date',
460
+ * required: true,
461
+ * readOnly: false,
462
+ * showLabel: true,
463
+ * showPlaceholder: true,
464
+ * firstDayOfWeek: 'MONDAY',
465
+ * acceptedDates: 'future',
466
+ * onChange: (value) => console.log('Value changed:', value),
467
+ * onBlur: () => console.log('Field blurred'),
468
+ * onFocus: () => console.log('Field focused')
469
+ * };
470
+ * ```
471
+ */
472
+ declare interface DateInputProps extends BaseFieldProps {
473
+ value: string | null | undefined;
474
+ label: string;
475
+ showLabel: boolean;
476
+ showPlaceholder: boolean;
477
+ showDateLabels: boolean;
478
+ acceptedDates: 'all' | 'past' | 'future';
479
+ description?: RichContent;
480
+ }
481
+ export { DateInputProps }
482
+ export { DateInputProps as DateInputProps_alias_1 }
483
+
22
484
  export declare const DatePickerMapper: PropsMapper;
23
485
 
486
+ /**
487
+ * Props for date picker field.
488
+ * Field allows to select a date from a calendar.
489
+ * Used with fieldMap key: DATE_PICKER
490
+ *
491
+ * @interface DatePickerProps
492
+ *
493
+ * @property {string} id - The unique identifier for the form field
494
+ * @property {string | null | undefined} value - The current value of the form field (ISO date string format: YYYY-MM-DD)
495
+ * @property {string} label - The display label for the form field
496
+ * @property {boolean} required - Whether the field is required for form submission
497
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
498
+ * @property {RichContent} [description] - Optional rich content description for the field
499
+ * @property {boolean} showLabel - Whether to display the field label
500
+ * @property {string} [placeholder] - Placeholder text for the date picker input
501
+ * @property {'SUNDAY' | 'MONDAY'} [firstDayOfWeek] - The first day of the week for the calendar (defaults to 'SUNDAY')
502
+ * @property {'all' | 'past' | 'future'} [acceptedDates] - Which dates are accepted for selection (defaults to 'all')
503
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
504
+ * @property {function} onChange - Callback function called when the field value changes
505
+ * @property {function} onBlur - Callback function called when the field loses focus
506
+ * @property {function} onFocus - Callback function called when the field gains focus
507
+ *
508
+ * @example
509
+ * ```tsx
510
+ * const dateField: DatePickerProps = {
511
+ * id: 'appointment-date',
512
+ * value: '2024-12-25',
513
+ * label: 'Appointment Date',
514
+ * required: true,
515
+ * readOnly: false,
516
+ * showLabel: true,
517
+ * placeholder: 'Select a date',
518
+ * firstDayOfWeek: 'MONDAY',
519
+ * acceptedDates: 'future',
520
+ * onChange: (value) => console.log('Value changed:', value),
521
+ * onBlur: () => console.log('Field blurred'),
522
+ * onFocus: () => console.log('Field focused')
523
+ * };
524
+ * ```
525
+ */
526
+ declare interface DatePickerProps extends BaseFieldProps {
527
+ value: string | null | undefined;
528
+ label: string;
529
+ showLabel: boolean;
530
+ placeholder?: string;
531
+ firstDayOfWeek?: 'SUNDAY' | 'MONDAY';
532
+ acceptedDates: 'all' | 'past' | 'future';
533
+ description?: RichContent;
534
+ }
535
+ export { DatePickerProps }
536
+ export { DatePickerProps as DatePickerProps_alias_1 }
537
+
24
538
  export declare const DateTimeInputMapper: PropsMapper;
25
539
 
540
+ /**
541
+ * Props for date time input field.
542
+ * Field allows to enter a date and time.
543
+ * Used with fieldMap key: DATE_TIME_INPUT
544
+ *
545
+ * @interface DateTimeInputProps
546
+ *
547
+ * @property {string} id - The unique identifier for the form field
548
+ * @property {string | null | undefined} value - The current value of the form field (ISO datetime string format: YYYY-MM-DDTHH:mm)
549
+ * @property {string} label - The display label for the form field
550
+ * @property {boolean} required - Whether the field is required for form submission
551
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
552
+ * @property {RichContent} [description] - Optional rich content description for the field
553
+ * @property {boolean} showLabel - Whether to display the field label
554
+ * @property {boolean} showDateLabels - Whether to display individual labels for date and time inputs
555
+ * @property {boolean} showPlaceholder - Whether to show placeholder text in the inputs
556
+ * @property {boolean} use24HourFormat - Whether to use 24-hour format for time input (defaults to true)
557
+ * @property {'all' | 'past' | 'future'} [acceptedDates] - Which dates are accepted for selection (defaults to 'all')
558
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
559
+ * @property {function} onChange - Callback function called when the field value changes
560
+ * @property {function} onBlur - Callback function called when the field loses focus
561
+ * @property {function} onFocus - Callback function called when the field gains focus
562
+ *
563
+ * @example
564
+ * ```tsx
565
+ * const dateTimeField: DateTimeInputProps = {
566
+ * id: 'appointment-datetime',
567
+ * value: '2024-12-25T14:30',
568
+ * label: 'Appointment Date & Time',
569
+ * required: true,
570
+ * readOnly: false,
571
+ * showLabel: true,
572
+ * showDateLabels: true,
573
+ * showPlaceholder: true,
574
+ * use24HourFormat: true,
575
+ * acceptedDates: 'future',
576
+ * onChange: (value) => console.log('Value changed:', value),
577
+ * onBlur: () => console.log('Field blurred'),
578
+ * onFocus: () => console.log('Field focused')
579
+ * };
580
+ * ```
581
+ */
582
+ declare interface DateTimeInputProps extends BaseFieldProps {
583
+ value: string | null | undefined;
584
+ label: string;
585
+ showLabel: boolean;
586
+ showDateLabels: boolean;
587
+ showPlaceholder: boolean;
588
+ use24HourFormat: boolean;
589
+ acceptedDates: 'all' | 'past' | 'future';
590
+ description?: RichContent;
591
+ }
592
+ export { DateTimeInputProps }
593
+ export { DateTimeInputProps as DateTimeInputProps_alias_1 }
594
+
26
595
  export declare const DonationMapper: PropsMapper;
27
596
 
597
+ /**
598
+ * Props for donation field.
599
+ * Field allows users to select a donation amount.
600
+ * Used with fieldMap key: DONATION
601
+ *
602
+ * @interface DonationProps
603
+ *
604
+ * @property {string} id - The unique identifier for the form field
605
+ * @property {string | null | undefined} value - The current value of the form field
606
+ * @property {boolean} required - Whether the field is required for form submission
607
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
608
+ * @property {string} label - The display label for the form field
609
+ * @property {boolean} showLabel - Whether to display the field label
610
+ * @property {RichContent} [description] - Optional rich content description for the field
611
+ * @property {1 | 2 | 3} numberOfColumns - Number of columns for layout (1, 2, or 3)
612
+ * @property {string} currency - The currency symbol (e.g., '$', '€', '£')
613
+ * @property {string[]} options - Array of predefined donation amounts
614
+ * @property {CustomOption} [customOption] - Optional configuration for custom donation amount input
615
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
616
+ * @property {function} onChange - Callback function called when the field value changes
617
+ * @property {function} onBlur - Callback function called when the field loses focus
618
+ * @property {function} onFocus - Callback function called when the field gains focus
619
+ *
620
+ * @example
621
+ * ```tsx
622
+ * const donationField: DonationProps = {
623
+ * id: 'donation',
624
+ * value: '50.00',
625
+ * required: false,
626
+ * readOnly: false,
627
+ * label: 'Donation Amount',
628
+ * showLabel: true,
629
+ * description: { nodes: [{ type: 'text', text: 'Choose a donation amount' }] },
630
+ * numberOfColumns: 2,
631
+ * currency: '$',
632
+ * options: ['25.00', '50.00', '100.00', '250.00'],
633
+ * customOption: { label: 'Other Amount', placeholder: 'Enter custom amount' },
634
+ * onChange: (value) => console.log('Donation changed:', value),
635
+ * onBlur: () => console.log('Field blurred'),
636
+ * onFocus: () => console.log('Field focused')
637
+ * };
638
+ * ```
639
+ */
640
+ declare interface DonationProps extends BaseFieldProps {
641
+ value: string | null | undefined;
642
+ label: string;
643
+ showLabel: boolean;
644
+ description?: RichContent;
645
+ numberOfColumns: 1 | 2 | 3;
646
+ currency: string;
647
+ options: string[];
648
+ customOption?: CustomOption;
649
+ }
650
+ export { DonationProps }
651
+ export { DonationProps as DonationProps_alias_1 }
652
+
28
653
  export declare const DropdownMapper: PropsMapper;
29
654
 
655
+ /**
656
+ * Props for dropdown field.
657
+ * Field allows to choose one option from a dropdown list.
658
+ * Used with fieldMap key: DROPDOWN
659
+ *
660
+ * @interface DropdownProps
661
+ *
662
+ * @property {string} id - The unique identifier for the form field
663
+ * @property {string | null | undefined} value - The current value of the dropdown (selected option value)
664
+ * @property {string} label - The display label for the form field
665
+ * @property {boolean} showLabel - Whether to display the field label
666
+ * @property {boolean} required - Whether the field is required for form submission
667
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
668
+ * @property {ChoiceOption[]} options - Array of dropdown options with id, value, label, and default properties
669
+ * @property {string} [placeholder] - Placeholder text for the dropdown when no option is selected
670
+ * @property {RichContent} [description] - Optional rich content description for the field
671
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
672
+ * @property {function} onChange - Callback function called when the dropdown value changes
673
+ * @property {function} onBlur - Callback function called when the field loses focus
674
+ * @property {function} onFocus - Callback function called when the field gains focus
675
+ */
676
+ declare interface DropdownProps extends BaseFieldProps {
677
+ value: string | null | undefined;
678
+ label: string;
679
+ showLabel: boolean;
680
+ options: ChoiceOption[];
681
+ placeholder?: string;
682
+ description?: RichContent;
683
+ }
684
+ export { DropdownProps }
685
+ export { DropdownProps as DropdownProps_alias_1 }
686
+
30
687
  export declare const ErrorMapper: PropsMapper;
31
688
 
32
689
  export declare const FIELD_PROP_MAP: FieldMappers;
33
690
 
34
- export declare const FIELD_TYPE_MAP: Record<string, string>;
691
+ export declare const FIELD_TYPE_MAP: Record<FieldType, string>;
35
692
 
36
693
  export declare type FieldMappers = Record<string, PropsMapper>;
37
694
 
695
+ /**
696
+ * Data structure for uploaded file information.
697
+ *
698
+ * @interface FileData
699
+ *
700
+ * @property {string} fileId - Unique identifier for the uploaded file
701
+ * @property {string} displayName - Human-readable name for the file
702
+ * @property {string} url - URL where the file can be accessed
703
+ * @property {string} fileType - MIME type or file extension of the uploaded file
704
+ *
705
+ * @example
706
+ * ```tsx
707
+ * const fileData: FileData = {
708
+ * fileId: 'file_123456789',
709
+ * displayName: 'document.pdf',
710
+ * url: 'https://example.com/uploads/document.pdf',
711
+ * fileType: 'application/pdf'
712
+ * };
713
+ * ```
714
+ */
715
+ declare interface FileData {
716
+ fileId: string;
717
+ displayName: string;
718
+ url: string;
719
+ fileType: string;
720
+ }
721
+
722
+ declare type FileFormat = 'Video' | 'Image' | 'Audio' | 'Document' | 'Archive';
723
+
38
724
  export declare const FileUploadMapper: PropsMapper;
39
725
 
726
+ /**
727
+ * Props for file upload field.
728
+ * Used with fieldMap key: FILE_UPLOAD
729
+ *
730
+ * @interface FileUploadProps
731
+ *
732
+ * @property {string} id - The unique identifier for the form field
733
+ * @property {FileData[] | null | undefined} value - The current value of the form field (array of uploaded file data)
734
+ * @property {boolean} required - Whether the field is required for form submission
735
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
736
+ * @property {string} label - The display label for the form field
737
+ * @property {boolean} showLabel - Whether to display the field label
738
+ * @property {RichContent} [description] - Optional rich content description for the field
739
+ * @property {string} [buttonText] - Optional custom text for the upload button
740
+ * @property {number} [maxFiles] - Optional maximum number of files allowed
741
+ * @property {FileFormat[]} [allowedFileFormats] - Optional array of allowed file format extensions (e.g., [".pdf", ".doc", ".docx"])
742
+ * @property {string} [explanationText] - Optional explanatory text to display below the upload area
743
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
744
+ * @property {function} onChange - Callback function called when the field value changes
745
+ * @property {function} onBlur - Callback function called when the field loses focus
746
+ * @property {function} onFocus - Callback function called when the field gains focus
747
+ *
748
+ * @example
749
+ * ```tsx
750
+ * const fileUploadField: FileUploadProps = {
751
+ * id: 'documents',
752
+ * value: null,
753
+ * required: true,
754
+ * readOnly: false,
755
+ * label: 'Upload Documents',
756
+ * showLabel: true,
757
+ * description: { nodes: [{ type: 'text', text: 'Upload your documents (PDF, DOC, DOCX)' }] },
758
+ * buttonText: 'Choose Files',
759
+ * allowedFileFormats: ['.pdf', '.doc', '.docx'],
760
+ * explanationText: 'Maximum file size: 10MB',
761
+ * maxFiles: 5,
762
+ * onChange: (files) => console.log('Files changed:', files),
763
+ * onBlur: () => console.log('Field blurred'),
764
+ * onFocus: () => console.log('Field focused')
765
+ * };
766
+ * ```
767
+ */
768
+ declare interface FileUploadProps extends BaseFieldProps {
769
+ value: FileData[] | null | undefined;
770
+ label: string;
771
+ showLabel: boolean;
772
+ description?: RichContent;
773
+ buttonText?: string;
774
+ maxFiles?: number;
775
+ allowedFileFormats?: FileFormat[];
776
+ explanationText?: string;
777
+ }
778
+ export { FileUploadProps }
779
+ export { FileUploadProps as FileUploadProps_alias_1 }
780
+
40
781
  export declare const FixedPaymentMapper: PropsMapper;
41
782
 
783
+ /**
784
+ * Props for fixed payment field.
785
+ * Field displays a fixed payment amount with currency.
786
+ * Used with fieldMap key: FIXED_PAYMENT
787
+ *
788
+ * @interface FixedPaymentProps
789
+ *
790
+ * @property {string} label - The display label for the form field
791
+ * @property {boolean} showLabel - Whether to display the field label
792
+ * @property {number} amount - The fixed payment amount
793
+ * @property {string} currency - The currency symbol (e.g., '$', '€', '£')
794
+ * @property {RichContent} [description] - Optional rich content description for the field
795
+ *
796
+ * @example
797
+ * ```tsx
798
+ * const fixedPaymentField: FixedPaymentProps = {
799
+ * label: 'Payment Amount',
800
+ * showLabel: true,
801
+ * amount: 29.99,
802
+ * currency: '$',
803
+ * description: { nodes: [{ type: 'text', text: 'This is a one-time payment' }] }
804
+ * };
805
+ * ```
806
+ */
807
+ declare interface FixedPaymentProps {
808
+ label: string;
809
+ showLabel: boolean;
810
+ amount: number;
811
+ currency: string;
812
+ description?: RichContent;
813
+ }
814
+ export { FixedPaymentProps }
815
+ export { FixedPaymentProps as FixedPaymentProps_alias_1 }
816
+
42
817
  declare const Form: ({ form: unformattedForm, fields, values, onChange, errors, onValidate, }: FormProps) => JSX_2.Element;
43
818
  export { Form }
44
819
  export { Form as Form_alias_1 }
45
820
 
821
+ declare interface FormError {
822
+ errorPath: string;
823
+ errorType: ErrorType;
824
+ errorMessage: string;
825
+ params?: object;
826
+ useCustomErrorMessage?: boolean;
827
+ }
46
828
  export { FormError }
829
+ export { FormError as FormError_alias_1 }
47
830
 
831
+ declare type FormFields = {
832
+ TEXT_INPUT: React.ComponentType<TextInputProps>;
833
+ TEXT_AREA: React.ComponentType<TextAreaProps>;
834
+ PHONE_INPUT: React.ComponentType<PhoneInputProps>;
835
+ MULTILINE_ADDRESS: React.ComponentType<MultilineAddressProps>;
836
+ DATE_INPUT: React.ComponentType<DateInputProps>;
837
+ DATE_PICKER: React.ComponentType<DatePickerProps>;
838
+ DATE_TIME_INPUT: React.ComponentType<DateTimeInputProps>;
839
+ FILE_UPLOAD: React.ComponentType<FileUploadProps>;
840
+ NUMBER_INPUT: React.ComponentType<NumberInputProps>;
841
+ CHECKBOX: React.ComponentType<CheckboxProps>;
842
+ SIGNATURE: React.ComponentType<SignatureProps>;
843
+ RATING_INPUT: React.ComponentType<RatingInputProps>;
844
+ RADIO_GROUP: React.ComponentType<RadioGroupProps>;
845
+ CHECKBOX_GROUP: React.ComponentType<CheckboxGroupProps>;
846
+ DROPDOWN: React.ComponentType<DropdownProps>;
847
+ TAGS: React.ComponentType<TagsProps>;
848
+ TIME_INPUT: React.ComponentType<TimeInputProps>;
849
+ TEXT: React.ComponentType<RichTextProps>;
850
+ SUBMIT_BUTTON: React.ComponentType<SubmitButtonProps>;
851
+ PRODUCT_LIST: React.ComponentType<ProductListProps>;
852
+ FIXED_PAYMENT: React.ComponentType<FixedPaymentProps>;
853
+ PAYMENT_INPUT: React.ComponentType<PaymentInputProps>;
854
+ DONATION: React.ComponentType<DonationProps>;
855
+ APPOINTMENT: React.ComponentType<AppointmentProps>;
856
+ IMAGE_CHOICE: React.ComponentType<ImageChoiceProps>;
857
+ };
48
858
  export { FormFields }
859
+ export { FormFields as FormFields_alias_1 }
49
860
 
50
861
  declare type FormProps = {
51
862
  form?: Form_2;
52
863
  values: FormValues;
53
- onChange: (values: FormValues) => void;
864
+ onChange: OnChange;
54
865
  errors: FormError[];
55
866
  onValidate: (errors: FormError[]) => void;
56
867
  fields: FormFields;
@@ -58,12 +869,259 @@ declare type FormProps = {
58
869
  export { FormProps }
59
870
  export { FormProps as FormProps_alias_1 }
60
871
 
872
+ declare type FormValues = {
873
+ [target: string]: PossibleValues;
874
+ };
61
875
  export { FormValues }
876
+ export { FormValues as FormValues_alias_1 }
62
877
 
63
878
  export declare const ImageChoiceMapper: PropsMapper;
64
879
 
880
+ /**
881
+ * Data structure for image choice option.
882
+ * Extends the base ChoiceOption with image-specific properties.
883
+ *
884
+ * @interface ImageChoiceOption
885
+ *
886
+ * @property {string} id - Unique identifier for the option
887
+ * @property {string} value - The value that will be submitted when this option is selected
888
+ * @property {string} label - Display label for the option
889
+ * @property {boolean} default - Whether this option is selected by default
890
+ * @property {Object} image - Image data for the option
891
+ * @property {string | undefined} image.alt - Alt text for accessibility (can be undefined)
892
+ * @property {string} image.id - Unique identifier for the image
893
+ * @property {string} [image.url] - Optional URL for the image source. If not provided, a placeholder will be shown.
894
+ *
895
+ * @example
896
+ * ```tsx
897
+ * const imageOption: ImageChoiceOption = {
898
+ * id: 'red-color',
899
+ * value: 'red',
900
+ * label: 'Red',
901
+ * default: false,
902
+ * image: {
903
+ * alt: 'Red color swatch',
904
+ * id: 'img_red_001',
905
+ * url: 'https://example.com/images/red-swatch.jpg'
906
+ * }
907
+ * };
908
+ * ```
909
+ */
910
+ declare interface ImageChoiceOption extends ChoiceOption {
911
+ image: {
912
+ alt: string | undefined;
913
+ id: string;
914
+ url?: string;
915
+ };
916
+ }
917
+
918
+ /**
919
+ * Props for image choice field.
920
+ * Field allows users to select one or multiple options by clicking on images.
921
+ * Used with fieldMap key: IMAGE_CHOICE
922
+ *
923
+ * @interface ImageChoiceProps
924
+ *
925
+ * @property {string} id - The unique identifier for the form field
926
+ * @property {string | string[] | null | undefined} value - The current value(s) of the image choice field. For single selection, this is a string. For multiple selection, this is an array of strings.
927
+ * @property {boolean} required - Whether the field is required for form submission
928
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
929
+ * @property {string} label - The display label for the form field
930
+ * @property {boolean} showLabel - Whether to display the field label
931
+ * @property {ImageChoiceOption[]} options - Array of image choice options. Each option must include an image object with alt text, id, and optional URL.
932
+ * @property {1 | 2 | 3} numberOfColumns - Number of columns for the grid layout. Determines how many options are displayed per row.
933
+ * @property {boolean} [multiple=false] - Whether multiple selections are allowed. When true, users can select multiple options. When false, only one option can be selected at a time.
934
+ * @property {number} [minItems] - Minimum number of items that must be selected. Only applicable when multiple is true. Used for validation.
935
+ * @property {number} [maxItems] - Maximum number of items that can be selected. Only applicable when multiple is true. Used for validation.
936
+ * @property {RichContent} [description] - Optional rich content description for the field. Can include formatted text, links, etc.
937
+ * @property {string} [error] - Error message to display when validation fails. Undefined when the field is valid.
938
+ * @property {function} onChange - Callback function called when the image choice value(s) change. Receives the new value(s) as parameter.
939
+ * @property {function} onBlur - Callback function called when the field loses focus
940
+ * @property {function} onFocus - Callback function called when the field gains focus
941
+ *
942
+ * @example
943
+ * ```tsx
944
+ * // Single selection example
945
+ * const singleImageChoice: ImageChoiceProps = {
946
+ * id: 'preferred-color',
947
+ * value: 'red',
948
+ * required: true,
949
+ * readOnly: false,
950
+ * label: 'Choose Your Preferred Color',
951
+ * showLabel: true,
952
+ * options: [
953
+ * {
954
+ * id: 'red',
955
+ * value: 'red',
956
+ * label: 'Red',
957
+ * default: false,
958
+ * image: {
959
+ * alt: 'Red color option',
960
+ * id: 'img_red',
961
+ * url: 'https://example.com/red.jpg'
962
+ * }
963
+ * },
964
+ * {
965
+ * id: 'blue',
966
+ * value: 'blue',
967
+ * label: 'Blue',
968
+ * default: false,
969
+ * image: {
970
+ * alt: 'Blue color option',
971
+ * id: 'img_blue',
972
+ * url: 'https://example.com/blue.jpg'
973
+ * }
974
+ * }
975
+ * ],
976
+ * numberOfColumns: 2,
977
+ * multiple: false,
978
+ * description: {
979
+ * nodes: [{ type: 'text', text: 'Select your favorite color from the options below' }]
980
+ * },
981
+ * onChange: (value) => console.log('Color selection changed:', value),
982
+ * onBlur: () => console.log('Field blurred'),
983
+ * onFocus: () => console.log('Field focused')
984
+ * };
985
+ *
986
+ * // Multiple selection example
987
+ * const multipleImageChoice: ImageChoiceProps = {
988
+ * id: 'preferred-features',
989
+ * value: ['feature1', 'feature3'],
990
+ * required: false,
991
+ * readOnly: false,
992
+ * label: 'Select Your Preferred Features',
993
+ * showLabel: true,
994
+ * options: [
995
+ * {
996
+ * id: 'feature1',
997
+ * value: 'feature1',
998
+ * label: 'Fast Loading',
999
+ * default: false,
1000
+ * image: {
1001
+ * alt: 'Fast loading icon',
1002
+ * id: 'img_fast',
1003
+ * url: 'https://example.com/fast.jpg'
1004
+ * }
1005
+ * },
1006
+ * {
1007
+ * id: 'feature2',
1008
+ * value: 'feature2',
1009
+ * label: 'Mobile Friendly',
1010
+ * default: false,
1011
+ * image: {
1012
+ * alt: 'Mobile friendly icon',
1013
+ * id: 'img_mobile',
1014
+ * url: 'https://example.com/mobile.jpg'
1015
+ * }
1016
+ * },
1017
+ * {
1018
+ * id: 'feature3',
1019
+ * value: 'feature3',
1020
+ * label: 'Secure',
1021
+ * default: false,
1022
+ * image: {
1023
+ * alt: 'Security icon',
1024
+ * id: 'img_secure',
1025
+ * url: 'https://example.com/secure.jpg'
1026
+ * }
1027
+ * }
1028
+ * ],
1029
+ * numberOfColumns: 3,
1030
+ * multiple: true,
1031
+ * minItems: 1,
1032
+ * maxItems: 2,
1033
+ * description: {
1034
+ * nodes: [{ type: 'text', text: 'Choose up to 2 features that matter most to you' }]
1035
+ * },
1036
+ * onChange: (values) => console.log('Feature selection changed:', values),
1037
+ * onBlur: () => console.log('Field blurred'),
1038
+ * onFocus: () => console.log('Field focused')
1039
+ * };
1040
+ * ```
1041
+ */
1042
+ declare interface ImageChoiceProps extends BaseFieldProps {
1043
+ value: string | string[] | null | undefined;
1044
+ label: string;
1045
+ showLabel: boolean;
1046
+ options: ImageChoiceOption[];
1047
+ numberOfColumns: 1 | 2 | 3;
1048
+ multiple: boolean;
1049
+ description?: RichContent;
1050
+ imageAspectRatio: 'contain' | 'cover';
1051
+ }
1052
+ export { ImageChoiceProps }
1053
+ export { ImageChoiceProps as ImageChoiceProps_alias_1 }
1054
+
1055
+ declare interface MinMaxLengthProps {
1056
+ minLength: number | undefined;
1057
+ maxLength: number | undefined;
1058
+ }
1059
+
65
1060
  export declare const MultilineAddressMapper: PropsMapper;
66
1061
 
1062
+ /**
1063
+ * Props for multiline address field.
1064
+ * Used with fieldMap key: MULTILINE_ADDRESS
1065
+ * The field MUST render separate inputs on the UI for these values:
1066
+ * 1. Country/Region
1067
+ * 2. Address
1068
+ * 3. Address - line 2 (if showAddressLine2 is true)
1069
+ * 4. City
1070
+ * 5. Zip / Postal Code
1071
+ *
1072
+ * @interface MultilineAddressProps
1073
+ *
1074
+ * @property {string} id - The unique identifier for the form field
1075
+ * @property {MultilineAddressValue | null | undefined} value - The current value of the form field
1076
+ * @property {boolean} required - Whether the field is required for form submission
1077
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
1078
+ * @property {string} label - The display label for the form field
1079
+ * @property {function} onChange - Callback function called when the field value changes
1080
+ * @property {function} onBlur - Callback function called when the field loses focus
1081
+ * @property {function} onFocus - Callback function called when the field gains focus
1082
+ * @property {boolean} showAddressLine2 - Whether to show the address line 2 field
1083
+ * @property {boolean} addressLine2Required - Whether the address line 2 field is required
1084
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
1085
+ *
1086
+ * @example
1087
+ * ```tsx
1088
+ * const multilineAddressField: MultilineAddressProps = {
1089
+ * id: 'multilineAddress',
1090
+ * value: '123 Main Street\nApt 4B\nNew York, NY 10001\nUnited States',
1091
+ * required: true,
1092
+ * readOnly: false,
1093
+ * label: 'Full Address',
1094
+ * showAddressLine2: true,
1095
+ * addressLine2Required: false,
1096
+ * onChange: (value) => console.log('Value changed:', value),
1097
+ * onBlur: () => console.log('Field blurred'),
1098
+ * onFocus: () => console.log('Field focused')
1099
+ * };
1100
+ * ```
1101
+ */
1102
+ declare interface MultilineAddressProps extends BaseFieldProps {
1103
+ label?: string;
1104
+ value: MultilineAddressValue;
1105
+ showAddressLine2: boolean;
1106
+ addressLine2Required?: boolean;
1107
+ }
1108
+ export { MultilineAddressProps }
1109
+ export { MultilineAddressProps as MultilineAddressProps_alias_1 }
1110
+
1111
+ export declare type MultilineAddressSubmission = requests.wix.forms.v4.values.MultilineAddressSubmission;
1112
+
1113
+ declare type MultilineAddressValue = {
1114
+ country?: CallingCountryCode;
1115
+ subdivision?: string;
1116
+ city?: string;
1117
+ addressLine?: string;
1118
+ addressLine2?: string;
1119
+ postalCode?: string;
1120
+ streetName?: string;
1121
+ streetNumber?: string;
1122
+ apartment?: string;
1123
+ };
1124
+
67
1125
  /**
68
1126
  * Normalizes object schema by removing underscore prefixes and converting keys to camelCase
69
1127
  * @param obj - The object to normalize
@@ -73,20 +1131,399 @@ export declare function normalizeSchema<T = unknown>(obj: T): T;
73
1131
 
74
1132
  export declare const NumberInputMapper: PropsMapper;
75
1133
 
1134
+ /**
1135
+ * Props for number input field.
1136
+ * Field allows to give a numerical answer.
1137
+ * Used with fieldMap key: NUMBER_INPUT
1138
+ *
1139
+ * @interface NumberInputProps
1140
+ *
1141
+ * @property {string} id - The unique identifier for the form field
1142
+ * @property {string | number | null | undefined} value - The current value of the form field
1143
+ * @property {boolean} required - Whether the field is required for form submission
1144
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
1145
+ * @property {string} label - The display label for the form field
1146
+ * @property {boolean} showLabel - Whether to display the field label
1147
+ * @property {string} [placeholder] - Optional placeholder text to display when the field is empty
1148
+ * @property {RichContent} [description] - Optional rich content description for the field
1149
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
1150
+ * @property {function} onChange - Callback function called when the field value changes
1151
+ * @property {function} onBlur - Callback function called when the field loses focus
1152
+ * @property {function} onFocus - Callback function called when the field gains focus
1153
+ *
1154
+ * @example
1155
+ * ```tsx
1156
+ * const numberInputField: NumberInputProps = {
1157
+ * id: 'age',
1158
+ * value: 25,
1159
+ * required: true,
1160
+ * readOnly: false,
1161
+ * label: 'Age',
1162
+ * showLabel: true,
1163
+ * placeholder: 'Enter your age',
1164
+ * description: { nodes: [{ type: 'text', text: 'Must be 18 or older' }] },
1165
+ * onChange: (value) => console.log('Value changed:', value),
1166
+ * onBlur: () => console.log('Field blurred'),
1167
+ * onFocus: () => console.log('Field focused')
1168
+ * };
1169
+ * ```
1170
+ */
1171
+ declare interface NumberInputProps extends BaseFieldProps {
1172
+ value: string | number | null | undefined;
1173
+ label: string;
1174
+ showLabel: boolean;
1175
+ placeholder?: string;
1176
+ description?: RichContent;
1177
+ }
1178
+ export { NumberInputProps }
1179
+ export { NumberInputProps as NumberInputProps_alias_1 }
1180
+
1181
+ export declare type OnChange = (values: FormValues) => void;
1182
+
76
1183
  export declare const PaymentInputMapper: PropsMapper;
77
1184
 
1185
+ /**
1186
+ * Props for payment input field.
1187
+ * Field allows users to enter a custom payment amount.
1188
+ * Used with fieldMap key: PAYMENT_INPUT
1189
+ *
1190
+ * @interface PaymentInputProps
1191
+ *
1192
+ * @property {string} id - The unique identifier for the form field
1193
+ * @property {string | null | undefined} value - The current value of the form field
1194
+ * @property {boolean} required - Whether the field is required for form submission
1195
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
1196
+ * @property {string} label - The display label for the form field
1197
+ * @property {boolean} showLabel - Whether to display the field label
1198
+ * @property {boolean} required - Whether the field is required for form submission
1199
+ * @property {string} [placeholder] - Optional placeholder text to display when the field is empty
1200
+ * @property {RichContent} [description] - Optional rich content description for the field
1201
+ * @property {string} currency - The currency symbol (e.g., '$', '€', '£')
1202
+ * @property {string} minValue - Minimum payment amount as string
1203
+ * @property {string} [maxValue] - Optional maximum payment amount as string
1204
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
1205
+ * @property {function} onChange - Callback function called when the field value changes
1206
+ * @property {function} onBlur - Callback function called when the field loses focus
1207
+ * @property {function} onFocus - Callback function called when the field gains focus
1208
+ *
1209
+ * @example
1210
+ * ```tsx
1211
+ * const paymentInputField: PaymentInputProps = {
1212
+ * id: 'payment',
1213
+ * value: '25.50',
1214
+ * required: true,
1215
+ * readOnly: false,
1216
+ * label: 'Payment Amount',
1217
+ * showLabel: true,
1218
+ * required: true,
1219
+ * placeholder: 'Enter amount',
1220
+ * description: { nodes: [{ type: 'text', text: 'Enter your payment amount' }] },
1221
+ * currency: '$',
1222
+ * minValue: '1.00',
1223
+ * maxValue: '1000.00',
1224
+ * onChange: (value) => console.log('Payment changed:', value),
1225
+ * onBlur: () => console.log('Field blurred'),
1226
+ * onFocus: () => console.log('Field focused')
1227
+ * };
1228
+ * ```
1229
+ */
1230
+ declare interface PaymentInputProps extends BaseFieldProps {
1231
+ value: string | null | undefined;
1232
+ label: string;
1233
+ showLabel: boolean;
1234
+ required: boolean;
1235
+ placeholder?: string;
1236
+ description?: RichContent;
1237
+ currency: string;
1238
+ minValue: string;
1239
+ maxValue?: string;
1240
+ }
1241
+ export { PaymentInputProps }
1242
+ export { PaymentInputProps as PaymentInputProps_alias_1 }
1243
+
78
1244
  export declare const PhoneInputMapper: PropsMapper;
79
1245
 
1246
+ /**
1247
+ * Props for contacts phone field.
1248
+ * Used with fieldMap key: CONTACTS_PHONE
1249
+ *
1250
+ * @interface PhoneInputProps
1251
+ *
1252
+ * @property {string} id - The unique identifier for the form field
1253
+ * @property {string | null | undefined} value - The current value of the form field
1254
+ * @property {boolean} required - Whether the field is required for form submission
1255
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
1256
+ * @property {string} label - The display label for the form field
1257
+ * @property {boolean} showLabel - Whether to display the field label
1258
+ * @property {string} [placeholder] - Optional placeholder text to display when the field is empty
1259
+ * @property {RichContent} [description] - Optional rich content description for the field
1260
+ * @property {CallingCountryCode[]} [allowedCountryCodes] - Optional array of allowed country codes for phone number validation
1261
+ * @property {CallingCountryCode} [defaultCountryCode] - Optional default country code to pre-select
1262
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
1263
+ * @property {function} onChange - Callback function called when the field value changes
1264
+ * @property {function} onBlur - Callback function called when the field loses focus
1265
+ * @property {function} onFocus - Callback function called when the field gains focus
1266
+ *
1267
+ * @example
1268
+ * ```tsx
1269
+ * const phoneField: PhoneInputProps = {
1270
+ * id: 'phone',
1271
+ * value: '+1-555-123-4567',
1272
+ * required: true,
1273
+ * readOnly: false,
1274
+ * label: 'Phone Number',
1275
+ * showLabel: true,
1276
+ * placeholder: 'Enter your phone number',
1277
+ * description: { nodes: [{ type: 'text', text: 'Include country code' }] },
1278
+ * allowedCountryCodes: ['US', 'CA', 'GB'],
1279
+ * defaultCountryCode: 'US',
1280
+ * onChange: (value) => console.log('Value changed:', value),
1281
+ * onBlur: () => console.log('Field blurred'),
1282
+ * onFocus: () => console.log('Field focused')
1283
+ * };
1284
+ * ```
1285
+ */
1286
+ declare interface PhoneInputProps extends BaseTextFieldProps {
1287
+ allowedCountryCodes: CallingCountryCode[];
1288
+ defaultCountryCode?: CallingCountryCode;
1289
+ }
1290
+ export { PhoneInputProps }
1291
+ export { PhoneInputProps as PhoneInputProps_alias_1 }
1292
+
1293
+ export declare type PossibleValues = ValueType | {
1294
+ [target: string]: ValueType;
1295
+ };
1296
+
80
1297
  export declare const ProductListMapper: PropsMapper;
81
1298
 
1299
+ /**
1300
+ * Props for product list field.
1301
+ * Field allows to display and select products from a list.
1302
+ * Used with fieldMap key: PRODUCT_LIST
1303
+ *
1304
+ * @interface ProductListProps
1305
+ *
1306
+ * @property {string} id - The unique identifier for the form field
1307
+ * @property {ProductValue | null | undefined} value - The current value of the form field (selected product data)
1308
+ * @property {boolean} required - Whether the field is required for form submission
1309
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
1310
+ * @property {string} label - The display label for the form field
1311
+ * @property {boolean} showLabel - Whether to display the field label
1312
+ * @property {RichContent} [description] - Optional rich content description for the field
1313
+ * @property {ProductOption[]} options - Array of product options with id, value, label, price, quantity limits, and image
1314
+ * @property {number | undefined} minItems - Optional minimum number of products that must be selected
1315
+ * @property {number | undefined} maxItems - Optional maximum number of products that can be selected
1316
+ * @property {string} currency - The price currency symbol
1317
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
1318
+ * @property {function} onChange - Callback function called when the field value changes
1319
+ * @property {function} onBlur - Callback function called when the field loses focus
1320
+ * @property {function} onFocus - Callback function called when the field gains focus
1321
+ *
1322
+ * @example
1323
+ * ```tsx
1324
+ * const productListField: ProductListProps = {
1325
+ * id: 'products',
1326
+ * value: [{ productId: 'prod_123', quantity: 2 }],
1327
+ * required: true,
1328
+ * readOnly: false,
1329
+ * label: 'Select Products',
1330
+ * showLabel: true,
1331
+ * description: { nodes: [{ type: 'text', text: 'Choose your desired products' }] },
1332
+ * options: [
1333
+ * {
1334
+ * id: 'prod_123',
1335
+ * value: 'prod_123',
1336
+ * label: 'Premium Widget',
1337
+ * default: false,
1338
+ * price: '29.99',
1339
+ * minAmount: 1,
1340
+ * maxAmount: 10,
1341
+ * image: { alt: 'Premium Widget', id: 'img_123' }
1342
+ * }
1343
+ * ],
1344
+ * currency: '$',
1345
+ * minItems: 1,
1346
+ * maxItems: 5,
1347
+ * onChange: (value) => console.log('Product selection changed:', value),
1348
+ * onBlur: () => console.log('Field blurred'),
1349
+ * onFocus: () => console.log('Field focused')
1350
+ * };
1351
+ * ```
1352
+ */
1353
+ declare interface ProductListProps extends BaseFieldProps {
1354
+ value: ProductValue_2 | null | undefined;
1355
+ label: string;
1356
+ showLabel: boolean;
1357
+ description?: RichContent;
1358
+ options: ProductOption[];
1359
+ minItems: number | undefined;
1360
+ maxItems: number | undefined;
1361
+ currency: string;
1362
+ }
1363
+ export { ProductListProps }
1364
+ export { ProductListProps as ProductListProps_alias_1 }
1365
+
1366
+ export declare type ProductListValue = ProductValue[];
1367
+
1368
+ declare interface ProductOption extends ChoiceOption {
1369
+ price: string;
1370
+ minAmount: number;
1371
+ maxAmount: number;
1372
+ image: {
1373
+ alt: string | undefined;
1374
+ id: string;
1375
+ };
1376
+ }
1377
+
1378
+ export declare type ProductValue = {
1379
+ productId: string;
1380
+ price: string | number;
1381
+ quantity: number;
1382
+ };
1383
+
1384
+ declare interface ProductValue_2 {
1385
+ productId: string;
1386
+ price: string | number;
1387
+ quantity: number;
1388
+ }
1389
+
82
1390
  export declare type PropsMapper = (props: any) => any;
83
1391
 
84
1392
  export declare const RadioGroupMapper: PropsMapper;
85
1393
 
1394
+ /**
1395
+ * Props for radio group field.
1396
+ * Ask people to choose one option from a list.
1397
+ * Used with fieldMap key: RADIO_GROUP
1398
+ *
1399
+ * @interface RadioGroupProps
1400
+ *
1401
+ * @property {string} id - The unique identifier for the form field
1402
+ * @property {string | null | undefined} value - The current value of the radio group (selected option value)
1403
+ * @property {string} label - The display label for the form field
1404
+ * @property {boolean} showLabel - Whether to display the field label
1405
+ * @property {boolean} required - Whether the field is required for form submission
1406
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
1407
+ * @property {ChoiceOption[]} options - Array of radio button options with id, value, label, and default properties
1408
+ * @property {1 | 2 | 3} numberOfColumns - Number of columns for layout (1, 2, or 3)
1409
+ * @property {Object} customOption - Configuration for custom "Other" option with text input
1410
+ * @property {string} customOption.label - Label for the custom option radio button
1411
+ * @property {string} customOption.placeholder - Placeholder text for the custom option input
1412
+ * @property {RichContent} [description] - Optional rich content description for the field
1413
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
1414
+ * @property {function} onChange - Callback function called when the radio group value changes
1415
+ * @property {function} onBlur - Callback function called when the field loses focus
1416
+ * @property {function} onFocus - Callback function called when the field gains focus
1417
+ */
1418
+ declare interface RadioGroupProps extends BaseFieldProps {
1419
+ value: string | null | undefined;
1420
+ label: string;
1421
+ showLabel: boolean;
1422
+ options: ChoiceOption[];
1423
+ description?: RichContent;
1424
+ numberOfColumns: 1 | 2 | 3;
1425
+ customOption: CustomOption;
1426
+ }
1427
+ export { RadioGroupProps }
1428
+ export { RadioGroupProps as RadioGroupProps_alias_1 }
1429
+
86
1430
  export declare const RatingInputMapper: PropsMapper;
87
1431
 
1432
+ /**
1433
+ * Props for rating input field from 1 to 5.
1434
+ * Field allows to collect feedback on products, services and etc by choosing a rating from 1 to 5.
1435
+ * Used with fieldMap key: RATING_INPUT
1436
+ *
1437
+ * @interface RatingInputProps
1438
+ *
1439
+ * @property {string} id - The unique identifier for the form field
1440
+ * @property {number | null | undefined} value - The current value of the rating field (number between 1 and 5)
1441
+ * @property {number} [defaultValue] - The default value for the rating field (number between 1 and 5)
1442
+ * @property {string} label - The display label for the form field
1443
+ * @property {boolean} showLabel - Whether to display the field label
1444
+ * @property {boolean} required - Whether the field is required for form submission
1445
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
1446
+ * @property {RichContent} [description] - Optional rich content description for the field
1447
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
1448
+ * @property {function} onChange - Callback function called when the rating value changes
1449
+ * @property {function} onBlur - Callback function called when the field loses focus
1450
+ * @property {function} onFocus - Callback function called when the field gains focus
1451
+ */
1452
+ declare interface RatingInputProps extends BaseFieldProps {
1453
+ value: number | null | undefined;
1454
+ defaultValue: number | undefined;
1455
+ label: string;
1456
+ showLabel: boolean;
1457
+ description?: RichContent;
1458
+ }
1459
+ export { RatingInputProps }
1460
+ export { RatingInputProps as RatingInputProps_alias_1 }
1461
+
1462
+ /**
1463
+ * Props for rich text field.
1464
+ * The field is used to display text in the form.
1465
+ * Used with fieldMap key: RICH_TEXT
1466
+ *
1467
+ * @interface RichTextProps
1468
+ *
1469
+ * @property {RichContent} content - The textrich content to display
1470
+ * @property {number} maxShownParagraphs - Maximum number of paragraphs to display before truncating
1471
+ *
1472
+ * @example
1473
+ * ```tsx
1474
+ * const richTextField: RichTextProps = {
1475
+ * content: {
1476
+ * nodes: [
1477
+ * {
1478
+ * type: 'text',
1479
+ * text: 'Please fill out all required fields marked with an asterisk (*).',
1480
+ * marks: [{ type: 'bold' }]
1481
+ * }
1482
+ * ]
1483
+ * },
1484
+ * maxShownParagraphs: 2
1485
+ * };
1486
+ * ```
1487
+ */
1488
+ declare interface RichTextProps {
1489
+ content: RichContent;
1490
+ maxShownParagraphs: number;
1491
+ }
1492
+ export { RichTextProps }
1493
+ export { RichTextProps as RichTextProps_alias_1 }
1494
+
88
1495
  export declare const SignatureMapper: PropsMapper;
89
1496
 
1497
+ /**
1498
+ * Props for signature field.
1499
+ * Used with fieldMap key: SIGNATURE
1500
+ * The field MUST render a signature pad/canvas for capturing user signatures.
1501
+ *
1502
+ * @interface SignatureProps
1503
+ *
1504
+ * @property {string} id - The unique identifier for the form field
1505
+ * @property {FileData | null | undefined} value - The current value of the signature field (FileData object containing signature image data)
1506
+ * @property {string} label - The display label for the form field
1507
+ * @property {boolean} showLabel - Whether to display the field label
1508
+ * @property {boolean} required - Whether the field is required for form submission
1509
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
1510
+ * @property {boolean} imageUploadEnabled - Whether image upload functionality is enabled for the signature field
1511
+ * @property {RichContent} [description] - Optional rich content description for the field
1512
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
1513
+ * @property {function} onChange - Callback function called when the signature value changes
1514
+ * @property {function} onBlur - Callback function called when the field loses focus
1515
+ * @property {function} onFocus - Callback function called when the field gains focus
1516
+ */
1517
+ declare interface SignatureProps extends BaseFieldProps {
1518
+ value: FileData | null | undefined;
1519
+ label: string;
1520
+ showLabel: boolean;
1521
+ imageUploadEnabled: boolean;
1522
+ description?: RichContent;
1523
+ }
1524
+ export { SignatureProps }
1525
+ export { SignatureProps as SignatureProps_alias_1 }
1526
+
90
1527
  export declare interface SiteConfig {
91
1528
  locale: {
92
1529
  country?: string;
@@ -97,14 +1534,234 @@ export declare interface SiteConfig {
97
1534
 
98
1535
  export declare const SubmitButtonMapper: PropsMapper;
99
1536
 
1537
+ /**
1538
+ * Props for submit button field.
1539
+ * The field is used to render a submit button for the form.
1540
+ * Used with fieldMap key: SUBMIT_BUTTON
1541
+ *
1542
+ * @interface SubmitButtonProps
1543
+ *
1544
+ * @property {string} id - The unique identifier for the submit button
1545
+ * @property {string} text - The text to display on the submit button
1546
+ *
1547
+ * @example
1548
+ * ```tsx
1549
+ * const submitButton: SubmitButtonProps = {
1550
+ * id: 'submit',
1551
+ * text: 'Submit Form'
1552
+ * };
1553
+ * ```
1554
+ */
1555
+ declare interface SubmitButtonProps {
1556
+ id: string;
1557
+ text: string;
1558
+ }
1559
+ export { SubmitButtonProps }
1560
+ export { SubmitButtonProps as SubmitButtonProps_alias_1 }
1561
+
100
1562
  export declare const TagsMapper: PropsMapper;
101
1563
 
1564
+ /**
1565
+ * Props for tags field.
1566
+ * Field allows to choose options by selecting tags.
1567
+ * Used with fieldMap key: TAGS
1568
+ *
1569
+ * @interface TagsProps
1570
+ *
1571
+ * @property {string} id - The unique identifier for the form field
1572
+ * @property {string[] | null | undefined} value - The current values of the tags field (array of selected option values)
1573
+ * @property {string} label - The display label for the form field
1574
+ * @property {boolean} showLabel - Whether to display the field label
1575
+ * @property {boolean} required - Whether the field is required for form submission
1576
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
1577
+ * @property {ChoiceOption[]} options - Array of tag options with id, value, label, and default properties
1578
+ * @property {0 | 1 | 2 | 3} numberOfColumns - Number of columns for layout (0 for auto, 1, 2, or 3)
1579
+ * @property {Object} customOption - Configuration for custom "Other" option with text input
1580
+ * @property {string} customOption.label - Label for the custom option
1581
+ * @property {string} customOption.placeholder - Placeholder text for the custom option input
1582
+ * @property {number} [minItems] - Minimum number of tags that must be selected
1583
+ * @property {number} [maxItems] - Maximum number of tags that can be selected
1584
+ * @property {RichContent} [description] - Optional rich content description for the field
1585
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
1586
+ * @property {function} onChange - Callback function called when the tags values change
1587
+ * @property {function} onBlur - Callback function called when the field loses focus
1588
+ * @property {function} onFocus - Callback function called when the field gains focus
1589
+ */
1590
+ declare interface TagsProps extends BaseFieldProps {
1591
+ value: string[] | null | undefined;
1592
+ options: ChoiceOption[];
1593
+ label: string;
1594
+ showLabel: boolean;
1595
+ description?: RichContent;
1596
+ customOption?: CustomOption;
1597
+ numberOfColumns: 0 | 1 | 2 | 3;
1598
+ minItems?: number;
1599
+ maxItems?: number;
1600
+ }
1601
+ export { TagsProps }
1602
+ export { TagsProps as TagsProps_alias_1 }
1603
+
102
1604
  export declare const TextAreaMapper: PropsMapper;
103
1605
 
1606
+ /**
1607
+ * Props for text area field.
1608
+ * Field allows to give a multi-line answer.
1609
+ * Used with fieldMap key: TEXT_AREA
1610
+ *
1611
+ * @interface TextAreaProps
1612
+ *
1613
+ * @property {string} id - The unique identifier for the form field
1614
+ * @property {string | null | undefined} value - The current value of the form field
1615
+ * @property {boolean} required - Whether the field is required for form submission
1616
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
1617
+ * @property {string} label - The display label for the form field
1618
+ * @property {boolean} showLabel - Whether to display the field label
1619
+ * @property {string} [placeholder] - Optional placeholder text to display when the field is empty
1620
+ * @property {RichContent} [description] - Optional rich content description for the field
1621
+ * @property {number} [minLength] - Optional minimum number of characters required
1622
+ * @property {number} [maxLength] - Optional maximum number of characters allowed
1623
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
1624
+ * @property {function} onChange - Callback function called when the field value changes
1625
+ * @property {function} onBlur - Callback function called when the field loses focus
1626
+ * @property {function} onFocus - Callback function called when the field gains focus
1627
+ *
1628
+ * @example
1629
+ * ```tsx
1630
+ * const textAreaField: TextAreaProps = {
1631
+ * id: 'message',
1632
+ * value: 'Hello world!',
1633
+ * required: true,
1634
+ * readOnly: false,
1635
+ * label: 'Your Message',
1636
+ * showLabel: true,
1637
+ * placeholder: 'Enter your message here...',
1638
+ * description: { nodes: [{ type: 'text', text: 'Please provide detailed information' }] },
1639
+ * minLength: 10,
1640
+ * maxLength: 1000,
1641
+ * onChange: (value) => console.log('Value changed:', value),
1642
+ * onBlur: () => console.log('Field blurred'),
1643
+ * onFocus: () => console.log('Field focused')
1644
+ * };
1645
+ * ```
1646
+ */
1647
+ declare interface TextAreaProps extends BaseTextFieldProps, MinMaxLengthProps {
1648
+ }
1649
+ export { TextAreaProps }
1650
+ export { TextAreaProps as TextAreaProps_alias_1 }
1651
+
104
1652
  export declare const TextFieldMapper: PropsMapper;
105
1653
 
1654
+ /**
1655
+ * Props for text input field.
1656
+ * Field allows to give a single line for a brief answer.
1657
+ * Used with fieldMap key: TEXT_INPUT
1658
+ *
1659
+ * @interface TextInputProps
1660
+ *
1661
+ * @property {string} id - The unique identifier for the form field
1662
+ * @property {string | null | undefined} value - The current value of the form field
1663
+ * @property {boolean} required - Whether the field is required for form submission
1664
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
1665
+ * @property {string} label - The display label for the form field
1666
+ * @property {boolean} showLabel - Whether to display the field label
1667
+ * @property {string} [placeholder] - Optional placeholder text to display when the field is empty
1668
+ * @property {RichContent} [description] - Optional rich content description for the field
1669
+ * @property {number} [minLength] - Optional minimum number of characters required
1670
+ * @property {number} [maxLength] - Optional maximum number of characters allowed
1671
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
1672
+ * @property {function} onChange - Callback function called when the field value changes
1673
+ * @property {function} onBlur - Callback function called when the field loses focus
1674
+ * @property {function} onFocus - Callback function called when the field gains focus
1675
+ *
1676
+ * @example
1677
+ * ```tsx
1678
+ * const textInputField: TextInputProps = {
1679
+ * id: 'firstName',
1680
+ * value: 'John',
1681
+ * required: true,
1682
+ * readOnly: false,
1683
+ * label: 'First Name',
1684
+ * showLabel: true,
1685
+ * placeholder: 'Enter your first name',
1686
+ * description: { nodes: [{ type: 'text', text: 'Your given name' }] },
1687
+ * minLength: 1,
1688
+ * maxLength: 50,
1689
+ * onChange: (value) => console.log('Value changed:', value),
1690
+ * onBlur: () => console.log('Field blurred'),
1691
+ * onFocus: () => console.log('Field focused')
1692
+ * };
1693
+ * ```
1694
+ */
1695
+ declare interface TextInputProps extends BaseTextFieldProps, MinMaxLengthProps {
1696
+ }
1697
+ export { TextInputProps }
1698
+ export { TextInputProps as TextInputProps_alias_1 }
1699
+
106
1700
  export declare const TextMapper: PropsMapper;
107
1701
 
108
1702
  export declare const TimeInputMapper: PropsMapper;
109
1703
 
1704
+ /**
1705
+ * Props for time input field.
1706
+ * Field allows to enetr a time.
1707
+ * Used with fieldMap key: TIME_INPUT
1708
+ *
1709
+ * @interface TimeInputProps
1710
+ *
1711
+ * @property {string} id - The unique identifier for the form field
1712
+ * @property {string | null | undefined} value - The current value of the form field (time string format: HH:mm or HH:mm:ss)
1713
+ * @property {string} label - The display label for the form field
1714
+ * @property {boolean} required - Whether the field is required for form submission
1715
+ * @property {boolean} readOnly - Whether the field is read-only and cannot be edited by the user
1716
+ * @property {RichContent} [description] - Optional rich content description for the field
1717
+ * @property {boolean} showLabel - Whether to display the field label
1718
+ * @property {boolean} showPlaceholder - Whether to show placeholder text in the input
1719
+ * @property {boolean} use24HourFormat - Whether to use 24-hour format for time input (defaults to true)
1720
+ * @property {string} [error] - Error message to display when validation fails (undefined when valid)
1721
+ * @property {function} onChange - Callback function called when the field value changes
1722
+ * @property {function} onBlur - Callback function callezqd when the field loses focus
1723
+ * @property {function} onFocus - Callback function called when the field gains focus
1724
+ *
1725
+ * @example
1726
+ * ```tsx
1727
+ * const timeField: TimeInputProps = {
1728
+ * id: 'appointment-time',
1729
+ * value: '14:30',
1730
+ * label: 'Appointment Time',
1731
+ * required: true,
1732
+ * readOnly: false,
1733
+ * showLabel: true,
1734
+ * showPlaceholder: true,
1735
+ * use24HourFormat: true,
1736
+ * onChange: (value) => console.log('Value changed:', value),
1737
+ * onBlur: () => console.log('Field blurred'),
1738
+ * onFocus: () => console.log('Field focused')
1739
+ * };
1740
+ * ```
1741
+ */
1742
+ declare interface TimeInputProps extends BaseFieldProps {
1743
+ value: string | null | undefined;
1744
+ label: string;
1745
+ showLabel: boolean;
1746
+ showPlaceholder: boolean;
1747
+ use24HourFormat: boolean;
1748
+ description?: RichContent;
1749
+ }
1750
+ export { TimeInputProps }
1751
+ export { TimeInputProps as TimeInputProps_alias_1 }
1752
+
1753
+ export declare type ValueType = string | number | boolean | string[] | null | undefined | VatIDValue | ProductListValue | WixFile[] | MultilineAddressSubmission | AppointmentSubmitData;
1754
+
1755
+ export declare type VatIDValue = {
1756
+ id: string;
1757
+ type?: string;
1758
+ };
1759
+
1760
+ export declare interface WixFile {
1761
+ fileId: string;
1762
+ displayName: string;
1763
+ url: string;
1764
+ fileType: string;
1765
+ }
1766
+
110
1767
  export { }