@razorpay/blade 8.2.2 → 8.3.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.
@@ -0,0 +1,4838 @@
1
+ /// <reference types="react" />
2
+ import * as React$1 from 'react';
3
+ import React__default, { ReactChild, ReactElement, ReactNode, SyntheticEvent, KeyboardEvent } from 'react';
4
+ import { AccessibilityRole, ViewStyle, View, GestureResponderEvent } from 'react-native';
5
+ import * as styled_components from 'styled-components';
6
+ import { CSSObject } from 'styled-components';
7
+ import { ReactDOMAttributes } from '@use-gesture/react/dist/declarations/src/types';
8
+
9
+ type BorderRadius = Readonly<{
10
+ /** none: 0(px/rem/pt) */
11
+ none: 0;
12
+ /** small: 2(px/rem/pt) */
13
+ small: 2;
14
+ /** medium: 4(px/rem/pt) */
15
+ medium: 4;
16
+ /** large: 8(px/rem/pt) */
17
+ large: 8;
18
+ /** max: 9999(px/rem/pt). This will round the left and right side of the box element */
19
+ max: 9999;
20
+ /** round: 50%(pt). This will turn the box element into a circle */
21
+ round: '50%';
22
+ }>;
23
+
24
+ type BorderWidth = Readonly<{
25
+ /** none: 0(px/rem/pt) */
26
+ none: 0;
27
+ /** thin: 1(px/rem/pt) */
28
+ thin: 1;
29
+ /** thick: 1.5(px/rem/pt) */
30
+ thick: 1.5;
31
+ }>;
32
+
33
+ type Border = Readonly<{
34
+ radius: BorderRadius;
35
+ width: BorderWidth;
36
+ }>;
37
+
38
+ type Breakpoints = Readonly<{
39
+ /**
40
+ * `base` is used for responsive styling following a **mobile first** approach. It starts from 0px till the next existing token
41
+ *
42
+ * Think of this as styles without any media query.
43
+ *
44
+ * ### Example
45
+ *
46
+ * This code will set margin as `spacing.2` on "m" size screens and above. And as `spacing.1` on less than "m" size screens
47
+ * ```jsx
48
+ * <Box margin={{ base: 'spacing.1', m: 'spacing.2' }} />
49
+ * ```
50
+ *
51
+ * This roughly translates into -
52
+ *
53
+ * ```
54
+ * .Box {
55
+ * margin: 'spacing.1';
56
+ * }
57
+ *
58
+ * @media screen and (min-width: 768px) {
59
+ * .Box {
60
+ * margin: 'spacing.2';
61
+ * }
62
+ * }
63
+ * ```
64
+ */
65
+ base: number;
66
+ /**
67
+ * `@media screen and (min-width: 320px)`
68
+ *
69
+ * Small Mobiles
70
+ */
71
+ xs: number;
72
+ /**
73
+ * `@media screen and (min-width: 480px)`
74
+ *
75
+ * Mobiles and Small Tablets
76
+ */
77
+ s: number;
78
+ /**
79
+ * `@media screen and (min-width: 768px)`
80
+ *
81
+ * Medium and Large Tablets.
82
+ *
83
+ * Dimensions with `m` and above can be treated as desktop in mobile-first approach (with min-width).
84
+ * Hence this breakpoint can be used for desktop styling.
85
+ *
86
+ * E.g. next example will keep flexDirection `row` on mobiles and `column` on large tablets, desktop, and larger screens
87
+ *
88
+ * ```jsx
89
+ * <Box display="flex" flexDirection={{ base: 'row', m: 'column' }} />
90
+ * ```
91
+ *
92
+ */
93
+ m: number;
94
+ /**
95
+ * `@media screen and (min-width: 1024px)`
96
+ *
97
+ * Desktop
98
+ */
99
+ l: number;
100
+ /**
101
+ * `@media screen and (min-width: 1200px)`
102
+ *
103
+ * HD Desktop
104
+ */
105
+ xl: number;
106
+ }>;
107
+
108
+ type FontFamily = {
109
+ /** Used for all type of textual content except code snippets */
110
+ text: string;
111
+ /** Used for code snippets */
112
+ code: string;
113
+ };
114
+
115
+ type FontWeight = {
116
+ regular: 400;
117
+ bold: 700;
118
+ };
119
+
120
+ /**
121
+ * For font size and line-heights we can’t say from xl to 2xl the value will necessary increase.
122
+ * it might decrease or remain same because these are alias tokens and we need aliases for cross platform.
123
+ * so for example xl on mobile can be 32px and on desktop xl can be 34px,
124
+ * similarly 2xl on mobile can be 34px but on desktop doesn’t necessarily mean 2xl will be more than xl(34px) it can be 32 as well since visually they make better hierarchy.
125
+ */
126
+
127
+ type FontSize = {
128
+ /** desktop: 9(px/rem/pt)
129
+ *
130
+ * mobile: 9(px/rem/pt)
131
+ */
132
+ 10: number;
133
+ /** desktop: 10(px/rem/pt)
134
+ *
135
+ * mobile: 10(px/rem/pt)
136
+ */
137
+ 25: number;
138
+ /** desktop: 11(px/rem/pt)
139
+ *
140
+ * mobile: 11(px/rem/pt)
141
+ */
142
+ 50: number;
143
+ /** desktop: 12(px/rem/pt)
144
+ *
145
+ * mobile: 12(px/rem/pt)
146
+ */
147
+ 75: number;
148
+ /** desktop: 14(px/rem/pt)
149
+ *
150
+ * mobile: 14(px/rem/pt)
151
+ */
152
+ 100: number;
153
+ /** desktop: 16(px/rem/pt)
154
+ *
155
+ * mobile: 16(px/rem/pt)
156
+ */
157
+ 200: number;
158
+ /** desktop: 18(px/rem/pt)
159
+ *
160
+ * mobile: 16(px/rem/pt)
161
+ */
162
+ 300: number;
163
+ /** desktop: 20(px/rem/pt)
164
+ *
165
+ * mobile: 18(px/rem/pt)
166
+ */
167
+ 400: number;
168
+ /** desktop: 22(px/rem/pt)
169
+ *
170
+ * mobile: 20(px/rem/pt)
171
+ */
172
+ 500: number;
173
+ /** desktop: 24(px/rem/pt)
174
+ *
175
+ * mobile: 20(px/rem/pt)
176
+ */
177
+ 600: number;
178
+ /** desktop: 28(px/rem/pt)
179
+ *
180
+ * mobile: 24(px/rem/pt)
181
+ */
182
+ 700: number;
183
+ /** desktop: 32(px/rem/pt)
184
+ *
185
+ * mobile: 28(px/rem/pt)
186
+ */
187
+ 800: number;
188
+ /** desktop: 36(px/rem/pt)
189
+ *
190
+ * mobile: 32(px/rem/pt)
191
+ */
192
+ 900: number;
193
+ /** desktop: 40(px/rem/pt)
194
+ *
195
+ * mobile: 32(px/rem/pt)
196
+ */
197
+ 1000: number;
198
+ };
199
+
200
+ type Typography = {
201
+ fonts: {
202
+ family: FontFamily;
203
+ size: FontSize;
204
+ weight: FontWeight;
205
+ };
206
+ lineHeights: {
207
+ /** desktop: 0(px/rem/pt)
208
+ *
209
+ * mobile: 0(px/rem/pt)
210
+ */
211
+ 0: number;
212
+ /** desktop: 14(px/rem/pt)
213
+ *
214
+ * mobile: 14(px/rem/pt)
215
+ */
216
+ 25: number;
217
+ /** desktop: 16(px/rem/pt)
218
+ *
219
+ * mobile: 16(px/rem/pt)
220
+ */
221
+ 50: number;
222
+ /** desktop: 18(px/rem/pt)
223
+ *
224
+ * mobile: 18(px/rem/pt)
225
+ */
226
+ 75: number;
227
+ /** desktop: 20(px/rem/pt)
228
+ *
229
+ * mobile: 20(px/rem/pt)
230
+ */
231
+ 100: number;
232
+ /** desktop: 24(px/rem/pt)
233
+ *
234
+ * mobile: 20(px/rem/pt)
235
+ */
236
+ 200: number;
237
+ /** desktop: 24(px/rem/pt)
238
+ *
239
+ * mobile: 24(px/rem/pt)
240
+ */
241
+ 300: number;
242
+ /** desktop: 28(px/rem/pt)
243
+ *
244
+ * mobile: 24(px/rem/pt)
245
+ */
246
+ 400: number;
247
+ /** desktop: 32(px/rem/pt)
248
+ *
249
+ * mobile: 28(px/rem/pt)
250
+ */
251
+ 500: number;
252
+ /** desktop: 40(px/rem/pt)
253
+ *
254
+ * mobile: 32(px/rem/pt)
255
+ */
256
+ 600: number;
257
+ /** desktop: 40(px/rem/pt)
258
+ *
259
+ * mobile: 40(px/rem/pt)
260
+ */
261
+ 700: number;
262
+ /** desktop: 48(px/rem/pt)
263
+ *
264
+ * mobile: 40(px/rem/pt)
265
+ */
266
+ 800: number;
267
+ };
268
+ // letterSpacings: {};
269
+ };
270
+
271
+ type TypographyPlatforms = 'onDesktop' | 'onMobile';
272
+
273
+ type TypographyWithPlatforms = Record<TypographyPlatforms, Typography>;
274
+
275
+ /**
276
+ * When any of the values are changed here, do change the jsdoc comments in BaseBox/types/spacingTypes.ts as well
277
+ *
278
+ * {@link ../../components/Box/BaseBox/types/spacingTypes.ts}
279
+ */
280
+
281
+ type Spacing = Readonly<{
282
+ /** 0: 0(px/rem/pt) */
283
+ 0: 0;
284
+ /** 1: 2(px/rem/pt) */
285
+ 1: 2;
286
+ /** 2: 4(px/rem/pt) */
287
+ 2: 4;
288
+ /** 3: 8(px/rem/pt) */
289
+ 3: 8;
290
+ /** 4: 12(px/rem/pt) */
291
+ 4: 12;
292
+ /** 5: 16(px/rem/pt) */
293
+ 5: 16;
294
+ /** 6: 20(px/rem/pt) */
295
+ 6: 20;
296
+ /** 7: 24(px/rem/pt) */
297
+ 7: 24;
298
+ /** 8: 32(px/rem/pt) */
299
+ 8: 32;
300
+ /** 9: 40(px/rem/pt) */
301
+ 9: 40;
302
+ /** 10: 48(px/rem/pt) */
303
+ 10: 48;
304
+ /** 11: 56(px/rem/pt) */
305
+ 11: 56;
306
+ }>;
307
+
308
+ type ColorSchemeNames = 'dark' | 'light';
309
+ type ColorSchemeNamesInput = ColorSchemeNames | 'system';
310
+
311
+ type ColorSchemeModes = 'onDark' | 'onLight';
312
+
313
+ type TextTypes = 'muted' | 'normal' | 'placeholder' | 'subdued' | 'subtle';
314
+
315
+ type ColorContrastTypes = 'low' | 'high';
316
+
317
+ type Feedback = 'information' | 'negative' | 'neutral' | 'notice' | 'positive';
318
+
319
+ type ColorContrast = {
320
+ [K in ColorContrastTypes as `${Extract<K, string>}Contrast`]: string;
321
+ };
322
+
323
+ // @TODO: this shall rather be Surface = 'level1' | 'level2' | 'level3' to keep in sync with color tokens
324
+ type SurfaceLevels = 1 | 2 | 3;
325
+
326
+ type ActionStates = {
327
+ default: string;
328
+ hover: string;
329
+ focus: string;
330
+ active: string;
331
+ disabled: string;
332
+ };
333
+
334
+ type LinkActionStates = ActionStates & {
335
+ visited: string;
336
+ };
337
+
338
+ type ActionStatesWithContrast = {
339
+ default: ColorContrast;
340
+ hover: ColorContrast;
341
+ focus: ColorContrast;
342
+ active: ColorContrast;
343
+ disabled: ColorContrast;
344
+ };
345
+
346
+ type ActionVariants = {
347
+ primary: ActionStates;
348
+ secondary: ActionStates;
349
+ tertiary: ActionStates;
350
+ link: LinkActionStates;
351
+ };
352
+
353
+ type ActionVariantsWithContrast = {
354
+ primary: ActionStatesWithContrast;
355
+ secondary: ActionStatesWithContrast;
356
+ tertiary: ActionStatesWithContrast;
357
+ link: ActionStatesWithContrast;
358
+ };
359
+
360
+ // export type ActionProperties = {
361
+ // background: ActionVariants;
362
+ // border: ActionVariants;
363
+ // text: ActionVariants;
364
+ // icon: ActionVariants;
365
+ // };
366
+
367
+ type FeedbackActions = {
368
+ background: Pick<ActionVariantsWithContrast, 'primary'>;
369
+ border: Pick<ActionVariantsWithContrast, 'primary'>;
370
+ text: Pick<ActionVariantsWithContrast, 'link' | 'primary'>;
371
+ icon: Pick<ActionVariantsWithContrast, 'link' | 'primary'>;
372
+ };
373
+
374
+ type Colors = {
375
+ brand: {
376
+ primary: Record<300 | 400 | 500 | 600 | 700 | 800, string>;
377
+ secondary: Record<500, string>;
378
+ gray: Record<200 | 300 | 400 | 500 | 600 | 700 | 'a50' | 'a100', ColorContrast>;
379
+ };
380
+ feedback: {
381
+ background: Record<Feedback, ColorContrast>;
382
+ border: Record<Feedback, ColorContrast>;
383
+ text: Record<Feedback, ColorContrast>;
384
+ icon: Record<Feedback, ColorContrast>;
385
+ positive: {
386
+ action: FeedbackActions;
387
+ };
388
+ negative: {
389
+ action: FeedbackActions;
390
+ };
391
+ information: {
392
+ action: FeedbackActions;
393
+ };
394
+ notice: {
395
+ action: FeedbackActions;
396
+ };
397
+ neutral: {
398
+ action: FeedbackActions;
399
+ };
400
+ };
401
+ surface: {
402
+ background: Record<'level1' | 'level2' | 'level3', ColorContrast>;
403
+ border: Record<'normal' | 'subtle', ColorContrast>;
404
+ text: Record<TextTypes, ColorContrast>;
405
+ action: {
406
+ icon: ActionStatesWithContrast;
407
+ };
408
+ };
409
+ overlay: Record<'background', string>;
410
+ action: {
411
+ background: Omit<ActionVariants, 'link'>;
412
+ border: Omit<ActionVariants, 'link'>;
413
+ text: ActionVariants;
414
+ icon: ActionVariants;
415
+ };
416
+ badge: {
417
+ background: {
418
+ blue: ColorContrast;
419
+ };
420
+ border: {
421
+ blue: ColorContrast;
422
+ };
423
+ text: {
424
+ blue: ColorContrast;
425
+ };
426
+ icon: {
427
+ blue: ColorContrast;
428
+ };
429
+ };
430
+ };
431
+
432
+ type ColorsWithModes = Record<ColorSchemeModes, Colors>;
433
+
434
+ type ThemeTokens = {
435
+ name: 'paymentTheme' | 'bankingTheme' | StringWithAutocomplete; // Can be used to watch over state changes between theme without watching over entire theme object
436
+ border: Border;
437
+ breakpoints: Breakpoints;
438
+ colors: ColorsWithModes;
439
+ motion: Motion;
440
+ elevation: ElevationWithColorModes;
441
+ spacing: Spacing;
442
+ typography: TypographyWithPlatforms;
443
+ };
444
+
445
+ // All the WAI-ARIA 1.1 role attribute values from https://www.w3.org/TR/wai-aria-1.1/#role_definitions
446
+ type AriaRoles =
447
+ | Exclude<AccessibilityRole, 'header' | 'adjustable' | 'image' | 'none' | 'summary'>
448
+ | 'alert'
449
+ | 'alertdialog'
450
+ | 'application'
451
+ | 'article'
452
+ | 'banner'
453
+ | 'button'
454
+ | 'cell'
455
+ | 'checkbox'
456
+ | 'columnheader'
457
+ | 'combobox'
458
+ | 'complementary'
459
+ | 'contentinfo'
460
+ | 'definition'
461
+ | 'dialog'
462
+ | 'directory'
463
+ | 'document'
464
+ | 'feed'
465
+ | 'figure'
466
+ | 'form'
467
+ | 'grid'
468
+ | 'gridcell'
469
+ | 'group'
470
+ | 'heading'
471
+ | 'img'
472
+ | 'link'
473
+ | 'list'
474
+ | 'listbox'
475
+ | 'listitem'
476
+ | 'log'
477
+ | 'main'
478
+ | 'marquee'
479
+ | 'math'
480
+ | 'menu'
481
+ | 'menubar'
482
+ | 'menuitem'
483
+ | 'menuitemcheckbox'
484
+ | 'menuitemradio'
485
+ | 'meter'
486
+ | 'navigation'
487
+ | 'none'
488
+ | 'note'
489
+ | 'option'
490
+ | 'presentation'
491
+ | 'progressbar'
492
+ | 'radio'
493
+ | 'radiogroup'
494
+ | 'region'
495
+ | 'row'
496
+ | 'rowgroup'
497
+ | 'rowheader'
498
+ | 'scrollbar'
499
+ | 'search'
500
+ | 'searchbox'
501
+ | 'separator'
502
+ | 'slider'
503
+ | 'spinbutton'
504
+ | 'status'
505
+ | 'switch'
506
+ | 'tab'
507
+ | 'table'
508
+ | 'tablist'
509
+ | 'tabpanel'
510
+ | 'term'
511
+ | 'textbox'
512
+ | 'timer'
513
+ | 'toolbar'
514
+ | 'tooltip'
515
+ | 'tree'
516
+ | 'treegrid'
517
+ | 'treeitem';
518
+ type AccessibilityProps = AriaAttributes;
519
+
520
+ type AriaAttributes = {
521
+ role: AriaRoles;
522
+ /**
523
+ * Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application.
524
+ */
525
+ activeDescendant?: string;
526
+ /**
527
+ * Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute.
528
+ */
529
+ atomic?: boolean;
530
+ /**
531
+ * Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be presented if they are made.
532
+ */
533
+ autoComplete?: 'none' | 'inline' | 'list' | 'both';
534
+ /**
535
+ * Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user.
536
+ */
537
+ busy?: boolean;
538
+ /**
539
+ * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
540
+ * @see aria-pressed @see aria-selected.
541
+ */
542
+ checked?: boolean | 'mixed';
543
+ /**
544
+ * Defines the total number of columns in a table, grid, or treegrid.
545
+ * @see aria-colindex.
546
+ */
547
+ colCount?: number;
548
+ /**
549
+ * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.
550
+ * @see aria-colcount @see aria-colspan.
551
+ */
552
+ colIndex?: number;
553
+ /**
554
+ * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.
555
+ * @see aria-colindex @see aria-rowspan.
556
+ */
557
+ colSpan?: number;
558
+ /**
559
+ * Identifies the element (or elements) whose contents or presence are controlled by the current element.
560
+ * @see aria-owns.
561
+ */
562
+ controls?: string;
563
+ /**
564
+ * Indicates the element that represents the current item within a container or set of related elements.
565
+ */
566
+ current?: boolean | 'page' | 'step' | 'location' | 'date' | 'time';
567
+ /**
568
+ * Identifies the element (or elements) that describes the object.
569
+ * @see aria-labelledby
570
+ */
571
+ describedBy?: string;
572
+ /**
573
+ * Identifies the element that provides a detailed, extended description for the object.
574
+ * @see aria-describedby.
575
+ */
576
+ details?: string;
577
+ /**
578
+ * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.
579
+ * @see aria-hidden @see aria-readonly.
580
+ */
581
+ disabled?: boolean;
582
+ /**
583
+ * Indicates what functions can be performed when a dragged object is released on the drop target.
584
+ * @deprecated in ARIA 1.1
585
+ */
586
+ dropEffect?: 'none' | 'copy' | 'execute' | 'link' | 'move' | 'popup';
587
+ /**
588
+ * Identifies the element that provides an error message for the object.
589
+ * @see aria-invalid @see aria-describedby.
590
+ */
591
+ errorMessage?: string;
592
+ /**
593
+ * Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed.
594
+ */
595
+ expanded?: boolean;
596
+ /**
597
+ * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion,
598
+ * allows assistive technology to override the general default of reading in document source order.
599
+ */
600
+ flowTo?: string;
601
+ /**
602
+ * Indicates an element's "grabbed" state in a drag-and-drop operation.
603
+ * @deprecated in ARIA 1.1
604
+ */
605
+ grabbed?: boolean;
606
+ /**
607
+ * Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element.
608
+ */
609
+ hasPopup?: boolean | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';
610
+ /**
611
+ * Indicates whether the element is exposed to an accessibility API.
612
+ * @see aria-disabled.
613
+ */
614
+ hidden?: boolean;
615
+ /**
616
+ * Indicates the entered value does not conform to the format expected by the application.
617
+ * @see aria-errormessage.
618
+ */
619
+ invalid?: boolean | 'grammar' | 'spelling';
620
+ /**
621
+ * Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.
622
+ */
623
+ keyShortcuts?: string;
624
+ /**
625
+ * Defines a string value that labels the current element.
626
+ * @see aria-labelledby.
627
+ */
628
+ label?: string;
629
+ /**
630
+ * Identifies the element (or elements) that labels the current element.
631
+ * @see aria-describedby.
632
+ */
633
+ labelledBy?: string;
634
+ /**
635
+ * Defines the hierarchical level of an element within a structure.
636
+ */
637
+ level?: number;
638
+ /**
639
+ * Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region.
640
+ */
641
+ liveRegion?: 'off' | 'assertive' | 'polite';
642
+ /**
643
+ * Indicates whether an element is modal when displayed.
644
+ */
645
+ modal?: boolean;
646
+ /**
647
+ * Indicates whether a text box accepts multiple lines of input or only a single line.
648
+ */
649
+ multiline?: boolean;
650
+ /**
651
+ * Indicates that the user may select more than one item from the current selectable descendants.
652
+ */
653
+ multiSelectable?: boolean;
654
+ /**
655
+ * Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous.
656
+ */
657
+ orientation?: 'horizontal' | 'vertical';
658
+ /**
659
+ * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship
660
+ * between DOM elements where the DOM hierarchy cannot be used to represent the relationship.
661
+ * @see aria-controls.
662
+ */
663
+ owns?: string;
664
+ /**
665
+ * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value.
666
+ * A hint could be a sample value or a brief description of the expected format.
667
+ */
668
+ placeholder?: string;
669
+ /**
670
+ * Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
671
+ * @see aria-setsize.
672
+ */
673
+ posInSet?: number;
674
+ /**
675
+ * Indicates the current "pressed" state of toggle buttons.
676
+ * @see aria-checked @see aria-selected.
677
+ */
678
+ pressed?: boolean | 'mixed';
679
+ /**
680
+ * Indicates that the element is not editable, but is otherwise operable.
681
+ * @see aria-disabled.
682
+ */
683
+ readOnly?: boolean;
684
+ /**
685
+ * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.
686
+ * @see aria-atomic.
687
+ */
688
+ relevant?:
689
+ | 'additions'
690
+ | 'additions removals'
691
+ | 'additions text'
692
+ | 'all'
693
+ | 'removals'
694
+ | 'removals additions'
695
+ | 'removals text'
696
+ | 'text'
697
+ | 'text additions'
698
+ | 'text removals';
699
+ /**
700
+ * Indicates that user input is required on the element before a form may be submitted.
701
+ */
702
+ required?: boolean;
703
+ /**
704
+ * Defines a human-readable, author-localized description for the role of an element.
705
+ */
706
+ roleDescription?: string;
707
+ /**
708
+ * Defines the total number of rows in a table, grid, or treegrid.
709
+ * @see aria-rowindex.
710
+ */
711
+ rowCount?: number;
712
+ /**
713
+ * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.
714
+ * @see aria-rowcount @see aria-rowspan.
715
+ */
716
+ rowIndex?: number;
717
+ /**
718
+ * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.
719
+ * @see aria-rowindex @see aria-colspan.
720
+ */
721
+ rowSpan?: number;
722
+ /**
723
+ * Indicates the current "selected" state of various widgets.
724
+ * @see aria-checked @see aria-pressed.
725
+ */
726
+ selected?: boolean;
727
+ /**
728
+ * Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
729
+ * @see aria-posinset.
730
+ */
731
+ setSize?: number;
732
+ /**
733
+ * Indicates if items in a table or grid are sorted in ascending or descending order.
734
+ */
735
+ sort?: 'none' | 'ascending' | 'descending' | 'other';
736
+ /**
737
+ * Defines the maximum allowed value for a range widget.
738
+ */
739
+ valueMax?: number;
740
+ /**
741
+ * Defines the minimum allowed value for a range widget.
742
+ */
743
+ valueMin?: number;
744
+ /**
745
+ * Defines the current value for a range widget.
746
+ * @see aria-valuetext.
747
+ */
748
+ valueNow?: number;
749
+ /**
750
+ * Defines the human readable text alternative of aria-valuenow for a range widget.
751
+ */
752
+ valueText?: string;
753
+ };
754
+
755
+ /* eslint-disable @typescript-eslint/no-explicit-any */
756
+
757
+ /**
758
+ * Brands a type making them act as nominal
759
+ * @see https://medium.com/@KevinBGreene/surviving-the-typescript-ecosystem-branding-and-type-tagging-6cf6e516523d
760
+ */
761
+ type Brand<Type, Name extends string> = Type & { __brand__?: Name };
762
+
763
+ type NativeOrWebBrand = Brand<any, 'native' | 'web'>;
764
+
765
+ /* eslint-disable @typescript-eslint/no-namespace */
766
+
767
+
768
+ declare namespace Platform {
769
+ export type Name = 'web';
770
+ /**
771
+ * Right now, the module resolution is set to resolve `.web` files,
772
+ *
773
+ * Thus Platform.Select<> type will return the `web` type
774
+ */
775
+ export type Select<Options extends { web: unknown; native: unknown }> = Brand<
776
+ Options[Name],
777
+ 'platform-web'
778
+ >;
779
+
780
+ export type CastNative<T extends NativeOrWebBrand | undefined> = Extract<
781
+ T,
782
+ { __brand__?: 'platform-native' | 'platform-all' }
783
+ >;
784
+
785
+ export type CastWeb<T extends NativeOrWebBrand | undefined> = Extract<
786
+ T,
787
+ { __brand__?: 'platform-web' | 'platform-all' }
788
+ >;
789
+ }
790
+
791
+ type Duration = {
792
+ /** `70` milliseconds */
793
+ '2xquick': 70;
794
+ /** `150` milliseconds */
795
+ xquick: 150;
796
+ /** `200` milliseconds */
797
+ quick: 200;
798
+ /** `250` milliseconds */
799
+ moderate: 250;
800
+ /** `300` milliseconds */
801
+ xmoderate: 300;
802
+ /** `400` milliseconds */
803
+ gentle: 400;
804
+ /** `600` milliseconds */
805
+ xgentle: 600;
806
+ /** `900` milliseconds */
807
+ '2xgentle': 900;
808
+ };
809
+
810
+ type Delay = {
811
+ /** `70` milliseconds */
812
+ '2xshort': 70;
813
+ /** `120` milliseconds */
814
+ xshort: 120;
815
+ /** `180` milliseconds */
816
+ short: 180;
817
+ /** `3000` milliseconds */
818
+ long: 3000;
819
+ /** `5000` milliseconds */
820
+ xlong: 5000;
821
+ };
822
+
823
+ type EasingFunctionFactory = { factory: () => (value: number) => number }; // similar to EasingFunctionFactory of `react-native-reanimated`
824
+ type EasingType<Value extends string> = Platform.Select<{
825
+ web: Value;
826
+ native: EasingFunctionFactory;
827
+ }>;
828
+
829
+ type Easing = {
830
+ /** Easings for all standard animations*/
831
+ standard: {
832
+ /** `cubic-bezier(0.5, 0, 0.3, 1.5)`
833
+ *
834
+ * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
835
+ attentive: EasingType<'cubic-bezier(0.5, 0, 0.3, 1.5)'>;
836
+ /** `cubic-bezier(0.3, 0, 0.2, 1)`
837
+ *
838
+ * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
839
+ effective: EasingType<'cubic-bezier(0.3, 0, 0.2, 1)'>;
840
+ /** `cubic-bezier(0.5, 0, 0, 1)`
841
+ *
842
+ * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
843
+ revealing: EasingType<'cubic-bezier(0.5, 0, 0, 1)'>;
844
+ /** `cubic-bezier(1, 0.5, 0, 0.5)`
845
+ *
846
+ * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
847
+ wary: EasingType<'cubic-bezier(1, 0.5, 0, 0.5)'>;
848
+ };
849
+ /** Easings for all entrance animations*/
850
+ entrance: {
851
+ /** `cubic-bezier(0.5, 0, 0.3, 1.5)`
852
+ *
853
+ * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
854
+ attentive: EasingType<'cubic-bezier(0.5, 0, 0.3, 1.5)'>;
855
+ /** `cubic-bezier(0, 0, 0.2, 1)`
856
+ *
857
+ * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
858
+ effective: EasingType<'cubic-bezier(0, 0, 0.2, 1)'>;
859
+ /** `cubic-bezier(0, 0, 0, 1)`
860
+ *
861
+ * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
862
+ revealing: EasingType<'cubic-bezier(0, 0, 0, 1)'>;
863
+ };
864
+ /** Easings for all exit animations*/
865
+ exit: {
866
+ /** `cubic-bezier(0.7, 0, 0.5, 1)`
867
+ *
868
+ * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
869
+ attentive: EasingType<'cubic-bezier(0.7, 0, 0.5, 1)'>;
870
+ /** `cubic-bezier(0.17, 0, 1, 1)`
871
+ *
872
+ * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
873
+ effective: EasingType<'cubic-bezier(0.17, 0, 1, 1)'>;
874
+ /** `cubic-bezier(0.5, 0, 1, 1)`
875
+ *
876
+ * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
877
+ revealing: EasingType<'cubic-bezier(0.5, 0, 1, 1)'>;
878
+ };
879
+ };
880
+
881
+ type Motion = Readonly<{
882
+ delay: Delay;
883
+ duration: Duration;
884
+ easing: Easing;
885
+ }>;
886
+
887
+ type ElevationLevels = 'none' | 'lowRaised' | 'midRaised' | 'highRaised';
888
+
889
+ type ElevationStyles = Readonly<{
890
+ elevation: number;
891
+ shadowColor: string;
892
+ shadowOpacity: number;
893
+ shadowRadius: number;
894
+ shadowOffset: {
895
+ /**
896
+ * x-axis
897
+ */
898
+ width: number;
899
+ /**
900
+ * y-axis
901
+ */
902
+ height: number;
903
+ };
904
+ }>;
905
+
906
+ type Elevation = Record<
907
+ ElevationLevels,
908
+ Platform.Select<{
909
+ web: string;
910
+ native: ElevationStyles;
911
+ }>
912
+ >;
913
+
914
+ type ElevationWithColorModes = Record<ColorSchemeModes, Elevation>;
915
+
916
+ /**
917
+ * @template TokenType token type generic
918
+ * @description Tokenises objects to dot notation strings, eg: `surface.text.normal.lowContrast`
919
+ */
920
+ type DotNotationColorStringToken<TokenType> = {
921
+ [K in keyof TokenType]: `${Extract<K, number | string>}.${TokenType[K] extends Record<
922
+ string,
923
+ string
924
+ >
925
+ ? Extract<keyof TokenType[K], number | string>
926
+ : DotNotationColorStringToken<TokenType[K]>}`;
927
+ }[keyof TokenType];
928
+
929
+ type DotNotationSpacingStringToken = `spacing.${keyof Spacing}`;
930
+
931
+ /**
932
+ * Use this when you want children to be string.
933
+ *
934
+ * This covers scenarios like
935
+ * ```jsx
936
+ * <Title>Hi</Title>
937
+ * <Title>{dynamicVariable} something</Title>
938
+ * ```
939
+ *
940
+ *
941
+ * ### Usage
942
+ *
943
+ * ```ts
944
+ * import type { StringChildrenType } from '~helpers/types';
945
+ *
946
+ * type MyProps = {
947
+ * children: StringChildrenType;
948
+ * }
949
+ * ```
950
+ */
951
+ type StringChildrenType = React__default.ReactText | React__default.ReactText[];
952
+
953
+ /**
954
+ *
955
+ * When combined with union, this type utility will give you autocomplete of union while still supporting any string value as input
956
+ *
957
+ * ### Usage
958
+ *
959
+ * ```ts
960
+ * type ThemeName = 'paymentTheme' | 'bankingTheme' | StringWithAutocomplete;
961
+ * ```
962
+ *
963
+ * This will show paymentTheme and bankingTheme in autocomplete but also allow any other string as value.
964
+ *
965
+ * More details - https://github.com/razorpay/blade/pull/1031/commits/86b6ee0facf45e7556739efcbfa5396b11b1b3c9#r1121298293
966
+ * Related TS Issue - https://github.com/microsoft/TypeScript/issues/29729
967
+ *
968
+ */
969
+ type StringWithAutocomplete = string & Record<never, never>;
970
+
971
+ type TestID = {
972
+ testID?: string;
973
+ };
974
+
975
+ /**
976
+ * Similar to `Pick` except this returns `never` when value doesn't exist (native `Pick` returns `unknown`).
977
+ *
978
+ * You might have to ts-ignore the non-existing type error while using this. This is done so that you can get jsdoc from actual type.
979
+ *
980
+ * E.g. This will pick from ViewStyle prop if value exists else returns undefined.
981
+ *
982
+ * ```ts
983
+ * // @ts-expect-error: T passed here may not neccessarily exist. We return `never` type when it doesn't
984
+ * native: PickIfExist<ViewStyle, T>;
985
+ * ```
986
+ */
987
+ type PickIfExist$1<T, K extends keyof T> = {
988
+ [P in K]: P extends keyof T ? T[P] : never;
989
+ };
990
+
991
+ /**
992
+ * Picks the types based on the platform (web / native).
993
+ *
994
+ * E.g.
995
+ * ```ts
996
+ * type CSSObject = PickCSSByPlatform<'display'>
997
+ * // On Web --> This will be all possible web display properties like `block`, `flex`, `inline`, and more.
998
+ * // On Native --> This will be just `flex` and `none`
999
+ * ```
1000
+ */
1001
+ type PickCSSByPlatform$1<T extends keyof React__default.CSSProperties | keyof ViewStyle> = Platform.Select<{
1002
+ web: PickIfExist$1<CSSObject, T>;
1003
+ // @ts-expect-error: T passed here may not neccessarily exist. We return `never` type when it doesn't
1004
+ native: PickIfExist$1<ViewStyle, T>;
1005
+ }>;
1006
+
1007
+ declare type ActionListContextProp = Pick<ActionListProps, 'surfaceLevel'>;
1008
+ declare const useActionListContext: () => ActionListContextProp;
1009
+ declare type ActionListProps = {
1010
+ children: React__default.ReactNode[];
1011
+ /**
1012
+ * Decides the backgroundColor of ActionList
1013
+ */
1014
+ surfaceLevel?: Exclude<SurfaceLevels, 1>;
1015
+ } & TestID;
1016
+ declare const ActionList: React__default.MemoExoticComponent<({ children, surfaceLevel, testID }: ActionListProps) => JSX.Element>;
1017
+
1018
+ type Theme$1 = {
1019
+ name: ThemeTokens['name'];
1020
+ border: Border;
1021
+ breakpoints: Breakpoints;
1022
+ colors: Colors;
1023
+ spacing: Spacing;
1024
+ motion: Motion;
1025
+ elevation: Elevation;
1026
+ typography: Typography;
1027
+ };
1028
+
1029
+ /**
1030
+ * Returns the value or the responsive object with that value
1031
+ *
1032
+ * ## Usage
1033
+ *
1034
+ * Example if you pass string argument, return type will be string or responsive object with string value
1035
+ *
1036
+ * `MakeValueResponsive<string>`
1037
+ * ```ts
1038
+ * string |
1039
+ * {
1040
+ * base?: string;
1041
+ * xs?: string;
1042
+ * s?: string;
1043
+ * // ... other breakpoints
1044
+ * }
1045
+ * ```
1046
+ *
1047
+ */
1048
+ // When type is `never`, we just want to return `never` rather than { base: never, ...etc } since that prop is intended to be never used
1049
+ // Explaination of [T] extends [never] -> https://stackoverflow.com/questions/65492464/typescript-never-type-condition
1050
+ type MakeValueResponsive$1<T> = [T] extends [never]
1051
+ ? never
1052
+ :
1053
+ | T
1054
+ | {
1055
+ // Using this instead of Record to maintain the jsdoc from breakpoints.ts
1056
+ [P in keyof Breakpoints]?: T;
1057
+ };
1058
+
1059
+ /**
1060
+ * Turns all the values in object into responsive object.
1061
+ *
1062
+ * ```ts
1063
+ * MakeObjectResponsive<{ hello: string}>
1064
+ *
1065
+ * // Outputs:
1066
+ * {
1067
+ * hello: string | {
1068
+ * base?: string;
1069
+ * xs?: string;
1070
+ * s?: string;
1071
+ * // ... other breakpoints
1072
+ * }
1073
+ * }
1074
+ * ```
1075
+ */
1076
+ type MakeObjectResponsive$1<T> = { [P in keyof T]: MakeValueResponsive$1<T[P]> };
1077
+
1078
+ type ArrayOfMaxLength4$1<T> = readonly [T?, T?, T?, T?];
1079
+ type SpaceUnits$1 = Platform.Select<{
1080
+ web: 'px' | '%' | 'fr' | 'rem' | 'em' | 'vh' | 'vw';
1081
+ native: 'px' | '%';
1082
+ }>;
1083
+ type SpacingValueType$1 = DotNotationSpacingStringToken | `${string}${SpaceUnits$1}` | 'auto';
1084
+
1085
+ type MarginProps$1 = MakeObjectResponsive$1<{
1086
+ /**
1087
+ * ### Margin Shorthand
1088
+ *
1089
+ * #### Usage
1090
+ *
1091
+ * ```jsx
1092
+ * margin="spacing.3"
1093
+ * margin="20px"
1094
+ * margin={["spacing.3", "spacing.1", "spacing.0", "10px"]}
1095
+ * ```
1096
+ *
1097
+ * ---
1098
+ * #### Spacing to Pixel values
1099
+ *
1100
+ * - `spacing.0` - 0px
1101
+ * - `spacing.1` - 2px
1102
+ * - `spacing.2` - 4px
1103
+ * - `spacing.3` - 8px
1104
+ * - `spacing.4` - 12px
1105
+ * - `spacing.5` - 16px
1106
+ * - `spacing.6` - 20px
1107
+ * - `spacing.7` - 24px
1108
+ * - `spacing.8` - 32px
1109
+ * - `spacing.9` - 40px
1110
+ * - `spacing.10` - 48px
1111
+ * - `spacing.11` - 56px
1112
+ *
1113
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1114
+ *
1115
+ */
1116
+ margin: SpacingValueType$1 | ArrayOfMaxLength4$1<SpacingValueType$1>;
1117
+ /**
1118
+ * ### Margin Horizontal
1119
+ *
1120
+ * #### Usage
1121
+ *
1122
+ * ```jsx
1123
+ * marginX="spacing.3"
1124
+ * marginX="20px"
1125
+ * ```
1126
+ *
1127
+ * ---
1128
+ * #### Spacing to Pixel values
1129
+ *
1130
+ * - `spacing.0` - 0px
1131
+ * - `spacing.1` - 2px
1132
+ * - `spacing.2` - 4px
1133
+ * - `spacing.3` - 8px
1134
+ * - `spacing.4` - 12px
1135
+ * - `spacing.5` - 16px
1136
+ * - `spacing.6` - 20px
1137
+ * - `spacing.7` - 24px
1138
+ * - `spacing.8` - 32px
1139
+ * - `spacing.9` - 40px
1140
+ * - `spacing.10` - 48px
1141
+ * - `spacing.11` - 56px
1142
+ *
1143
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1144
+ *
1145
+ */
1146
+ marginX: SpacingValueType$1;
1147
+ /**
1148
+ * ### Margin Vertical
1149
+ *
1150
+ * #### Usage
1151
+ *
1152
+ * ```jsx
1153
+ * marginY="spacing.3"
1154
+ * marginY="20px"
1155
+ * ```
1156
+ *
1157
+ * ---
1158
+ * #### Spacing to Pixel values
1159
+ *
1160
+ * - `spacing.0` - 0px
1161
+ * - `spacing.1` - 2px
1162
+ * - `spacing.2` - 4px
1163
+ * - `spacing.3` - 8px
1164
+ * - `spacing.4` - 12px
1165
+ * - `spacing.5` - 16px
1166
+ * - `spacing.6` - 20px
1167
+ * - `spacing.7` - 24px
1168
+ * - `spacing.8` - 32px
1169
+ * - `spacing.9` - 40px
1170
+ * - `spacing.10` - 48px
1171
+ * - `spacing.11` - 56px
1172
+ *
1173
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1174
+ *
1175
+ */
1176
+ marginY: SpacingValueType$1;
1177
+ /**
1178
+ * ### Margin Top
1179
+ *
1180
+ * #### Usage
1181
+ *
1182
+ * ```jsx
1183
+ * marginTop="spacing.3"
1184
+ * marginTop="20px"
1185
+ * ```
1186
+ *
1187
+ * ---
1188
+ * #### Spacing to Pixel values
1189
+ *
1190
+ * - `spacing.0` - 0px
1191
+ * - `spacing.1` - 2px
1192
+ * - `spacing.2` - 4px
1193
+ * - `spacing.3` - 8px
1194
+ * - `spacing.4` - 12px
1195
+ * - `spacing.5` - 16px
1196
+ * - `spacing.6` - 20px
1197
+ * - `spacing.7` - 24px
1198
+ * - `spacing.8` - 32px
1199
+ * - `spacing.9` - 40px
1200
+ * - `spacing.10` - 48px
1201
+ * - `spacing.11` - 56px
1202
+ *
1203
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1204
+ */
1205
+ marginTop: SpacingValueType$1;
1206
+ /**
1207
+ * ### Margin Right
1208
+ *
1209
+ * #### Usage
1210
+ *
1211
+ * ```jsx
1212
+ * marginRight="spacing.3"
1213
+ * marginRight="20px"
1214
+ * ```
1215
+ *
1216
+ * ---
1217
+ * #### Spacing to Pixel values
1218
+ *
1219
+ * - `spacing.0` - 0px
1220
+ * - `spacing.1` - 2px
1221
+ * - `spacing.2` - 4px
1222
+ * - `spacing.3` - 8px
1223
+ * - `spacing.4` - 12px
1224
+ * - `spacing.5` - 16px
1225
+ * - `spacing.6` - 20px
1226
+ * - `spacing.7` - 24px
1227
+ * - `spacing.8` - 32px
1228
+ * - `spacing.9` - 40px
1229
+ * - `spacing.10` - 48px
1230
+ * - `spacing.11` - 56px
1231
+ *
1232
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1233
+ */
1234
+ marginRight: SpacingValueType$1;
1235
+ /**
1236
+ * ### Margin Bottom
1237
+ *
1238
+ * #### Usage
1239
+ *
1240
+ * ```jsx
1241
+ * marginBottom="spacing.3"
1242
+ * marginBottom="20px"
1243
+ * ```
1244
+ *
1245
+ * ---
1246
+ * #### Spacing to Pixel values
1247
+ *
1248
+ * - `spacing.0` - 0px
1249
+ * - `spacing.1` - 2px
1250
+ * - `spacing.2` - 4px
1251
+ * - `spacing.3` - 8px
1252
+ * - `spacing.4` - 12px
1253
+ * - `spacing.5` - 16px
1254
+ * - `spacing.6` - 20px
1255
+ * - `spacing.7` - 24px
1256
+ * - `spacing.8` - 32px
1257
+ * - `spacing.9` - 40px
1258
+ * - `spacing.10` - 48px
1259
+ * - `spacing.11` - 56px
1260
+ *
1261
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1262
+ */
1263
+ marginBottom: SpacingValueType$1;
1264
+ /**
1265
+ * ### Margin Left
1266
+ *
1267
+ * #### Usage
1268
+ *
1269
+ * ```jsx
1270
+ * marginLeft="spacing.3"
1271
+ * marginLeft="20px"
1272
+ * ```
1273
+ *
1274
+ * ---
1275
+ * #### Spacing to Pixel values
1276
+ *
1277
+ * - `spacing.0` - 0px
1278
+ * - `spacing.1` - 2px
1279
+ * - `spacing.2` - 4px
1280
+ * - `spacing.3` - 8px
1281
+ * - `spacing.4` - 12px
1282
+ * - `spacing.5` - 16px
1283
+ * - `spacing.6` - 20px
1284
+ * - `spacing.7` - 24px
1285
+ * - `spacing.8` - 32px
1286
+ * - `spacing.9` - 40px
1287
+ * - `spacing.10` - 48px
1288
+ * - `spacing.11` - 56px
1289
+ *
1290
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1291
+ */
1292
+ marginLeft: SpacingValueType$1;
1293
+ }>;
1294
+
1295
+ type FlexboxProps$1 = MakeObjectResponsive$1<
1296
+ {
1297
+ /**
1298
+ * This uses the native gap property which might not work on older browsers.
1299
+ * If you want to support older browsers, you might want to use `margin` instead.
1300
+ *
1301
+ * @see https://caniuse.com/?search=gap
1302
+ */
1303
+ gap: SpacingValueType$1;
1304
+ /**
1305
+ * This uses the native row-gap property which might not work on older browsers.
1306
+ * If you want to support older browsers, you might want to use `margin` instead.
1307
+ *
1308
+ * @see https://caniuse.com/?search=row-gap
1309
+ */
1310
+ rowGap: SpacingValueType$1;
1311
+ /**
1312
+ * This uses the native column-gap property which might not work on older browsers.
1313
+ * If you want to support older browsers, you might want to use `margin` instead.
1314
+ *
1315
+ * @see https://caniuse.com/?search=column-gap
1316
+ */
1317
+ columnGap: SpacingValueType$1;
1318
+ /**
1319
+ * The **`flex`** CSS shorthand property sets how a flex _item_ will grow or shrink to fit the space available in its flex container.
1320
+ *
1321
+ * @see https://developer.mozilla.org/docs/Web/CSS/flex
1322
+ */
1323
+ flex: string | number;
1324
+ } & PickCSSByPlatform$1<
1325
+ | 'flexWrap'
1326
+ | 'flexDirection'
1327
+ | 'flexGrow'
1328
+ | 'flexShrink'
1329
+ | 'flexBasis'
1330
+ | 'alignItems'
1331
+ | 'alignContent'
1332
+ | 'alignSelf'
1333
+ | 'justifyItems'
1334
+ | 'justifyContent'
1335
+ | 'justifySelf'
1336
+ | 'placeSelf'
1337
+ | 'order'
1338
+ >
1339
+ >;
1340
+
1341
+ type PositionProps$1 = MakeObjectResponsive$1<
1342
+ {
1343
+ top: SpacingValueType$1;
1344
+ right: SpacingValueType$1;
1345
+ bottom: SpacingValueType$1;
1346
+ left: SpacingValueType$1;
1347
+ } & PickCSSByPlatform$1<'position' | 'zIndex'>
1348
+ >;
1349
+
1350
+ type GridProps$1 = MakeObjectResponsive$1<
1351
+ PickCSSByPlatform$1<
1352
+ | 'grid'
1353
+ | 'gridColumn'
1354
+ | 'gridRow'
1355
+ | 'gridRowStart'
1356
+ | 'gridRowEnd'
1357
+ | 'gridColumnStart'
1358
+ | 'gridColumnEnd'
1359
+ | 'gridArea'
1360
+ | 'gridAutoFlow'
1361
+ | 'gridAutoRows'
1362
+ | 'gridAutoColumns'
1363
+ | 'gridTemplate'
1364
+ | 'gridTemplateAreas'
1365
+ | 'gridTemplateColumns'
1366
+ | 'gridTemplateRows'
1367
+ >
1368
+ >;
1369
+
1370
+ type StyledPropsBlade = Partial<
1371
+ Omit<
1372
+ MarginProps$1 &
1373
+ Pick<FlexboxProps$1, 'alignSelf' | 'justifySelf' | 'placeSelf' | 'order'> &
1374
+ PositionProps$1 &
1375
+ Pick<
1376
+ GridProps$1,
1377
+ | 'gridColumn'
1378
+ | 'gridRow'
1379
+ | 'gridRowStart'
1380
+ | 'gridRowEnd'
1381
+ | 'gridColumnStart'
1382
+ | 'gridColumnEnd'
1383
+ | 'gridArea'
1384
+ >,
1385
+ '__brand__'
1386
+ >
1387
+ >;
1388
+
1389
+ type FeedbackIconColors$1 = `feedback.icon.${DotNotationColorStringToken<
1390
+ Theme$1['colors']['feedback']['icon']
1391
+ >}`;
1392
+
1393
+ type FeedbackActionIconColors$1 = `feedback.${Feedback}.action.icon.${DotNotationColorStringToken<
1394
+ Theme$1['colors']['feedback'][Feedback]['action']['icon']
1395
+ >}`;
1396
+
1397
+ type ActionIconColors$1 = `action.icon.${DotNotationColorStringToken<
1398
+ Theme$1['colors']['action']['icon']
1399
+ >}`;
1400
+
1401
+ type TextIconColors$1 = `surface.text.${DotNotationColorStringToken<
1402
+ Theme$1['colors']['surface']['text']
1403
+ >}`;
1404
+
1405
+ type SurfaceActionIconColors$1 = `surface.action.icon.${DotNotationColorStringToken<
1406
+ Theme$1['colors']['surface']['action']['icon']
1407
+ >}`;
1408
+
1409
+ type BadgeIconColors$1 = `badge.icon.${DotNotationColorStringToken<
1410
+ Theme$1['colors']['badge']['icon']
1411
+ >}`;
1412
+
1413
+ type IconSize$1 = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | '2xlarge';
1414
+ type IconProps$1 = {
1415
+ /**
1416
+ * Color token (not to be confused with actual hsla value)
1417
+ */
1418
+ color:
1419
+ | ActionIconColors$1
1420
+ | SurfaceActionIconColors$1
1421
+ | FeedbackIconColors$1
1422
+ | FeedbackActionIconColors$1
1423
+ | TextIconColors$1
1424
+ | BadgeIconColors$1
1425
+ | 'currentColor'; // currentColor is useful for letting the SVG inherit color property from its container
1426
+ size: IconSize$1;
1427
+ } & StyledPropsBlade;
1428
+ type IconComponent$1 = React.ComponentType<IconProps$1>;
1429
+
1430
+ declare type ActionListItemProps = {
1431
+ title: string;
1432
+ description?: string;
1433
+ onClick?: (clickProps: {
1434
+ name: string;
1435
+ value?: boolean;
1436
+ }) => void;
1437
+ /**
1438
+ * value that you get from `onChange` event on SelectInput or in form submissions.
1439
+ */
1440
+ value: string;
1441
+ /**
1442
+ * Link to open when item is clicked.
1443
+ */
1444
+ href?: string;
1445
+ /**
1446
+ * HTML target of the link
1447
+ */
1448
+ target?: string;
1449
+ /**
1450
+ * Item that goes on left-side of item.
1451
+ *
1452
+ * Valid elements - `<ActionListItemIcon />`, `<ActionListItemAsset />`
1453
+ *
1454
+ * Will be overriden in multiselect
1455
+ */
1456
+ leading?: React__default.ReactNode;
1457
+ /**
1458
+ * Item that goes on right-side of item.
1459
+ *
1460
+ * Valid elements - `<ActionListItemText />`, `<ActionListItemIcon />`
1461
+ */
1462
+ trailing?: React__default.ReactNode;
1463
+ isDisabled?: boolean;
1464
+ intent?: Extract<Feedback, 'negative'>;
1465
+ /**
1466
+ * Can be used in combination of `onClick` to highlight item as selected in Button Triggers.
1467
+ *
1468
+ * When trigger is SelectInput, Use `value` prop on SelectInput instead to make dropdown controlled.
1469
+ */
1470
+ isSelected?: boolean;
1471
+ /**
1472
+ * Internally passed from ActionList. No need to pass it explicitly
1473
+ *
1474
+ * @private
1475
+ */
1476
+ _index?: number;
1477
+ } & TestID;
1478
+ declare const ActionListSectionDivider: () => JSX.Element;
1479
+ declare type ActionListSectionProps = {
1480
+ title: string;
1481
+ children: React__default.ReactNode[] | React__default.ReactNode;
1482
+ /**
1483
+ * Internally used to hide the divider on final item in React Native.
1484
+ *
1485
+ * Should not be used by consumers (also won't work on web)
1486
+ *
1487
+ * @private
1488
+ */
1489
+ _hideDivider?: boolean;
1490
+ } & TestID;
1491
+ declare const ActionListSection: ({ title, children, testID, _hideDivider, }: ActionListSectionProps) => JSX.Element;
1492
+ declare const ActionListItemIcon: ({ icon }: {
1493
+ icon: IconComponent$1;
1494
+ }) => JSX.Element;
1495
+ declare const ActionListItemText: ({ children, }: {
1496
+ children: StringChildrenType;
1497
+ }) => React__default.ReactElement;
1498
+ declare const ActionListItem: React__default.MemoExoticComponent<(props: ActionListItemProps) => JSX.Element>;
1499
+
1500
+ declare type ActionListHeaderProps = {
1501
+ title: string;
1502
+ /**
1503
+ * Asset to be added on left side of Header.
1504
+ *
1505
+ * Valid children - `ActionListHeaderIcon`
1506
+ */
1507
+ leading?: React__default.ReactNode;
1508
+ } & TestID;
1509
+ declare const ActionListHeader: (props: ActionListHeaderProps) => JSX.Element;
1510
+ declare const ActionListHeaderIcon: ({ icon }: {
1511
+ icon: IconComponent$1;
1512
+ }) => React__default.ReactElement;
1513
+
1514
+ declare type ActionListFooterProps = {
1515
+ title?: string;
1516
+ /**
1517
+ * Asset to be added on left side of Footer.
1518
+ *
1519
+ * Valid children - `ActionListFooterIcon`
1520
+ */
1521
+ leading?: React__default.ReactNode;
1522
+ /**
1523
+ * Elements to be added on right side of Footer.
1524
+ *
1525
+ * Anything can be passed here but maybe don't? Should ideally have Button or Tick Icon Buttons.
1526
+ */
1527
+ trailing?: React__default.ReactNode;
1528
+ } & TestID;
1529
+ declare const ActionListFooter: (props: ActionListFooterProps) => JSX.Element;
1530
+ declare const ActionListFooterIcon: ({ icon }: {
1531
+ icon: IconComponent$1;
1532
+ }) => React__default.ReactElement;
1533
+
1534
+ declare type ActionListItemAssetProps = {
1535
+ /**
1536
+ * Source of the image.
1537
+ */
1538
+ src: string;
1539
+ /**
1540
+ * Alt tag for the image
1541
+ */
1542
+ alt: string;
1543
+ };
1544
+ declare const ActionListItemAsset: (props: ActionListItemAssetProps) => React.ReactElement;
1545
+
1546
+ declare type PrimaryAction = {
1547
+ text: string;
1548
+ onClick: () => void;
1549
+ };
1550
+ declare type SecondaryActionButton = {
1551
+ text: string;
1552
+ onClick: () => void;
1553
+ };
1554
+ declare type SecondaryActionLinkButton = {
1555
+ text: string;
1556
+ href: string;
1557
+ onClick?: () => void;
1558
+ target?: string;
1559
+ /**
1560
+ * When `target` is set to `_blank` this is automatically set to `noopener noreferrer`
1561
+ */
1562
+ rel?: string;
1563
+ };
1564
+ declare type SecondaryAction = SecondaryActionButton | SecondaryActionLinkButton;
1565
+ declare type AlertProps = {
1566
+ /**
1567
+ * Body content, pass text or JSX. Avoid passing components except `Link` to customize the content.
1568
+ */
1569
+ description: ReactChild;
1570
+ /**
1571
+ * A brief heading
1572
+ */
1573
+ title?: string;
1574
+ /**
1575
+ * Shows a dismiss button
1576
+ *
1577
+ * @default true
1578
+ */
1579
+ isDismissible?: boolean;
1580
+ /**
1581
+ * A callback when the dismiss button is clicked
1582
+ */
1583
+ onDismiss?: () => void;
1584
+ /**
1585
+ * Can be set to `high` for a more prominent look. Not to be confused with a11y contrast.
1586
+ *
1587
+ * @default low
1588
+ */
1589
+ contrast?: ColorContrastTypes;
1590
+ /**
1591
+ * Makes the Alert span the entire container width, instead of the default max width of `584px`.
1592
+ * This also makes the alert borderless, useful for creating full bleed layouts.
1593
+ *
1594
+ * @default false
1595
+ */
1596
+ isFullWidth?: boolean;
1597
+ /**
1598
+ * Sets the color tone
1599
+ *
1600
+ * @default neutral
1601
+ */
1602
+ intent?: Feedback;
1603
+ /**
1604
+ * Renders a primary action button and a secondary action link button
1605
+ */
1606
+ actions?: {
1607
+ /**
1608
+ * Renders a button (should **always** be present if `secondary` action is being used)
1609
+ */
1610
+ primary: PrimaryAction;
1611
+ /**
1612
+ * Renders a Link button
1613
+ */
1614
+ secondary?: SecondaryAction;
1615
+ };
1616
+ } & TestID & StyledPropsBlade;
1617
+ declare const Alert: ({ description, title, isDismissible, onDismiss, contrast, isFullWidth, intent, actions, testID, ...styledProps }: AlertProps) => ReactElement | null;
1618
+
1619
+ declare type BadgeProps = {
1620
+ /**
1621
+ * Sets the label for the badge.
1622
+ *
1623
+ */
1624
+ children: StringChildrenType;
1625
+ /**
1626
+ * Sets the variant of the badge.
1627
+ *
1628
+ * @default 'neutral'
1629
+ */
1630
+ variant?: Feedback | 'blue';
1631
+ /**
1632
+ * Sets the contrast of the badge.
1633
+ *
1634
+ * @default 'low'
1635
+ */
1636
+ contrast?: 'low' | 'high';
1637
+ /**
1638
+ * Sets the size of the badge.
1639
+ *
1640
+ * @default 'medium'
1641
+ */
1642
+ size?: 'small' | 'medium' | 'large';
1643
+ /**
1644
+ * Icon to be displayed in the badge.
1645
+ * Accepts a component of type `IconComponent` from Blade.
1646
+ *
1647
+ */
1648
+ icon?: IconComponent$1;
1649
+ /**
1650
+ * Sets the fontWeight of the label.
1651
+ *
1652
+ * @default 'regular'
1653
+ */
1654
+ fontWeight?: 'regular' | 'bold';
1655
+ } & TestID & StyledPropsBlade;
1656
+ declare const Badge: ({ children, contrast, fontWeight, icon, size, variant, testID, ...styledProps }: BadgeProps) => ReactElement;
1657
+
1658
+ declare type BladeProviderProps = {
1659
+ themeTokens: ThemeTokens;
1660
+ colorScheme?: ColorSchemeNamesInput;
1661
+ children: ReactNode;
1662
+ };
1663
+
1664
+ declare const BladeProvider: ({ themeTokens, colorScheme, children, }: BladeProviderProps) => ReactElement;
1665
+
1666
+ declare type UseColorScheme = {
1667
+ colorScheme: ColorSchemeNames;
1668
+ setColorScheme: (colorScheme: ColorSchemeNamesInput) => void;
1669
+ };
1670
+
1671
+ declare type ThemeContext = UseColorScheme & {
1672
+ theme: Theme;
1673
+ platform: TypographyPlatforms;
1674
+ };
1675
+ declare const ThemeContext: React$1.Context<ThemeContext>;
1676
+ declare const useTheme: () => ThemeContext;
1677
+
1678
+ declare type Theme = {
1679
+ name: ThemeTokens['name'];
1680
+ border: Border;
1681
+ breakpoints: Breakpoints;
1682
+ colors: Colors;
1683
+ spacing: Spacing;
1684
+ motion: Motion;
1685
+ elevation: Elevation;
1686
+ typography: Typography;
1687
+ };
1688
+
1689
+ /**
1690
+ * Returns the value or the responsive object with that value
1691
+ *
1692
+ * ## Usage
1693
+ *
1694
+ * Example if you pass string argument, return type will be string or responsive object with string value
1695
+ *
1696
+ * `MakeValueResponsive<string>`
1697
+ * ```ts
1698
+ * string |
1699
+ * {
1700
+ * base?: string;
1701
+ * xs?: string;
1702
+ * s?: string;
1703
+ * // ... other breakpoints
1704
+ * }
1705
+ * ```
1706
+ *
1707
+ */
1708
+ declare type MakeValueResponsive<T> = [T] extends [never] ? never : T | {
1709
+ [P in keyof Breakpoints]?: T;
1710
+ };
1711
+ /**
1712
+ * Turns all the values in object into responsive object.
1713
+ *
1714
+ * ```ts
1715
+ * MakeObjectResponsive<{ hello: string}>
1716
+ *
1717
+ * // Outputs:
1718
+ * {
1719
+ * hello: string | {
1720
+ * base?: string;
1721
+ * xs?: string;
1722
+ * s?: string;
1723
+ * // ... other breakpoints
1724
+ * }
1725
+ * }
1726
+ * ```
1727
+ */
1728
+ declare type MakeObjectResponsive<T> = {
1729
+ [P in keyof T]: MakeValueResponsive<T[P]>;
1730
+ };
1731
+
1732
+ declare type ArrayOfMaxLength4<T> = readonly [T?, T?, T?, T?];
1733
+ declare type SpaceUnits = Platform.Select<{
1734
+ web: 'px' | '%' | 'fr' | 'rem' | 'em' | 'vh' | 'vw';
1735
+ native: 'px' | '%';
1736
+ }>;
1737
+ declare type SpacingValueType = DotNotationSpacingStringToken | `${string}${SpaceUnits}` | 'auto';
1738
+ /**
1739
+ * @IMPORTANT
1740
+ *
1741
+ * I wish there was better way to re-use jsdoc but I checked and there isn't so we have to explicitly add docs to each prop.
1742
+ *
1743
+ * When you want to change a specific token value, you can select the entire block of spacing value mapping and do find and replace on it
1744
+ *
1745
+ * Checkout example of find and replace query-
1746
+ * {@link https://user-images.githubusercontent.com/30949385/221802507-40c7adbc-484a-47b3-9035-ae1e97080b51.png}
1747
+ *
1748
+ */
1749
+ declare type PaddingProps = MakeObjectResponsive<{
1750
+ /**
1751
+ * ### Padding Shorthand
1752
+ *
1753
+ * #### Usage
1754
+ *
1755
+ * ```jsx
1756
+ * padding="spacing.3"
1757
+ * padding="20px"
1758
+ * padding={["spacing.3", "spacing.1", "spacing.0", "10px"]}
1759
+ * ```
1760
+ *
1761
+ * ---
1762
+ * #### Spacing to Pixel values
1763
+ *
1764
+ * - `spacing.0` - 0px
1765
+ * - `spacing.1` - 2px
1766
+ * - `spacing.2` - 4px
1767
+ * - `spacing.3` - 8px
1768
+ * - `spacing.4` - 12px
1769
+ * - `spacing.5` - 16px
1770
+ * - `spacing.6` - 20px
1771
+ * - `spacing.7` - 24px
1772
+ * - `spacing.8` - 32px
1773
+ * - `spacing.9` - 40px
1774
+ * - `spacing.10` - 48px
1775
+ * - `spacing.11` - 56px
1776
+ *
1777
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1778
+ *
1779
+ */
1780
+ padding: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
1781
+ /**
1782
+ * ### Padding Horizontal
1783
+ *
1784
+ * #### Usage
1785
+ *
1786
+ * ```jsx
1787
+ * paddingX="spacing.3"
1788
+ * paddingX="20px"
1789
+ * ```
1790
+ *
1791
+ * ---
1792
+ * #### Spacing to Pixel values
1793
+ *
1794
+ * - `spacing.0` - 0px
1795
+ * - `spacing.1` - 2px
1796
+ * - `spacing.2` - 4px
1797
+ * - `spacing.3` - 8px
1798
+ * - `spacing.4` - 12px
1799
+ * - `spacing.5` - 16px
1800
+ * - `spacing.6` - 20px
1801
+ * - `spacing.7` - 24px
1802
+ * - `spacing.8` - 32px
1803
+ * - `spacing.9` - 40px
1804
+ * - `spacing.10` - 48px
1805
+ * - `spacing.11` - 56px
1806
+ *
1807
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1808
+ *
1809
+ */
1810
+ paddingX: SpacingValueType;
1811
+ /**
1812
+ * ### Padding Vertical
1813
+ *
1814
+ * #### Usage
1815
+ *
1816
+ * ```jsx
1817
+ * paddingY="spacing.3"
1818
+ * paddingY="20px"
1819
+ * ```
1820
+ *
1821
+ * ---
1822
+ * #### Spacing to Pixel values
1823
+ *
1824
+ * - `spacing.0` - 0px
1825
+ * - `spacing.1` - 2px
1826
+ * - `spacing.2` - 4px
1827
+ * - `spacing.3` - 8px
1828
+ * - `spacing.4` - 12px
1829
+ * - `spacing.5` - 16px
1830
+ * - `spacing.6` - 20px
1831
+ * - `spacing.7` - 24px
1832
+ * - `spacing.8` - 32px
1833
+ * - `spacing.9` - 40px
1834
+ * - `spacing.10` - 48px
1835
+ * - `spacing.11` - 56px
1836
+ *
1837
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1838
+ *
1839
+ */
1840
+ paddingY: SpacingValueType;
1841
+ /**
1842
+ * ### Padding Top
1843
+ *
1844
+ * #### Usage
1845
+ *
1846
+ * ```jsx
1847
+ * paddingTop="spacing.3"
1848
+ * paddingTop="20px"
1849
+ * ```
1850
+ *
1851
+ * ---
1852
+ * #### Spacing to Pixel values
1853
+ *
1854
+ * - `spacing.0` - 0px
1855
+ * - `spacing.1` - 2px
1856
+ * - `spacing.2` - 4px
1857
+ * - `spacing.3` - 8px
1858
+ * - `spacing.4` - 12px
1859
+ * - `spacing.5` - 16px
1860
+ * - `spacing.6` - 20px
1861
+ * - `spacing.7` - 24px
1862
+ * - `spacing.8` - 32px
1863
+ * - `spacing.9` - 40px
1864
+ * - `spacing.10` - 48px
1865
+ * - `spacing.11` - 56px
1866
+ *
1867
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1868
+ */
1869
+ paddingTop: SpacingValueType;
1870
+ /**
1871
+ * ### Padding Right
1872
+ *
1873
+ * #### Usage
1874
+ *
1875
+ * ```jsx
1876
+ * paddingRight="spacing.3"
1877
+ * paddingRight="20px"
1878
+ * ```
1879
+ *
1880
+ * ---
1881
+ * #### Spacing to Pixel values
1882
+ *
1883
+ * - `spacing.0` - 0px
1884
+ * - `spacing.1` - 2px
1885
+ * - `spacing.2` - 4px
1886
+ * - `spacing.3` - 8px
1887
+ * - `spacing.4` - 12px
1888
+ * - `spacing.5` - 16px
1889
+ * - `spacing.6` - 20px
1890
+ * - `spacing.7` - 24px
1891
+ * - `spacing.8` - 32px
1892
+ * - `spacing.9` - 40px
1893
+ * - `spacing.10` - 48px
1894
+ * - `spacing.11` - 56px
1895
+ *
1896
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1897
+ */
1898
+ paddingRight: SpacingValueType;
1899
+ /**
1900
+ * ### Padding Bottom
1901
+ *
1902
+ * #### Usage
1903
+ *
1904
+ * ```jsx
1905
+ * paddingBottom="spacing.3"
1906
+ * paddingBottom="20px"
1907
+ * ```
1908
+ *
1909
+ * ---
1910
+ * #### Spacing to Pixel values
1911
+ *
1912
+ * - `spacing.0` - 0px
1913
+ * - `spacing.1` - 2px
1914
+ * - `spacing.2` - 4px
1915
+ * - `spacing.3` - 8px
1916
+ * - `spacing.4` - 12px
1917
+ * - `spacing.5` - 16px
1918
+ * - `spacing.6` - 20px
1919
+ * - `spacing.7` - 24px
1920
+ * - `spacing.8` - 32px
1921
+ * - `spacing.9` - 40px
1922
+ * - `spacing.10` - 48px
1923
+ * - `spacing.11` - 56px
1924
+ *
1925
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1926
+ */
1927
+ paddingBottom: SpacingValueType;
1928
+ /**
1929
+ * ### Padding Left
1930
+ *
1931
+ * #### Usage
1932
+ *
1933
+ * ```jsx
1934
+ * paddingLeft="spacing.3"
1935
+ * paddingLeft="20px"
1936
+ * ```
1937
+ *
1938
+ * ---
1939
+ * #### Spacing to Pixel values
1940
+ *
1941
+ * - `spacing.0` - 0px
1942
+ * - `spacing.1` - 2px
1943
+ * - `spacing.2` - 4px
1944
+ * - `spacing.3` - 8px
1945
+ * - `spacing.4` - 12px
1946
+ * - `spacing.5` - 16px
1947
+ * - `spacing.6` - 20px
1948
+ * - `spacing.7` - 24px
1949
+ * - `spacing.8` - 32px
1950
+ * - `spacing.9` - 40px
1951
+ * - `spacing.10` - 48px
1952
+ * - `spacing.11` - 56px
1953
+ *
1954
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1955
+ */
1956
+ paddingLeft: SpacingValueType;
1957
+ }>;
1958
+ declare type MarginProps = MakeObjectResponsive<{
1959
+ /**
1960
+ * ### Margin Shorthand
1961
+ *
1962
+ * #### Usage
1963
+ *
1964
+ * ```jsx
1965
+ * margin="spacing.3"
1966
+ * margin="20px"
1967
+ * margin={["spacing.3", "spacing.1", "spacing.0", "10px"]}
1968
+ * ```
1969
+ *
1970
+ * ---
1971
+ * #### Spacing to Pixel values
1972
+ *
1973
+ * - `spacing.0` - 0px
1974
+ * - `spacing.1` - 2px
1975
+ * - `spacing.2` - 4px
1976
+ * - `spacing.3` - 8px
1977
+ * - `spacing.4` - 12px
1978
+ * - `spacing.5` - 16px
1979
+ * - `spacing.6` - 20px
1980
+ * - `spacing.7` - 24px
1981
+ * - `spacing.8` - 32px
1982
+ * - `spacing.9` - 40px
1983
+ * - `spacing.10` - 48px
1984
+ * - `spacing.11` - 56px
1985
+ *
1986
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1987
+ *
1988
+ */
1989
+ margin: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
1990
+ /**
1991
+ * ### Margin Horizontal
1992
+ *
1993
+ * #### Usage
1994
+ *
1995
+ * ```jsx
1996
+ * marginX="spacing.3"
1997
+ * marginX="20px"
1998
+ * ```
1999
+ *
2000
+ * ---
2001
+ * #### Spacing to Pixel values
2002
+ *
2003
+ * - `spacing.0` - 0px
2004
+ * - `spacing.1` - 2px
2005
+ * - `spacing.2` - 4px
2006
+ * - `spacing.3` - 8px
2007
+ * - `spacing.4` - 12px
2008
+ * - `spacing.5` - 16px
2009
+ * - `spacing.6` - 20px
2010
+ * - `spacing.7` - 24px
2011
+ * - `spacing.8` - 32px
2012
+ * - `spacing.9` - 40px
2013
+ * - `spacing.10` - 48px
2014
+ * - `spacing.11` - 56px
2015
+ *
2016
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
2017
+ *
2018
+ */
2019
+ marginX: SpacingValueType;
2020
+ /**
2021
+ * ### Margin Vertical
2022
+ *
2023
+ * #### Usage
2024
+ *
2025
+ * ```jsx
2026
+ * marginY="spacing.3"
2027
+ * marginY="20px"
2028
+ * ```
2029
+ *
2030
+ * ---
2031
+ * #### Spacing to Pixel values
2032
+ *
2033
+ * - `spacing.0` - 0px
2034
+ * - `spacing.1` - 2px
2035
+ * - `spacing.2` - 4px
2036
+ * - `spacing.3` - 8px
2037
+ * - `spacing.4` - 12px
2038
+ * - `spacing.5` - 16px
2039
+ * - `spacing.6` - 20px
2040
+ * - `spacing.7` - 24px
2041
+ * - `spacing.8` - 32px
2042
+ * - `spacing.9` - 40px
2043
+ * - `spacing.10` - 48px
2044
+ * - `spacing.11` - 56px
2045
+ *
2046
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
2047
+ *
2048
+ */
2049
+ marginY: SpacingValueType;
2050
+ /**
2051
+ * ### Margin Top
2052
+ *
2053
+ * #### Usage
2054
+ *
2055
+ * ```jsx
2056
+ * marginTop="spacing.3"
2057
+ * marginTop="20px"
2058
+ * ```
2059
+ *
2060
+ * ---
2061
+ * #### Spacing to Pixel values
2062
+ *
2063
+ * - `spacing.0` - 0px
2064
+ * - `spacing.1` - 2px
2065
+ * - `spacing.2` - 4px
2066
+ * - `spacing.3` - 8px
2067
+ * - `spacing.4` - 12px
2068
+ * - `spacing.5` - 16px
2069
+ * - `spacing.6` - 20px
2070
+ * - `spacing.7` - 24px
2071
+ * - `spacing.8` - 32px
2072
+ * - `spacing.9` - 40px
2073
+ * - `spacing.10` - 48px
2074
+ * - `spacing.11` - 56px
2075
+ *
2076
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
2077
+ */
2078
+ marginTop: SpacingValueType;
2079
+ /**
2080
+ * ### Margin Right
2081
+ *
2082
+ * #### Usage
2083
+ *
2084
+ * ```jsx
2085
+ * marginRight="spacing.3"
2086
+ * marginRight="20px"
2087
+ * ```
2088
+ *
2089
+ * ---
2090
+ * #### Spacing to Pixel values
2091
+ *
2092
+ * - `spacing.0` - 0px
2093
+ * - `spacing.1` - 2px
2094
+ * - `spacing.2` - 4px
2095
+ * - `spacing.3` - 8px
2096
+ * - `spacing.4` - 12px
2097
+ * - `spacing.5` - 16px
2098
+ * - `spacing.6` - 20px
2099
+ * - `spacing.7` - 24px
2100
+ * - `spacing.8` - 32px
2101
+ * - `spacing.9` - 40px
2102
+ * - `spacing.10` - 48px
2103
+ * - `spacing.11` - 56px
2104
+ *
2105
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
2106
+ */
2107
+ marginRight: SpacingValueType;
2108
+ /**
2109
+ * ### Margin Bottom
2110
+ *
2111
+ * #### Usage
2112
+ *
2113
+ * ```jsx
2114
+ * marginBottom="spacing.3"
2115
+ * marginBottom="20px"
2116
+ * ```
2117
+ *
2118
+ * ---
2119
+ * #### Spacing to Pixel values
2120
+ *
2121
+ * - `spacing.0` - 0px
2122
+ * - `spacing.1` - 2px
2123
+ * - `spacing.2` - 4px
2124
+ * - `spacing.3` - 8px
2125
+ * - `spacing.4` - 12px
2126
+ * - `spacing.5` - 16px
2127
+ * - `spacing.6` - 20px
2128
+ * - `spacing.7` - 24px
2129
+ * - `spacing.8` - 32px
2130
+ * - `spacing.9` - 40px
2131
+ * - `spacing.10` - 48px
2132
+ * - `spacing.11` - 56px
2133
+ *
2134
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
2135
+ */
2136
+ marginBottom: SpacingValueType;
2137
+ /**
2138
+ * ### Margin Left
2139
+ *
2140
+ * #### Usage
2141
+ *
2142
+ * ```jsx
2143
+ * marginLeft="spacing.3"
2144
+ * marginLeft="20px"
2145
+ * ```
2146
+ *
2147
+ * ---
2148
+ * #### Spacing to Pixel values
2149
+ *
2150
+ * - `spacing.0` - 0px
2151
+ * - `spacing.1` - 2px
2152
+ * - `spacing.2` - 4px
2153
+ * - `spacing.3` - 8px
2154
+ * - `spacing.4` - 12px
2155
+ * - `spacing.5` - 16px
2156
+ * - `spacing.6` - 20px
2157
+ * - `spacing.7` - 24px
2158
+ * - `spacing.8` - 32px
2159
+ * - `spacing.9` - 40px
2160
+ * - `spacing.10` - 48px
2161
+ * - `spacing.11` - 56px
2162
+ *
2163
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
2164
+ */
2165
+ marginLeft: SpacingValueType;
2166
+ }>;
2167
+
2168
+ declare type LayoutProps = MakeObjectResponsive<{
2169
+ height: SpacingValueType;
2170
+ minHeight: SpacingValueType;
2171
+ maxHeight: SpacingValueType;
2172
+ width: SpacingValueType;
2173
+ minWidth: SpacingValueType;
2174
+ maxWidth: SpacingValueType;
2175
+ } & PickCSSByPlatform$1<'display' | 'overflow' | 'overflowX' | 'overflowY'>>;
2176
+ declare type FlexboxProps = MakeObjectResponsive<{
2177
+ /**
2178
+ * This uses the native gap property which might not work on older browsers.
2179
+ * If you want to support older browsers, you might want to use `margin` instead.
2180
+ *
2181
+ * @see https://caniuse.com/?search=gap
2182
+ */
2183
+ gap: SpacingValueType;
2184
+ /**
2185
+ * This uses the native row-gap property which might not work on older browsers.
2186
+ * If you want to support older browsers, you might want to use `margin` instead.
2187
+ *
2188
+ * @see https://caniuse.com/?search=row-gap
2189
+ */
2190
+ rowGap: SpacingValueType;
2191
+ /**
2192
+ * This uses the native column-gap property which might not work on older browsers.
2193
+ * If you want to support older browsers, you might want to use `margin` instead.
2194
+ *
2195
+ * @see https://caniuse.com/?search=column-gap
2196
+ */
2197
+ columnGap: SpacingValueType;
2198
+ /**
2199
+ * The **`flex`** CSS shorthand property sets how a flex _item_ will grow or shrink to fit the space available in its flex container.
2200
+ *
2201
+ * @see https://developer.mozilla.org/docs/Web/CSS/flex
2202
+ */
2203
+ flex: string | number;
2204
+ } & PickCSSByPlatform$1<'flexWrap' | 'flexDirection' | 'flexGrow' | 'flexShrink' | 'flexBasis' | 'alignItems' | 'alignContent' | 'alignSelf' | 'justifyItems' | 'justifyContent' | 'justifySelf' | 'placeSelf' | 'order'>>;
2205
+ declare type PositionProps = MakeObjectResponsive<{
2206
+ top: SpacingValueType;
2207
+ right: SpacingValueType;
2208
+ bottom: SpacingValueType;
2209
+ left: SpacingValueType;
2210
+ } & PickCSSByPlatform$1<'position' | 'zIndex'>>;
2211
+ declare type GridProps = MakeObjectResponsive<PickCSSByPlatform$1<'grid' | 'gridColumn' | 'gridRow' | 'gridRowStart' | 'gridRowEnd' | 'gridColumnStart' | 'gridColumnEnd' | 'gridArea' | 'gridAutoFlow' | 'gridAutoRows' | 'gridAutoColumns' | 'gridTemplate' | 'gridTemplateAreas' | 'gridTemplateColumns' | 'gridTemplateRows'>>;
2212
+ declare type ColorObjects = 'feedback' | 'surface' | 'action';
2213
+ declare type BackgroundColorString<T extends ColorObjects> = `${T}.background.${DotNotationColorStringToken<Theme$1['colors'][T]['background']>}`;
2214
+ declare type BorderColorString<T extends ColorObjects> = `${T}.border.${DotNotationColorStringToken<Theme$1['colors'][T]['border']>}`;
2215
+ declare const validBoxAsValues: readonly ["div", "section", "footer", "header", "main", "aside", "nav", "span"];
2216
+ declare type BoxAsType = typeof validBoxAsValues[number];
2217
+ declare type BoxVisualProps = MakeObjectResponsive<{
2218
+ backgroundColor: BackgroundColorString<'surface'>;
2219
+ borderWidth: keyof Border['width'];
2220
+ borderColor: BorderColorString<'surface'>;
2221
+ borderTopWidth: keyof Border['width'];
2222
+ borderTopColor: BorderColorString<'surface'>;
2223
+ borderRightWidth: keyof Border['width'];
2224
+ borderRightColor: BorderColorString<'surface'>;
2225
+ borderBottomWidth: keyof Border['width'];
2226
+ borderBottomColor: BorderColorString<'surface'>;
2227
+ borderLeftWidth: keyof Border['width'];
2228
+ borderLeftColor: BorderColorString<'surface'>;
2229
+ borderRadius: keyof Border['radius'];
2230
+ borderTopLeftRadius: keyof Border['radius'];
2231
+ borderTopRightRadius: keyof Border['radius'];
2232
+ borderBottomRightRadius: keyof Border['radius'];
2233
+ borderBottomLeftRadius: keyof Border['radius'];
2234
+ }> & {
2235
+ as: BoxAsType;
2236
+ };
2237
+ declare type BoxProps = Partial<PaddingProps & MarginProps & LayoutProps & FlexboxProps & PositionProps & GridProps & BoxVisualProps & {
2238
+ children?: React.ReactNode | React.ReactNode[];
2239
+ } & TestID>;
2240
+ declare type BoxRefType = Platform.Select<{
2241
+ web: Omit<HTMLElement, 'style'>;
2242
+ native: View;
2243
+ }>;
2244
+
2245
+ declare const Box: React__default.ForwardRefExoticComponent<Partial<MakeObjectResponsive<{
2246
+ padding: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
2247
+ paddingX: SpacingValueType;
2248
+ paddingY: SpacingValueType;
2249
+ paddingTop: SpacingValueType;
2250
+ paddingRight: SpacingValueType;
2251
+ paddingBottom: SpacingValueType;
2252
+ paddingLeft: SpacingValueType;
2253
+ }> & MakeObjectResponsive<{
2254
+ margin: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
2255
+ marginX: SpacingValueType;
2256
+ marginY: SpacingValueType;
2257
+ marginTop: SpacingValueType;
2258
+ marginRight: SpacingValueType;
2259
+ marginBottom: SpacingValueType;
2260
+ marginLeft: SpacingValueType;
2261
+ }> & MakeObjectResponsive<{
2262
+ height: SpacingValueType;
2263
+ minHeight: SpacingValueType;
2264
+ maxHeight: SpacingValueType;
2265
+ width: SpacingValueType;
2266
+ minWidth: SpacingValueType;
2267
+ maxWidth: SpacingValueType;
2268
+ } & PickIfExist$1<styled_components.CSSObject, "display" | "overflowX" | "overflowY" | "overflow"> & {
2269
+ __brand__?: "platform-web" | undefined;
2270
+ }> & MakeObjectResponsive<{
2271
+ gap: SpacingValueType;
2272
+ rowGap: SpacingValueType;
2273
+ columnGap: SpacingValueType;
2274
+ flex: string | number;
2275
+ } & PickIfExist$1<styled_components.CSSObject, "alignContent" | "alignItems" | "alignSelf" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "justifyContent" | "justifyItems" | "justifySelf" | "order" | "placeSelf"> & {
2276
+ __brand__?: "platform-web" | undefined;
2277
+ }> & MakeObjectResponsive<{
2278
+ top: SpacingValueType;
2279
+ right: SpacingValueType;
2280
+ bottom: SpacingValueType;
2281
+ left: SpacingValueType;
2282
+ } & PickIfExist$1<styled_components.CSSObject, "position" | "zIndex"> & {
2283
+ __brand__?: "platform-web" | undefined;
2284
+ }> & MakeObjectResponsive<PickCSSByPlatform$1<"grid" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "gridArea" | "gridColumn" | "gridRow" | "gridTemplate">> & MakeObjectResponsive<{
2285
+ backgroundColor: "surface.background.level1.lowContrast" | "surface.background.level1.highContrast" | "surface.background.level2.lowContrast" | "surface.background.level2.highContrast" | "surface.background.level3.lowContrast" | "surface.background.level3.highContrast";
2286
+ borderWidth: "none" | "thin" | "thick";
2287
+ borderColor: "surface.border.normal.lowContrast" | "surface.border.normal.highContrast" | "surface.border.subtle.lowContrast" | "surface.border.subtle.highContrast";
2288
+ borderTopWidth: "none" | "thin" | "thick";
2289
+ borderTopColor: "surface.border.normal.lowContrast" | "surface.border.normal.highContrast" | "surface.border.subtle.lowContrast" | "surface.border.subtle.highContrast";
2290
+ borderRightWidth: "none" | "thin" | "thick";
2291
+ borderRightColor: "surface.border.normal.lowContrast" | "surface.border.normal.highContrast" | "surface.border.subtle.lowContrast" | "surface.border.subtle.highContrast";
2292
+ borderBottomWidth: "none" | "thin" | "thick";
2293
+ borderBottomColor: "surface.border.normal.lowContrast" | "surface.border.normal.highContrast" | "surface.border.subtle.lowContrast" | "surface.border.subtle.highContrast";
2294
+ borderLeftWidth: "none" | "thin" | "thick";
2295
+ borderLeftColor: "surface.border.normal.lowContrast" | "surface.border.normal.highContrast" | "surface.border.subtle.lowContrast" | "surface.border.subtle.highContrast";
2296
+ borderRadius: "none" | "small" | "medium" | "large" | "max" | "round";
2297
+ borderTopLeftRadius: "none" | "small" | "medium" | "large" | "max" | "round";
2298
+ borderTopRightRadius: "none" | "small" | "medium" | "large" | "max" | "round";
2299
+ borderBottomRightRadius: "none" | "small" | "medium" | "large" | "max" | "round";
2300
+ borderBottomLeftRadius: "none" | "small" | "medium" | "large" | "max" | "round";
2301
+ }> & {
2302
+ as: "header" | "main" | "aside" | "div" | "footer" | "nav" | "section" | "span";
2303
+ } & {
2304
+ children?: React__default.ReactNode | React__default.ReactNode[];
2305
+ } & TestID> & React__default.RefAttributes<BoxRefType>>;
2306
+
2307
+ declare const ComponentIds: {
2308
+ CardHeader: string;
2309
+ CardHeaderTrailing: string;
2310
+ CardHeaderLeading: string;
2311
+ CardFooter: string;
2312
+ CardFooterTrailing: string;
2313
+ CardFooterLeading: string;
2314
+ CardBody: string;
2315
+ CardHeaderIcon: string;
2316
+ CardHeaderCounter: string;
2317
+ CardHeaderBadge: string;
2318
+ CardHeaderText: string;
2319
+ CardHeaderLink: string;
2320
+ CardHeaderIconButton: string;
2321
+ };
2322
+ declare type CardProps = {
2323
+ /**
2324
+ * Card contents
2325
+ */
2326
+ children: React__default.ReactNode;
2327
+ /**
2328
+ * Sets the background color of the Card according to the surface level tokens
2329
+ *
2330
+ * eg: `theme.colors.surface.background.level1`
2331
+ *
2332
+ * @default `2`
2333
+ *
2334
+ * **Description:**
2335
+ *
2336
+ * - 2: Used in layouts which are on top of the main background
2337
+ * - 3: Used over the cards template or as a text input backgrounds.
2338
+ *
2339
+ * **Links:**
2340
+ * - Docs: https://blade.razorpay.com/?path=/docs/tokens-colors--page#-theme-tokens
2341
+ * - Figma: https://shorturl.at/fsvwK
2342
+ */
2343
+ surfaceLevel?: Exclude<SurfaceLevels, 1>;
2344
+ /**
2345
+ * Sets the elevation for Cards
2346
+ *
2347
+ * eg: `theme.elevation.midRaised`
2348
+ *
2349
+ * @default `theme.elevation.lowRaised`
2350
+ *
2351
+ * **Links:**
2352
+ * - Docs: https://blade.razorpay.com/?path=/docs/tokens-elevation--page
2353
+ */
2354
+ elevation?: keyof Elevation;
2355
+ /**
2356
+ * Sets the padding equally on all sides. Only few `spacing` tokens are allowed deliberately
2357
+ * @default `spacing.7`
2358
+ *
2359
+ * **Links:**
2360
+ * - Docs: https://blade.razorpay.com/?path=/docs/tokens-spacing--page
2361
+ */
2362
+ padding?: Extract<SpacingValueType$1, 'spacing.0' | 'spacing.3' | 'spacing.5' | 'spacing.7'>;
2363
+ } & TestID & StyledPropsBlade;
2364
+ declare const Card: ({ children, surfaceLevel, elevation, testID, padding, ...styledProps }: CardProps) => React__default.ReactElement;
2365
+ declare type CardBodyProps = {
2366
+ children: React__default.ReactNode;
2367
+ } & TestID;
2368
+ declare const CardBody: ({ children, testID }: CardBodyProps) => React__default.ReactElement;
2369
+
2370
+ declare type LinkCommonProps = {
2371
+ variant?: 'anchor' | 'button';
2372
+ icon?: IconComponent$1;
2373
+ iconPosition?: 'left' | 'right';
2374
+ isDisabled?: boolean;
2375
+ onClick?: (event: SyntheticEvent) => void;
2376
+ href?: string;
2377
+ target?: string;
2378
+ accessibilityLabel?: string;
2379
+ /**
2380
+ * Sets the size of the link
2381
+ *
2382
+ * @default medium
2383
+ */
2384
+ size?: 'small' | 'medium' | 'large';
2385
+ } & TestID & StyledPropsBlade & Platform.Select<{
2386
+ native: {
2387
+ /**
2388
+ * Defines how far your touch can start away from the link
2389
+ */
2390
+ hitSlop?: {
2391
+ top?: number;
2392
+ right?: number;
2393
+ bottom?: number;
2394
+ left?: number;
2395
+ } | number;
2396
+ /**
2397
+ * This is a web only prop and has no effect on react-native.
2398
+ */
2399
+ htmlTitle?: undefined;
2400
+ };
2401
+ web: {
2402
+ /**
2403
+ * This is a react-native only prop and has no effect on web.
2404
+ */
2405
+ hitSlop?: undefined;
2406
+ /**
2407
+ * The title of the link which is displayed as a tooltip.
2408
+ */
2409
+ htmlTitle?: string;
2410
+ };
2411
+ }>;
2412
+ declare type LinkWithoutIconProps = LinkCommonProps & {
2413
+ icon?: undefined;
2414
+ children: StringChildrenType;
2415
+ };
2416
+ declare type LinkWithIconProps = LinkCommonProps & {
2417
+ icon: IconComponent$1;
2418
+ children?: StringChildrenType;
2419
+ };
2420
+ declare type LinkPropsWithOrWithoutIcon = LinkWithIconProps | LinkWithoutIconProps;
2421
+ declare type LinkAnchorVariantProps = LinkPropsWithOrWithoutIcon & {
2422
+ variant?: 'anchor';
2423
+ href?: string;
2424
+ target?: string;
2425
+ rel?: string;
2426
+ isDisabled?: undefined;
2427
+ };
2428
+ declare type LinkButtonVariantProps = LinkPropsWithOrWithoutIcon & {
2429
+ variant?: 'button';
2430
+ isDisabled?: boolean;
2431
+ href?: undefined;
2432
+ target?: undefined;
2433
+ rel?: undefined;
2434
+ };
2435
+ declare type LinkProps = LinkAnchorVariantProps | LinkButtonVariantProps;
2436
+ declare const Link: ({ children, icon, iconPosition, isDisabled, onClick, variant, href, target, rel, accessibilityLabel, size, testID, hitSlop, htmlTitle, ...styledProps }: LinkProps) => ReactElement;
2437
+
2438
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2439
+
2440
+
2441
+ type BladeElementRef = Platform.Select<{
2442
+ web: Pick<HTMLElement, 'focus' | 'scrollIntoView'> | Pick<View, 'focus'>;
2443
+ native: React.MutableRefObject<any>;
2444
+ }>;
2445
+
2446
+ declare type ButtonCommonProps = {
2447
+ variant?: 'primary' | 'secondary' | 'tertiary';
2448
+ size?: 'xsmall' | 'small' | 'medium' | 'large';
2449
+ iconPosition?: 'left' | 'right';
2450
+ isDisabled?: boolean;
2451
+ isFullWidth?: boolean;
2452
+ isLoading?: boolean;
2453
+ accessibilityLabel?: string;
2454
+ type?: 'button' | 'reset' | 'submit';
2455
+ onClick?: Platform.Select<{
2456
+ native: (event: GestureResponderEvent) => void;
2457
+ web: (event: React__default.MouseEvent<HTMLButtonElement>) => void;
2458
+ }>;
2459
+ } & TestID & StyledPropsBlade;
2460
+ declare type ButtonWithoutIconProps = ButtonCommonProps & {
2461
+ icon?: undefined;
2462
+ children: StringChildrenType;
2463
+ };
2464
+ declare type ButtonWithIconProps = ButtonCommonProps & {
2465
+ icon: IconComponent$1;
2466
+ children?: StringChildrenType;
2467
+ };
2468
+ declare type ButtonProps = ButtonWithoutIconProps | ButtonWithIconProps;
2469
+ declare const Button: React__default.ForwardRefExoticComponent<ButtonProps & React__default.RefAttributes<BladeElementRef>>;
2470
+
2471
+ type FeedbackColors$1 = `feedback.text.${DotNotationColorStringToken<
2472
+ Theme$1['colors']['feedback']['text']
2473
+ >}`;
2474
+ type FeedbackActionColors$1 = `feedback.${Feedback}.action.text.${DotNotationColorStringToken<
2475
+ Theme$1['colors']['feedback'][Feedback]['action']['text']
2476
+ >}`;
2477
+ type SurfaceColors$1 = `surface.text.${DotNotationColorStringToken<
2478
+ Theme$1['colors']['surface']['text']
2479
+ >}`;
2480
+ type ActionColors$1 = `action.text.${DotNotationColorStringToken<Theme$1['colors']['action']['text']>}`;
2481
+ type BadgeTextColors$1 = `badge.text.${DotNotationColorStringToken<
2482
+ Theme$1['colors']['badge']['text']
2483
+ >}`;
2484
+
2485
+ type BaseTextProps$1 = {
2486
+ id?: string;
2487
+ color?: ActionColors$1 | FeedbackColors$1 | SurfaceColors$1 | FeedbackActionColors$1 | BadgeTextColors$1;
2488
+ fontFamily?: keyof Theme$1['typography']['fonts']['family'];
2489
+ fontSize?: keyof Theme$1['typography']['fonts']['size'];
2490
+ fontWeight?: keyof Theme$1['typography']['fonts']['weight'];
2491
+ fontStyle?: 'italic' | 'normal';
2492
+ textDecorationLine?: 'line-through' | 'none' | 'underline';
2493
+ lineHeight?: keyof Theme$1['typography']['lineHeights'];
2494
+ /**
2495
+ * Web only
2496
+ */
2497
+ as?: 'code' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span';
2498
+ textAlign?: 'center' | 'justify' | 'left' | 'right';
2499
+ truncateAfterLines?: number;
2500
+ className?: string;
2501
+ style?: React.CSSProperties;
2502
+ children: React.ReactNode;
2503
+ accessibilityProps?: Partial<AccessibilityProps>;
2504
+ /**
2505
+ * React Native only
2506
+ */
2507
+ numberOfLines?: number;
2508
+ componentName?: 'text' | 'title' | 'heading' | 'code';
2509
+ } & TestID &
2510
+ StyledPropsBlade;
2511
+
2512
+ /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */
2513
+
2514
+
2515
+ type TextCommonProps$1 = {
2516
+ type?: TextTypes;
2517
+ contrast?: ColorContrastTypes;
2518
+ truncateAfterLines?: number;
2519
+ children: React.ReactNode;
2520
+ weight?: keyof Theme$1['typography']['fonts']['weight'];
2521
+ /**
2522
+ * **For Internal use only**: Sets the color of the Text component
2523
+ */
2524
+ color?: BaseTextProps$1['color'];
2525
+ textAlign?: BaseTextProps$1['textAlign'];
2526
+ } & TestID &
2527
+ StyledPropsBlade;
2528
+
2529
+ type TextVariant$1 = 'body' | 'caption';
2530
+
2531
+ type TextBodyVariant$1 = TextCommonProps$1 & {
2532
+ variant?: Extract<TextVariant$1, 'body'>;
2533
+ size?: 'xsmall' | 'small' | 'medium' | 'large';
2534
+ };
2535
+
2536
+ type TextCaptionVariant$1 = TextCommonProps$1 & {
2537
+ variant?: Extract<TextVariant$1, 'caption'>;
2538
+ size?: 'medium';
2539
+ };
2540
+
2541
+ /**
2542
+ * Conditionally changing props based on variant.
2543
+ * Overloads or union gives wrong intellisense.
2544
+ */
2545
+ type TextProps$1<T> = T extends {
2546
+ variant: infer Variant;
2547
+ }
2548
+ ? Variant extends 'caption'
2549
+ ? TextCaptionVariant$1
2550
+ : Variant extends 'body'
2551
+ ? TextBodyVariant$1
2552
+ : T
2553
+ : T;
2554
+
2555
+ type CounterProps$1 = {
2556
+ /**
2557
+ * Sets the value for the counter.
2558
+ */
2559
+ value: number;
2560
+ /**
2561
+ * Sets the max value for the counter.
2562
+ * If value exceedes `max` it will render `value+`
2563
+ */
2564
+ max?: number;
2565
+ /**
2566
+ * Sets the intent of the counter.
2567
+ *
2568
+ * @default 'neutral'
2569
+ */
2570
+ intent?: Feedback;
2571
+ /**
2572
+ * Sets the contrast of the counter.
2573
+ *
2574
+ * @default 'low'
2575
+ */
2576
+ contrast?: 'high' | 'low';
2577
+ /**
2578
+ * Sets the size of the counter.
2579
+ *
2580
+ * @default 'medium'
2581
+ */
2582
+ size?: 'small' | 'medium' | 'large';
2583
+ } & TestID &
2584
+ StyledPropsBlade;
2585
+
2586
+ declare const CardHeaderIcon: ({ icon }: {
2587
+ icon: IconComponent$1;
2588
+ }) => React__default.ReactElement;
2589
+ declare const CardHeaderCounter: (props: CounterProps$1) => React__default.ReactElement;
2590
+ declare const CardHeaderBadge: (props: BadgeProps) => React__default.ReactElement;
2591
+ declare const CardHeaderText: (props: TextProps$1<{
2592
+ variant: TextVariant$1;
2593
+ }>) => React__default.ReactElement;
2594
+ declare const CardHeaderLink: (props: LinkProps) => React__default.ReactElement;
2595
+ declare type CardHeaderIconButtonProps = Omit<ButtonProps, 'variant' | 'size' | 'iconPosition' | 'isFullWidth' | 'children'> & {
2596
+ icon: IconComponent$1;
2597
+ };
2598
+ declare const CardHeaderIconButton: (props: CardHeaderIconButtonProps) => React__default.ReactElement;
2599
+ declare type CardHeaderProps = {
2600
+ children?: React__default.ReactNode;
2601
+ } & TestID;
2602
+ declare const CardHeader: ({ children, testID }: CardHeaderProps) => React__default.ReactElement;
2603
+ declare type CardHeaderLeadingProps = {
2604
+ title: string;
2605
+ subtitle?: string;
2606
+ /**
2607
+ * prefix element of Card
2608
+ *
2609
+ * Accepts: `CardHeaderIcon` component
2610
+ */
2611
+ prefix?: React__default.ReactNode;
2612
+ /**
2613
+ * suffix element of Card
2614
+ *
2615
+ * Accepts: `CardHeaderCounter` component
2616
+ */
2617
+ suffix?: React__default.ReactNode;
2618
+ };
2619
+ declare const CardHeaderLeading: ({ title, subtitle, prefix, suffix, }: CardHeaderLeadingProps) => React__default.ReactElement;
2620
+ declare type CardHeaderTrailingProps = {
2621
+ /**
2622
+ * Renders a visual ornament in card header trailing section
2623
+ *
2624
+ * Accepts: `CardHeaderLink`, `CardHeaderText`, `CardHeaderIconButton`, `CardHeaderBadge`
2625
+ */
2626
+ visual?: React__default.ReactNode;
2627
+ };
2628
+ declare const CardHeaderTrailing: ({ visual }: CardHeaderTrailingProps) => React__default.ReactElement;
2629
+
2630
+ declare type CardFooterAction = Pick<ButtonProps, 'type' | 'accessibilityLabel' | 'isLoading' | 'isDisabled' | 'icon' | 'iconPosition' | 'onClick'> & {
2631
+ text: ButtonProps['children'];
2632
+ };
2633
+ declare type CardFooterProps = {
2634
+ children?: React__default.ReactNode;
2635
+ } & TestID;
2636
+ declare const CardFooter: ({ children, testID }: CardFooterProps) => React__default.ReactElement;
2637
+ declare type CardFooterLeadingProps = {
2638
+ title?: string;
2639
+ subtitle?: string;
2640
+ };
2641
+ declare const CardFooterLeading: ({ title, subtitle }: CardFooterLeadingProps) => React__default.ReactElement;
2642
+ declare type CardFooterTrailingProps = {
2643
+ actions?: {
2644
+ primary?: CardFooterAction;
2645
+ secondary?: CardFooterAction;
2646
+ };
2647
+ };
2648
+ declare const CardFooterTrailing: ({ actions }: CardFooterTrailingProps) => React__default.ReactElement;
2649
+
2650
+ declare type IconButtonProps = {
2651
+ /**
2652
+ * Icon component to be rendered, eg. `CloseIcon`
2653
+ */
2654
+ icon: IconComponent$1;
2655
+ onClick: () => void;
2656
+ /**
2657
+ * Icon size
2658
+ *
2659
+ * @default 'medium'
2660
+ */
2661
+ size?: 'medium' | 'large';
2662
+ /**
2663
+ * Icon contrast
2664
+ *
2665
+ * @default 'low'
2666
+ */
2667
+ contrast?: 'low' | 'high';
2668
+ /**
2669
+ * Sets aria-label to help users know what the action does, eg 'Dismiss alert'
2670
+ */
2671
+ accessibilityLabel: string;
2672
+ };
2673
+ declare const IconButton: React__default.ForwardRefExoticComponent<IconButtonProps & React__default.RefAttributes<BladeElementRef>>;
2674
+
2675
+ declare type CounterProps = {
2676
+ /**
2677
+ * Sets the value for the counter.
2678
+ */
2679
+ value: number;
2680
+ /**
2681
+ * Sets the max value for the counter.
2682
+ * If value exceedes `max` it will render `value+`
2683
+ */
2684
+ max?: number;
2685
+ /**
2686
+ * Sets the intent of the counter.
2687
+ *
2688
+ * @default 'neutral'
2689
+ */
2690
+ intent?: Feedback;
2691
+ /**
2692
+ * Sets the contrast of the counter.
2693
+ *
2694
+ * @default 'low'
2695
+ */
2696
+ contrast?: 'high' | 'low';
2697
+ /**
2698
+ * Sets the size of the counter.
2699
+ *
2700
+ * @default 'medium'
2701
+ */
2702
+ size?: 'small' | 'medium' | 'large';
2703
+ } & TestID & StyledPropsBlade;
2704
+ declare const Counter: ({ value, max, intent, contrast, size, testID, ...styledProps }: CounterProps) => React.ReactElement;
2705
+
2706
+ declare type OnChange = ({ isChecked, event, value, }: {
2707
+ isChecked: boolean;
2708
+ event?: React__default.ChangeEvent;
2709
+ value?: string;
2710
+ }) => void;
2711
+ declare type CheckboxProps = {
2712
+ /**
2713
+ * If `true`, The checkbox will be checked. This also makes the checkbox controlled
2714
+ * Use `onChange` to update its value
2715
+ *
2716
+ * @default false
2717
+ */
2718
+ isChecked?: boolean;
2719
+ /**
2720
+ * If `true`, the checkbox will be initially checked. This also makes the checkbox uncontrolled
2721
+ *
2722
+ * @default false
2723
+ */
2724
+ defaultChecked?: boolean;
2725
+ /**
2726
+ * The callback invoked when the checked state of the `Checkbox` changes.
2727
+ */
2728
+ onChange?: OnChange;
2729
+ /**
2730
+ * Sets the label of the checkbox
2731
+ */
2732
+ children: React__default.ReactNode;
2733
+ /**
2734
+ * Help text for the checkbox
2735
+ */
2736
+ helpText?: string;
2737
+ /**
2738
+ * Error text for the checkbox
2739
+ *
2740
+ * Renders when `validationState` is set to 'error'
2741
+ */
2742
+ errorText?: string;
2743
+ /**
2744
+ * If `true`, the checkbox will be indeterminate.
2745
+ * This does not modify the isChecked property.
2746
+ *
2747
+ * @default false
2748
+ */
2749
+ isIndeterminate?: boolean;
2750
+ /**
2751
+ * The name of the input field in a checkbox
2752
+ * (Useful for form submission).
2753
+ */
2754
+ name?: string;
2755
+ /**
2756
+ * The value to be used in the checkbox input.
2757
+ * This is the value that will be returned on form submission.
2758
+ */
2759
+ value?: string;
2760
+ /**
2761
+ * If `true`, the checkbox will be disabled
2762
+ *
2763
+ * @default false
2764
+ */
2765
+ isDisabled?: boolean;
2766
+ /**
2767
+ * If `true`, the checkbox input is marked as required,
2768
+ * and `required` attribute will be added
2769
+ *
2770
+ * @default false
2771
+ */
2772
+ isRequired?: boolean;
2773
+ /**
2774
+ * If `error`, the checkbox input is marked as invalid,
2775
+ * and `invalid` attribute will be added
2776
+ */
2777
+ validationState?: 'error' | 'none';
2778
+ /**
2779
+ * Size of the checkbox
2780
+ *
2781
+ * @default "medium"
2782
+ */
2783
+ size?: 'small' | 'medium';
2784
+ /**
2785
+ * Sets the tab-index property on checkbox element
2786
+ *
2787
+ */
2788
+ tabIndex?: number;
2789
+ } & TestID & StyledPropsBlade;
2790
+ declare const Checkbox: React__default.ForwardRefExoticComponent<{
2791
+ /**
2792
+ * If `true`, The checkbox will be checked. This also makes the checkbox controlled
2793
+ * Use `onChange` to update its value
2794
+ *
2795
+ * @default false
2796
+ */
2797
+ isChecked?: boolean | undefined;
2798
+ /**
2799
+ * If `true`, the checkbox will be initially checked. This also makes the checkbox uncontrolled
2800
+ *
2801
+ * @default false
2802
+ */
2803
+ defaultChecked?: boolean | undefined;
2804
+ /**
2805
+ * The callback invoked when the checked state of the `Checkbox` changes.
2806
+ */
2807
+ onChange?: OnChange | undefined;
2808
+ /**
2809
+ * Sets the label of the checkbox
2810
+ */
2811
+ children: React__default.ReactNode;
2812
+ /**
2813
+ * Help text for the checkbox
2814
+ */
2815
+ helpText?: string | undefined;
2816
+ /**
2817
+ * Error text for the checkbox
2818
+ *
2819
+ * Renders when `validationState` is set to 'error'
2820
+ */
2821
+ errorText?: string | undefined;
2822
+ /**
2823
+ * If `true`, the checkbox will be indeterminate.
2824
+ * This does not modify the isChecked property.
2825
+ *
2826
+ * @default false
2827
+ */
2828
+ isIndeterminate?: boolean | undefined;
2829
+ /**
2830
+ * The name of the input field in a checkbox
2831
+ * (Useful for form submission).
2832
+ */
2833
+ name?: string | undefined;
2834
+ /**
2835
+ * The value to be used in the checkbox input.
2836
+ * This is the value that will be returned on form submission.
2837
+ */
2838
+ value?: string | undefined;
2839
+ /**
2840
+ * If `true`, the checkbox will be disabled
2841
+ *
2842
+ * @default false
2843
+ */
2844
+ isDisabled?: boolean | undefined;
2845
+ /**
2846
+ * If `true`, the checkbox input is marked as required,
2847
+ * and `required` attribute will be added
2848
+ *
2849
+ * @default false
2850
+ */
2851
+ isRequired?: boolean | undefined;
2852
+ /**
2853
+ * If `error`, the checkbox input is marked as invalid,
2854
+ * and `invalid` attribute will be added
2855
+ */
2856
+ validationState?: "none" | "error" | undefined;
2857
+ /**
2858
+ * Size of the checkbox
2859
+ *
2860
+ * @default "medium"
2861
+ */
2862
+ size?: "small" | "medium" | undefined;
2863
+ /**
2864
+ * Sets the tab-index property on checkbox element
2865
+ *
2866
+ */
2867
+ tabIndex?: number | undefined;
2868
+ } & TestID & Partial<Omit<MakeObjectResponsive<{
2869
+ margin: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
2870
+ marginX: SpacingValueType;
2871
+ marginY: SpacingValueType;
2872
+ marginTop: SpacingValueType;
2873
+ marginRight: SpacingValueType;
2874
+ marginBottom: SpacingValueType;
2875
+ marginLeft: SpacingValueType;
2876
+ }> & Pick<MakeObjectResponsive<{
2877
+ gap: SpacingValueType;
2878
+ rowGap: SpacingValueType;
2879
+ columnGap: SpacingValueType;
2880
+ flex: string | number;
2881
+ } & PickIfExist$1<styled_components.CSSObject, "alignContent" | "alignItems" | "alignSelf" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "justifyContent" | "justifyItems" | "justifySelf" | "order" | "placeSelf"> & {
2882
+ __brand__?: "platform-web" | undefined;
2883
+ }>, "alignSelf" | "justifySelf" | "order" | "placeSelf"> & MakeObjectResponsive<{
2884
+ top: SpacingValueType;
2885
+ right: SpacingValueType;
2886
+ bottom: SpacingValueType;
2887
+ left: SpacingValueType;
2888
+ } & PickIfExist$1<styled_components.CSSObject, "position" | "zIndex"> & {
2889
+ __brand__?: "platform-web" | undefined;
2890
+ }> & Pick<MakeObjectResponsive<PickCSSByPlatform$1<"grid" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "gridArea" | "gridColumn" | "gridRow" | "gridTemplate">>, "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridArea" | "gridColumn" | "gridRow">, "__brand__">> & React__default.RefAttributes<BladeElementRef>>;
2891
+
2892
+ declare type CheckboxGroupProps = {
2893
+ /**
2894
+ * Accepts multiple checkboxes as children
2895
+ */
2896
+ children: React__default.ReactNode;
2897
+ /**
2898
+ * Help text of the checkbox group
2899
+ */
2900
+ helpText?: string;
2901
+ /**
2902
+ * Error text of the checkbox group
2903
+ * Renders when `validationState` is set to 'error'
2904
+ *
2905
+ * Overrides helpText
2906
+ */
2907
+ errorText?: string;
2908
+ /**
2909
+ * Sets the error state of the CheckboxGroup
2910
+ * If set to `error` it will render the `errorText` of the group,
2911
+ * and propagate `invalid` prop to every checkbox
2912
+ */
2913
+ validationState?: 'error' | 'none';
2914
+ /**
2915
+ * Renders a necessity indicator after CheckboxGroup label
2916
+ *
2917
+ * If set to `undefined` it renders nothing.
2918
+ */
2919
+ necessityIndicator?: 'required' | 'optional' | 'none';
2920
+ /**
2921
+ * Sets the disabled state of the CheckboxGroup
2922
+ * If set to `true` it propagate down to all the checkboxes
2923
+ *
2924
+ * @default false
2925
+ */
2926
+ isDisabled?: boolean;
2927
+ /**
2928
+ * Renders the label of the checkbox group
2929
+ */
2930
+ label: string;
2931
+ /**
2932
+ * Sets the position of the label
2933
+ *
2934
+ * @default 'top'
2935
+ */
2936
+ labelPosition?: 'top' | 'left';
2937
+ /**
2938
+ * Initial value of the checkbox group
2939
+ */
2940
+ defaultValue?: string[];
2941
+ /**
2942
+ * value of the checkbox group
2943
+ *
2944
+ * Use `onChange` to update its value
2945
+ */
2946
+ value?: string[];
2947
+ /**
2948
+ * The callback invoked when any of the checkbox's state changes
2949
+ */
2950
+ onChange?: ({ name, values }: {
2951
+ name: string;
2952
+ values: string[];
2953
+ }) => void;
2954
+ /**
2955
+ * The name of the input field in a checkbox
2956
+ * (Useful for form submission).
2957
+ */
2958
+ name?: string;
2959
+ /**
2960
+ * Size of the checkbox
2961
+ *
2962
+ * @default "medium"
2963
+ */
2964
+ size?: 'small' | 'medium';
2965
+ } & TestID & StyledPropsBlade;
2966
+ declare const CheckboxGroup: ({ children, label, helpText, isDisabled, necessityIndicator, labelPosition, validationState, errorText, name, defaultValue, onChange, value, size, testID, ...styledProps }: CheckboxGroupProps) => React__default.ReactElement;
2967
+
2968
+ declare type DropdownProps = {
2969
+ selectionType?: 'single' | 'multiple';
2970
+ onDismiss?: () => void;
2971
+ children: React__default.ReactNode[];
2972
+ } & StyledPropsBlade;
2973
+ declare const Dropdown: ({ children, selectionType, onDismiss, ...styledProps }: DropdownProps) => JSX.Element;
2974
+
2975
+ declare type DropdownOverlayProps = {
2976
+ children: React__default.ReactNode;
2977
+ } & TestID;
2978
+ declare const DropdownOverlay: ({ children, testID }: DropdownOverlayProps) => JSX.Element;
2979
+
2980
+ declare type BaseButtonCommonProps = {
2981
+ size?: 'xsmall' | 'small' | 'medium' | 'large';
2982
+ iconPosition?: 'left' | 'right';
2983
+ isDisabled?: boolean;
2984
+ isFullWidth?: boolean;
2985
+ onBlur?: Platform.Select<{
2986
+ native: (event: GestureResponderEvent) => void;
2987
+ web: (event: React__default.FocusEvent<HTMLButtonElement>) => void;
2988
+ }>;
2989
+ onKeyDown?: Platform.Select<{
2990
+ native: (event: GestureResponderEvent) => void;
2991
+ web: (event: React__default.KeyboardEvent<HTMLButtonElement>) => void;
2992
+ }>;
2993
+ onClick?: Platform.Select<{
2994
+ native: (event: GestureResponderEvent) => void;
2995
+ web: (event: React__default.MouseEvent<HTMLButtonElement>) => void;
2996
+ }>;
2997
+ type?: 'button' | 'reset' | 'submit';
2998
+ isLoading?: boolean;
2999
+ accessibilityLabel?: string;
3000
+ variant?: 'primary' | 'secondary' | 'tertiary';
3001
+ contrast?: 'low' | 'high';
3002
+ intent?: 'positive' | 'negative' | 'notice' | 'information' | 'neutral';
3003
+ } & TestID & StyledPropsBlade;
3004
+ declare type BaseButtonWithoutIconProps = BaseButtonCommonProps & {
3005
+ icon?: undefined;
3006
+ children: StringChildrenType;
3007
+ };
3008
+ declare type BaseButtonWithIconProps = BaseButtonCommonProps & {
3009
+ icon: IconComponent$1;
3010
+ children?: StringChildrenType;
3011
+ };
3012
+ declare type BaseButtonProps = BaseButtonWithIconProps | BaseButtonWithoutIconProps;
3013
+
3014
+ declare type DropdownButtonProps = ButtonProps & {
3015
+ onBlur?: BaseButtonProps['onBlur'];
3016
+ onKeyDown?: BaseButtonProps['onKeyDown'];
3017
+ };
3018
+ declare const DropdownButton: ({ children, icon, iconPosition, isDisabled, isFullWidth, isLoading, onClick, onBlur, onKeyDown, size, type, variant, accessibilityLabel, testID, ...styledProps }: DropdownButtonProps) => JSX.Element;
3019
+
3020
+ declare const ArrowDownIcon: IconComponent;
3021
+
3022
+ declare const ArrowLeftIcon: IconComponent;
3023
+
3024
+ declare const ArrowRightIcon: IconComponent;
3025
+
3026
+ declare const ArrowUpRightIcon: IconComponent;
3027
+
3028
+ declare const ArrowUpIcon: IconComponent;
3029
+
3030
+ declare const Attachment: ({ size, color, ...styledProps }: IconProps) => ReactElement;
3031
+
3032
+ declare const CheckIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
3033
+
3034
+ declare const ChevronDownIcon: IconComponent;
3035
+
3036
+ declare const ChevronLeftIcon: IconComponent;
3037
+
3038
+ declare const ChevronRightIcon: IconComponent;
3039
+
3040
+ declare const ChevronUpIcon: IconComponent;
3041
+
3042
+ declare const CloseIcon: IconComponent;
3043
+
3044
+ declare const CreditCardIcon: IconComponent;
3045
+
3046
+ declare const DollarIcon: IconComponent;
3047
+
3048
+ declare const DownloadIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
3049
+
3050
+ declare const EditIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
3051
+
3052
+ declare const EyeIcon: IconComponent;
3053
+
3054
+ declare const EyeOffIcon: IconComponent;
3055
+
3056
+ declare const FileTextIcon: IconComponent;
3057
+
3058
+ declare const HistoryIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
3059
+
3060
+ declare const HomeIcon: IconComponent;
3061
+
3062
+ declare const InfoIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
3063
+
3064
+ declare const LinkIcon: IconComponent;
3065
+
3066
+ declare const LockIcon: IconComponent;
3067
+
3068
+ declare const PauseIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
3069
+
3070
+ declare const PlusIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
3071
+
3072
+ declare const RupeeIcon: IconComponent;
3073
+
3074
+ declare const SearchIcon: IconComponent;
3075
+
3076
+ declare const SettingsIcon: IconComponent;
3077
+
3078
+ declare const SlashIcon: IconComponent;
3079
+
3080
+ declare const BankIcon: IconComponent;
3081
+
3082
+ declare const TrashIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
3083
+
3084
+ declare const AlertTriangleIcon$1: ({ size, color, ...styledProps }: IconProps) => ReactElement;
3085
+
3086
+ declare const AlertTriangleIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
3087
+
3088
+ declare const CheckCircleIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
3089
+
3090
+ declare const MinusIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
3091
+
3092
+ declare const TrendingUpIcon: IconComponent;
3093
+
3094
+ declare const TrendingDownIcon: IconComponent;
3095
+
3096
+ declare const UsersIcon: IconComponent;
3097
+
3098
+ declare const HelpCircleIcon: IconComponent;
3099
+
3100
+ declare const ExternalLinkIcon: IconComponent;
3101
+
3102
+ declare const MailIcon: IconComponent;
3103
+
3104
+ declare const AlertCircleIcon: IconComponent;
3105
+
3106
+ declare const AlertOnlyIcon: IconComponent;
3107
+
3108
+ declare const QRCodeIcon: IconComponent;
3109
+
3110
+ declare const BellIcon: IconComponent;
3111
+
3112
+ declare const BellOffIcon: IconComponent;
3113
+
3114
+ declare const BookmarkIcon: IconComponent;
3115
+
3116
+ declare const CheckSquareIcon: IconComponent;
3117
+
3118
+ declare const ClipboardIcon: IconComponent;
3119
+
3120
+ declare const CommandIcon: IconComponent;
3121
+
3122
+ declare const CopyIcon: IconComponent;
3123
+
3124
+ declare const CropIcon: IconComponent;
3125
+
3126
+ declare const CutIcon: IconComponent;
3127
+
3128
+ declare const DownloadCloudIcon: IconComponent;
3129
+
3130
+ declare const EditInlineIcon: IconComponent;
3131
+
3132
+ declare const EditComposeIcon: IconComponent;
3133
+
3134
+ declare const FileIcon: IconComponent;
3135
+
3136
+ declare const FilePlusIcon: IconComponent;
3137
+
3138
+ declare const FileMinusIcon: IconComponent;
3139
+
3140
+ declare const FilterIcon: IconComponent;
3141
+
3142
+ declare const FlagIcon: IconComponent;
3143
+
3144
+ declare const FolderIcon: IconComponent;
3145
+
3146
+ declare const GlobeIcon: IconComponent;
3147
+
3148
+ declare const HashIcon: IconComponent;
3149
+
3150
+ declare const HeartIcon: IconComponent;
3151
+
3152
+ declare const LogInIcon: IconComponent;
3153
+
3154
+ declare const LogOutIcon: IconComponent;
3155
+
3156
+ declare const MaximizeIcon: IconComponent;
3157
+
3158
+ declare const FullScreenEnterIcon: IconComponent;
3159
+
3160
+ declare const FullScreenExitIcon: IconComponent;
3161
+
3162
+ declare const MenuIcon: IconComponent;
3163
+
3164
+ declare const MicIcon: IconComponent;
3165
+
3166
+ declare const MicOffIcon: IconComponent;
3167
+
3168
+ declare const MinimizeIcon: IconComponent;
3169
+
3170
+ declare const MinusSquareIcon: IconComponent;
3171
+
3172
+ declare const MinusCircleIcon: IconComponent;
3173
+
3174
+ declare const MoreVerticalIcon: IconComponent;
3175
+
3176
+ declare const MoreHorizontalIcon: IconComponent;
3177
+
3178
+ declare const MoveIcon: IconComponent;
3179
+
3180
+ declare const PauseCircleIcon: IconComponent;
3181
+
3182
+ declare const PlayIcon: IconComponent;
3183
+
3184
+ declare const PlayCircleIcon: IconComponent;
3185
+
3186
+ declare const PlusCircleIcon: IconComponent;
3187
+
3188
+ declare const PlusSquareIcon: IconComponent;
3189
+
3190
+ declare const PowerIcon: IconComponent;
3191
+
3192
+ declare const RefreshIcon: IconComponent;
3193
+
3194
+ declare const RepeatIcon: IconComponent;
3195
+
3196
+ declare const RotateClockWiseIcon: IconComponent;
3197
+
3198
+ declare const RotateCounterClockWiseIcon: IconComponent;
3199
+
3200
+ declare const SaveIcon: IconComponent;
3201
+
3202
+ declare const ShareIcon: IconComponent;
3203
+
3204
+ declare const ExportIcon: IconComponent;
3205
+
3206
+ declare const ShoppingCartIcon: IconComponent;
3207
+
3208
+ declare const StopCircleIcon: IconComponent;
3209
+
3210
+ declare const SunIcon: IconComponent;
3211
+
3212
+ declare const ToggleLeftIcon: IconComponent;
3213
+
3214
+ declare const ToggleRightIcon: IconComponent;
3215
+
3216
+ declare const ListIcon: IconComponent;
3217
+
3218
+ declare const StarIcon: IconComponent;
3219
+
3220
+ declare const SlidersIcon: IconComponent;
3221
+
3222
+ declare const PaperclipIcon: IconComponent;
3223
+
3224
+ declare const UploadCloudIcon: IconComponent;
3225
+
3226
+ declare const TargetIcon: IconComponent;
3227
+
3228
+ declare const UnlockIcon: IconComponent;
3229
+
3230
+ declare const ThumbsUpIcon: IconComponent;
3231
+
3232
+ declare const ThumbsDownIcon: IconComponent;
3233
+
3234
+ declare const UploadIcon: IconComponent;
3235
+
3236
+ declare const VideoIcon: IconComponent;
3237
+
3238
+ declare const XSquareIcon: IconComponent;
3239
+
3240
+ declare const XCircleIcon: IconComponent;
3241
+
3242
+ declare const ZapIcon: IconComponent;
3243
+
3244
+ declare const ZoomOutIcon: IconComponent;
3245
+
3246
+ declare const ZoomInIcon: IconComponent;
3247
+
3248
+ declare const AlignJustifyIcon: IconComponent;
3249
+
3250
+ declare const AlignRightIcon: IconComponent;
3251
+
3252
+ declare const AlignLeftIcon: IconComponent;
3253
+
3254
+ declare const AlignCenterIcon: IconComponent;
3255
+
3256
+ declare const AnchorIcon: IconComponent;
3257
+
3258
+ declare const BoldIcon: IconComponent;
3259
+
3260
+ declare const ScissorsIcon: IconComponent;
3261
+
3262
+ declare const DeleteIcon: IconComponent;
3263
+
3264
+ declare const GridIcon: IconComponent;
3265
+
3266
+ declare const ImageIcon: IconComponent;
3267
+
3268
+ declare const InboxIcon: IconComponent;
3269
+
3270
+ declare const ItalicIcon: IconComponent;
3271
+
3272
+ declare const TypeIcon: IconComponent;
3273
+
3274
+ declare const UnderlineIcon: IconComponent;
3275
+
3276
+ declare const FilmIcon: IconComponent;
3277
+
3278
+ declare const AirplayIcon: IconComponent;
3279
+
3280
+ declare const AtSignIcon: IconComponent;
3281
+
3282
+ declare const BluetoothIcon: IconComponent;
3283
+
3284
+ declare const CameraIcon: IconComponent;
3285
+
3286
+ declare const CameraOffIcon: IconComponent;
3287
+
3288
+ declare const CastIcon: IconComponent;
3289
+
3290
+ declare const MessageCircleIcon: IconComponent;
3291
+
3292
+ declare const MessageSquareIcon: IconComponent;
3293
+
3294
+ declare const PhoneCallIcon: IconComponent;
3295
+
3296
+ declare const PhoneIcon: IconComponent;
3297
+
3298
+ declare const PhoneOutgoingIcon: IconComponent;
3299
+
3300
+ declare const PhoneOffIcon: IconComponent;
3301
+
3302
+ declare const PhoneMissedIcon: IconComponent;
3303
+
3304
+ declare const PhoneIncomingIcon: IconComponent;
3305
+
3306
+ declare const PhoneForwardedIcon: IconComponent;
3307
+
3308
+ declare const RadioIcon: IconComponent;
3309
+
3310
+ declare const VideoOffIcon: IconComponent;
3311
+
3312
+ declare const VoicemailIcon: IconComponent;
3313
+
3314
+ declare const WifiIcon: IconComponent;
3315
+
3316
+ declare const WifiOffIcon: IconComponent;
3317
+
3318
+ declare const ApertureIcon: IconComponent;
3319
+
3320
+ declare const AwardIcon: IconComponent;
3321
+
3322
+ declare const BoxIcon: IconComponent;
3323
+
3324
+ declare const BriefcaseIcon: IconComponent;
3325
+
3326
+ declare const ChromeIcon: IconComponent;
3327
+
3328
+ declare const CircleIcon: IconComponent;
3329
+
3330
+ declare const CrosshairIcon: IconComponent;
3331
+
3332
+ declare const DiscIcon: IconComponent;
3333
+
3334
+ declare const DropletIcon: IconComponent;
3335
+
3336
+ declare const FeatherIcon: IconComponent;
3337
+
3338
+ declare const LayersIcon: IconComponent;
3339
+
3340
+ declare const LayoutIcon: IconComponent;
3341
+
3342
+ declare const SidebarIcon: IconComponent;
3343
+
3344
+ declare const SquareIcon: IconComponent;
3345
+
3346
+ declare const TriangleIcon: IconComponent;
3347
+
3348
+ declare const LifeBuoyIcon: IconComponent;
3349
+
3350
+ declare const LoaderIcon: IconComponent;
3351
+
3352
+ declare const OctagonIcon: IconComponent;
3353
+
3354
+ declare const PackageIcon: IconComponent;
3355
+
3356
+ declare const PercentIcon: IconComponent;
3357
+
3358
+ declare const ShieldIcon: IconComponent;
3359
+
3360
+ declare const UmbrellaIcon: IconComponent;
3361
+
3362
+ declare const WindIcon: IconComponent;
3363
+
3364
+ declare const ArrowUpLeftIcon: IconComponent;
3365
+
3366
+ declare const ArrowDownRightIcon: IconComponent;
3367
+
3368
+ declare const ArrowDownLeftIcon: IconComponent;
3369
+
3370
+ declare const ChevronsRightIcon: IconComponent;
3371
+
3372
+ declare const ChevronsLeftIcon: IconComponent;
3373
+
3374
+ declare const ChevronsDownIcon: IconComponent;
3375
+
3376
+ declare const ChevronsUpIcon: IconComponent;
3377
+
3378
+ declare const CornerUpRightIcon: IconComponent;
3379
+
3380
+ declare const CornerDownLeftIcon: IconComponent;
3381
+
3382
+ declare const CornerRightUpIcon: IconComponent;
3383
+
3384
+ declare const CornerRightDownIcon: IconComponent;
3385
+
3386
+ declare const CornerLeftUpIcon: IconComponent;
3387
+
3388
+ declare const CornerDownRightIcon: IconComponent;
3389
+
3390
+ declare const CornerUpLeftIcon: IconComponent;
3391
+
3392
+ declare const CornerLeftDownIcon: IconComponent;
3393
+
3394
+ declare const FastForwardIcon: IconComponent;
3395
+
3396
+ declare const HeadphonesIcon: IconComponent;
3397
+
3398
+ declare const MusicIcon: IconComponent;
3399
+
3400
+ declare const RewindIcon: IconComponent;
3401
+
3402
+ declare const SkipBackIcon: IconComponent;
3403
+
3404
+ declare const SkipForwardIcon: IconComponent;
3405
+
3406
+ declare const VolumeIcon: IconComponent;
3407
+
3408
+ declare const VolumeMuteIcon: IconComponent;
3409
+
3410
+ declare const VolumeLowIcon: IconComponent;
3411
+
3412
+ declare const VolumeHighIcon: IconComponent;
3413
+
3414
+ declare const CalendarIcon: IconComponent;
3415
+
3416
+ declare const ClockIcon: IconComponent;
3417
+
3418
+ declare const CloudIcon: IconComponent;
3419
+
3420
+ declare const CloudDrizzleIcon: IconComponent;
3421
+
3422
+ declare const CloudSnowIcon: IconComponent;
3423
+
3424
+ declare const CloudOffIcon: IconComponent;
3425
+
3426
+ declare const CloudLightningIcon: IconComponent;
3427
+
3428
+ declare const MoonIcon: IconComponent;
3429
+
3430
+ declare const SunsetIcon: IconComponent;
3431
+
3432
+ declare const SunriseIcon: IconComponent;
3433
+
3434
+ declare const WatchIcon: IconComponent;
3435
+
3436
+ declare const CloudRainIcon: IconComponent;
3437
+
3438
+ declare const BatteryChargingIcon: IconComponent;
3439
+
3440
+ declare const BatteryIcon: IconComponent;
3441
+
3442
+ declare const CpuIcon: IconComponent;
3443
+
3444
+ declare const MonitorIcon: IconComponent;
3445
+
3446
+ declare const PrinterIcon: IconComponent;
3447
+
3448
+ declare const ServerIcon: IconComponent;
3449
+
3450
+ declare const SmartphoneIcon: IconComponent;
3451
+
3452
+ declare const SpeakerIcon: IconComponent;
3453
+
3454
+ declare const TabletIcon: IconComponent;
3455
+
3456
+ declare const ThermometerIcon: IconComponent;
3457
+
3458
+ declare const TvIcon: IconComponent;
3459
+
3460
+ declare const CodepenIcon: IconComponent;
3461
+
3462
+ declare const FacebookIcon: IconComponent;
3463
+
3464
+ declare const GitlabIcon: IconComponent;
3465
+
3466
+ declare const GithubIcon: IconComponent;
3467
+
3468
+ declare const InstagramIcon: IconComponent;
3469
+
3470
+ declare const PocketIcon: IconComponent;
3471
+
3472
+ declare const SlackIcon: IconComponent;
3473
+
3474
+ declare const TwitterIcon: IconComponent;
3475
+
3476
+ declare const UserCheckIcon: IconComponent;
3477
+
3478
+ declare const UserXIcon: IconComponent;
3479
+
3480
+ declare const UserPlusIcon: IconComponent;
3481
+
3482
+ declare const UserMinusIcon: IconComponent;
3483
+
3484
+ declare const ActivityIcon: IconComponent;
3485
+
3486
+ declare const BarChartIcon: IconComponent;
3487
+
3488
+ declare const BarChartAltIcon: IconComponent;
3489
+
3490
+ declare const PieChartIcon: IconComponent;
3491
+
3492
+ declare const CompassIcon: IconComponent;
3493
+
3494
+ declare const MapIcon: IconComponent;
3495
+
3496
+ declare const MapPinIcon: IconComponent;
3497
+
3498
+ declare const NavigationIcon: IconComponent;
3499
+
3500
+ declare const DollarsIcon: IconComponent;
3501
+
3502
+ declare const RupeesIcon: IconComponent;
3503
+
3504
+ declare const DashboardIcon: IconComponent;
3505
+
3506
+ declare const InvoicesIcon: IconComponent;
3507
+
3508
+ declare const PaymentLinksIcon: IconComponent;
3509
+
3510
+ declare const PaymentButtonsIcon: IconComponent;
3511
+
3512
+ declare const PaymentPagesIcon: IconComponent;
3513
+
3514
+ declare const RoutesIcon: IconComponent;
3515
+
3516
+ declare const SubscriptionsIcon: IconComponent;
3517
+
3518
+ declare const SmartCollectIcon: IconComponent;
3519
+
3520
+ declare const CustomersIcon: IconComponent;
3521
+
3522
+ declare const OffersIcon: IconComponent;
3523
+
3524
+ declare const ReportsIcon: IconComponent;
3525
+
3526
+ declare const MyAccountIcon: IconComponent;
3527
+
3528
+ declare const RazorpayIcon: IconComponent;
3529
+
3530
+ declare const RazorpayXIcon: IconComponent;
3531
+
3532
+ declare const BookIcon: IconComponent;
3533
+
3534
+ declare const SettlementsIcon: IconComponent;
3535
+
3536
+ declare const ShuffleIcon: IconComponent;
3537
+
3538
+ declare const TagIcon: IconComponent;
3539
+
3540
+ declare const UserIcon: IconComponent;
3541
+
3542
+ declare const TransactionsIcon: IconComponent;
3543
+
3544
+ declare const AnnouncementIcon: IconComponent;
3545
+
3546
+ declare const AppStoreIcon: IconComponent;
3547
+
3548
+ declare const CoinsIcon: IconComponent;
3549
+
3550
+ declare const BillIcon: IconComponent;
3551
+
3552
+ declare const StampIcon: IconComponent;
3553
+
3554
+ declare const MenuDotsIcon: IconComponent;
3555
+
3556
+ declare const SendIcon: IconComponent;
3557
+
3558
+ declare const MailOpenIcon: IconComponent;
3559
+
3560
+ declare const BulkPayoutsIcon: IconComponent;
3561
+
3562
+ declare type FeedbackIconColors = `feedback.icon.${DotNotationColorStringToken<Theme$1['colors']['feedback']['icon']>}`;
3563
+ declare type FeedbackActionIconColors = `feedback.${Feedback}.action.icon.${DotNotationColorStringToken<Theme$1['colors']['feedback'][Feedback]['action']['icon']>}`;
3564
+ declare type ActionIconColors = `action.icon.${DotNotationColorStringToken<Theme$1['colors']['action']['icon']>}`;
3565
+ declare type TextIconColors = `surface.text.${DotNotationColorStringToken<Theme$1['colors']['surface']['text']>}`;
3566
+ declare type SurfaceActionIconColors = `surface.action.icon.${DotNotationColorStringToken<Theme$1['colors']['surface']['action']['icon']>}`;
3567
+ declare type BadgeIconColors = `badge.icon.${DotNotationColorStringToken<Theme$1['colors']['badge']['icon']>}`;
3568
+ declare type IconSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | '2xlarge';
3569
+ declare type IconProps = {
3570
+ /**
3571
+ * Color token (not to be confused with actual hsla value)
3572
+ */
3573
+ color: ActionIconColors | SurfaceActionIconColors | FeedbackIconColors | FeedbackActionIconColors | TextIconColors | BadgeIconColors | 'currentColor';
3574
+ size: IconSize;
3575
+ } & StyledPropsBlade;
3576
+ declare type IconComponent = React.ComponentType<IconProps>;
3577
+
3578
+ /**
3579
+ * Similar to `Pick` except this returns `never` when value doesn't exist (native `Pick` returns `unknown`).
3580
+ *
3581
+ * You might have to ts-ignore the non-existing type error while using this. This is done so that you can get jsdoc from actual type.
3582
+ *
3583
+ * E.g. This will pick from ViewStyle prop if value exists else returns undefined.
3584
+ *
3585
+ * ```ts
3586
+ * // @ts-expect-error: T passed here may not neccessarily exist. We return `never` type when it doesn't
3587
+ * native: PickIfExist<ViewStyle, T>;
3588
+ * ```
3589
+ */
3590
+ declare type PickIfExist<T, K extends keyof T> = {
3591
+ [P in K]: P extends keyof T ? T[P] : never;
3592
+ };
3593
+ /**
3594
+ * Picks the types based on the platform (web / native).
3595
+ *
3596
+ * E.g.
3597
+ * ```ts
3598
+ * type CSSObject = PickCSSByPlatform<'display'>
3599
+ * // On Web --> This will be all possible web display properties like `block`, `flex`, `inline`, and more.
3600
+ * // On Native --> This will be just `flex` and `none`
3601
+ * ```
3602
+ */
3603
+ declare type PickCSSByPlatform<T extends keyof React__default.CSSProperties | keyof ViewStyle> = Platform.Select<{
3604
+ web: PickIfExist<CSSObject, T>;
3605
+ native: PickIfExist<ViewStyle, T>;
3606
+ }>;
3607
+
3608
+ declare type FormInputLabelProps = {
3609
+ /**
3610
+ * Label to be shown for the input field
3611
+ */
3612
+ label: string;
3613
+ /**
3614
+ * Desktop only prop. Default value on mobile will be `top`
3615
+ */
3616
+ labelPosition?: 'left' | 'top';
3617
+ /**
3618
+ * Displays `(optional)` when `optional` is passed or `*` when `required` is passed
3619
+ */
3620
+ necessityIndicator?: 'required' | 'optional' | 'none';
3621
+ };
3622
+
3623
+ declare type FormInputOnEvent = ({ name, value }: {
3624
+ name?: string;
3625
+ value?: string;
3626
+ }) => void;
3627
+ declare type FormInputValidationProps = {
3628
+ /**
3629
+ * Help text for the input
3630
+ */
3631
+ helpText?: string;
3632
+ /**
3633
+ * Error text for the input
3634
+ *
3635
+ * Renders when `validationState` is set to 'error'
3636
+ */
3637
+ errorText?: string;
3638
+ /**
3639
+ * success text for the input
3640
+ *
3641
+ * Renders when `validationState` is set to 'success'
3642
+ */
3643
+ successText?: string;
3644
+ /**
3645
+ * If `error`, the input is marked as invalid,
3646
+ * and `invalid` attribute will be added
3647
+ *
3648
+ * If `success`, the input is marked as valid,
3649
+ *
3650
+ */
3651
+ validationState?: 'success' | 'error' | 'none';
3652
+ };
3653
+
3654
+ type FormInputHandleOnKeyDownEvent = ({
3655
+ name,
3656
+ key,
3657
+ code,
3658
+ event,
3659
+ }: FormInputOnKeyDownEvent) => void;
3660
+
3661
+ type FormInputOnKeyDownEvent = {
3662
+ name?: string;
3663
+ key?: string;
3664
+ code?: string;
3665
+ event: KeyboardEvent<HTMLInputElement>;
3666
+ };
3667
+
3668
+ declare type BaseInputProps = FormInputLabelProps & FormInputValidationProps & {
3669
+ /**
3670
+ * Determines if it needs to be rendered as input, textarea or button
3671
+ */
3672
+ as?: 'input' | 'textarea' | 'button';
3673
+ /**
3674
+ * ID that will be used for accessibility
3675
+ */
3676
+ id: string;
3677
+ /**
3678
+ * Placeholder text to be displayed inside the input field
3679
+ */
3680
+ placeholder?: string;
3681
+ /**
3682
+ * Type of Input Field to be rendered.
3683
+ *
3684
+ * @default text
3685
+ */
3686
+ type?: 'text' | 'telephone' | 'email' | 'url' | 'number' | 'search' | 'password';
3687
+ /**
3688
+ * Used to set the default value of input field when it's uncontrolled
3689
+ */
3690
+ defaultValue?: string;
3691
+ /**
3692
+ * The name of the input field.
3693
+ *
3694
+ * Useful in form submissions
3695
+ */
3696
+ name?: string;
3697
+ /**
3698
+ * The callback function to be invoked when the input field gets focus
3699
+ */
3700
+ onFocus?: FormInputOnEvent;
3701
+ /**
3702
+ * The callback function to be invoked when the value of the input field changes
3703
+ */
3704
+ onChange?: FormInputOnEvent;
3705
+ /**
3706
+ * The callback function to be invoked when input is clicked
3707
+ */
3708
+ onClick?: FormInputOnEvent;
3709
+ /**
3710
+ * The callback function to be invoked when the value of the input field has any input
3711
+ */
3712
+ onInput?: FormInputOnEvent;
3713
+ /**
3714
+ * The callback function to be invoked whenever there is a keyDown event
3715
+ */
3716
+ onKeyDown?: FormInputHandleOnKeyDownEvent;
3717
+ /**
3718
+ * The callback function to be invoked when the the input field loses focus
3719
+ *
3720
+ * For React Native this will call `onEndEditing` event since we want to get the last value of the input field
3721
+ */
3722
+ onBlur?: FormInputOnEvent;
3723
+ /**
3724
+ * Ignores the blur event animation (Used in Select to ignore blur animation when item in option is clicked)
3725
+ */
3726
+ shouldIgnoreBlurAnimation?: boolean;
3727
+ /**
3728
+ * Used to turn the input field to controlled so user can control the value
3729
+ */
3730
+ value?: string;
3731
+ /**
3732
+ * Used to disable the input field
3733
+ */
3734
+ isDisabled?: boolean;
3735
+ /**
3736
+ * If true, the input is marked as required, and `required` attribute will be added
3737
+ */
3738
+ isRequired?: boolean;
3739
+ /**
3740
+ * Icon to be shown at the start of the input field
3741
+ */
3742
+ leadingIcon?: IconComponent$1;
3743
+ /**
3744
+ * Prefix symbol to be displayed at the beginning of the input field. If leadingIcon is provided it'll be placed after it
3745
+ */
3746
+ prefix?: string;
3747
+ /**
3748
+ * Element to be rendered before suffix. This is decided by the component which is extending BaseInput
3749
+ *
3750
+ * eg: consumers can render a loader or they could render a clear button
3751
+ */
3752
+ interactionElement?: ReactNode;
3753
+ /**
3754
+ * Suffix symbol to be displayed at the end of the input field. If trailingIcon is provided it'll be placed before it
3755
+ */
3756
+ suffix?: string;
3757
+ /**
3758
+ * Icon to be displayed at the end of the input field
3759
+ */
3760
+ trailingIcon?: IconComponent$1;
3761
+ /**
3762
+ * Displays the character counter under the input field
3763
+ */
3764
+ maxCharacters?: number;
3765
+ /**
3766
+ * alignment of the text inside input field
3767
+ */
3768
+ textAlign?: 'left' | 'center' | 'right';
3769
+ /**
3770
+ * If true, focuses the input field on load
3771
+ *
3772
+ * **Note:**
3773
+ * Automatically focusing a form control can confuse visually-impaired people using screen-reading technology and people with cognitive impairments.
3774
+ * When autofocus is assigned, screen-readers "teleport" their user to the form control without warning them beforehand.
3775
+ */
3776
+ autoFocus?: boolean;
3777
+ /**
3778
+ * Hints the platform to display an appropriate virtual keyboard
3779
+ *
3780
+ * **Native:** Passes as is the `keyboardType` attribute
3781
+ *
3782
+ * **Web:** Passes the value to the `inputMode` attribute
3783
+ */
3784
+ keyboardType?: 'text' | 'search' | 'telephone' | 'email' | 'url' | 'decimal';
3785
+ /**
3786
+ * determines what return key to show on the keyboard of mobile devices/virtual keyboard
3787
+ * **Note**: Few values are platform dependent and might not render on all the platforms
3788
+ *
3789
+ * `default` is only available on native. it'll be mapped to `enter` for web
3790
+ * `previous` is only available on native android
3791
+ */
3792
+ keyboardReturnKeyType?: 'default' | 'go' | 'done' | 'next' | 'previous' | 'search' | 'send';
3793
+ /**
3794
+ * determines what autoComplete suggestion type to show
3795
+ *
3796
+ * Internally it'll render platform specific attributes:
3797
+ *
3798
+ * - web: `autocomplete`
3799
+ * - iOS: `textContentType`
3800
+ * - android: `autoComplete`
3801
+ *
3802
+ */
3803
+ autoCompleteSuggestionType?: 'none' | 'name' | 'email' | 'username' | 'password' | 'newPassword' | 'oneTimeCode' | 'telephone' | 'postalCode' | 'countryName' | 'creditCardNumber' | 'creditCardCSC' | 'creditCardExpiry' | 'creditCardExpiryMonth' | 'creditCardExpiryYear';
3804
+ /**
3805
+ * Element to be rendered on the trailing slot of input field label
3806
+ */
3807
+ trailingHeaderSlot?: (value?: string) => ReactNode;
3808
+ /**
3809
+ * Element to be rendered on the trailing slot of input field footer
3810
+ */
3811
+ trailingFooterSlot?: (value?: string) => ReactNode;
3812
+ /**
3813
+ * Sets the textarea's number of lines
3814
+ */
3815
+ numberOfLines?: 2 | 3 | 4 | 5;
3816
+ /**
3817
+ * Sets the accessibility label for the input
3818
+ */
3819
+ accessibilityLabel?: string;
3820
+ /**
3821
+ * Sets the id of the label
3822
+ *
3823
+ * (Useful when assigning one label to multiple elements using aria-labelledby)
3824
+ */
3825
+ labelId?: string;
3826
+ /**
3827
+ * Can be used in select to set the id of the active descendant from the listbox
3828
+ */
3829
+ activeDescendant?: string;
3830
+ /**
3831
+ * Hides the label text
3832
+ */
3833
+ hideLabelText?: boolean;
3834
+ /**
3835
+ * Hides the form hint text
3836
+ */
3837
+ hideFormHint?: boolean;
3838
+ /**
3839
+ * componentName prop sets the data-blade-component attribute name
3840
+ * for internal metric collection purposes
3841
+ */
3842
+ componentName?: string;
3843
+ /**
3844
+ * whether the input has a popup
3845
+ */
3846
+ hasPopup?: AriaAttributes['hasPopup'];
3847
+ /**
3848
+ * id of the popup
3849
+ */
3850
+ popupId?: string;
3851
+ /**
3852
+ * true if popup is in expanded state
3853
+ */
3854
+ isPopupExpanded?: boolean;
3855
+ /**
3856
+ * sets the autocapitalize behavior for the input
3857
+ */
3858
+ autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';
3859
+ } & TestID & Platform.Select<{
3860
+ native: {
3861
+ /**
3862
+ * The callback function to be invoked when the value of the input field is submitted.
3863
+ */
3864
+ onSubmit?: FormInputOnEvent;
3865
+ };
3866
+ web: {
3867
+ /**
3868
+ * This is a react-native only prop and has no effect on web.
3869
+ */
3870
+ onSubmit?: undefined;
3871
+ };
3872
+ }> & StyledPropsBlade;
3873
+
3874
+ declare type Type = Exclude<BaseInputProps['type'], 'password'>;
3875
+ declare type TextInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'necessityIndicator' | 'validationState' | 'helpText' | 'errorText' | 'successText' | 'placeholder' | 'defaultValue' | 'name' | 'onChange' | 'onFocus' | 'onBlur' | 'value' | 'isDisabled' | 'isRequired' | 'prefix' | 'suffix' | 'maxCharacters' | 'autoFocus' | 'keyboardReturnKeyType' | 'autoCompleteSuggestionType' | 'onSubmit' | 'autoCapitalize' | 'testID'> & {
3876
+ /**
3877
+ * Decides whether to render a clear icon button
3878
+ */
3879
+ showClearButton?: boolean;
3880
+ /**
3881
+ * Event handler to handle the onClick event for clear button. Used when `showClearButton` is `true`
3882
+ */
3883
+ onClearButtonClick?: () => void;
3884
+ /**
3885
+ * Decides whether to show a loading spinner for the input field.
3886
+ */
3887
+ isLoading?: boolean;
3888
+ /**
3889
+ * Icon that will be rendered at the beginning of the input field
3890
+ */
3891
+ icon?: IconComponent$1;
3892
+ /**
3893
+ * Type of Input Field to be rendered. Use `PasswordInput` for type `password`
3894
+ *
3895
+ *
3896
+ * **Note on number type**
3897
+ *
3898
+ * `type="number"` internally uses `inputMode="numeric"` instead of HTML's `type="number"` which also allows text characters.
3899
+ * If you have a usecase where you only want to support number input, you can handle it on validations end.
3900
+ *
3901
+ * Check out [Why the GOV.UK Design System team changed the input type for numbers](https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/) for reasoning
3902
+ *
3903
+ * @default text
3904
+ */
3905
+ type?: Type;
3906
+ } & StyledPropsBlade;
3907
+ declare const TextInput: React__default.ForwardRefExoticComponent<Pick<BaseInputProps, "name" | "testID" | "placeholder" | "label" | "value" | "prefix" | "defaultValue" | "autoCapitalize" | "onFocus" | "onBlur" | "onChange" | "onSubmit" | "autoFocus" | "isDisabled" | "labelPosition" | "validationState" | "helpText" | "errorText" | "necessityIndicator" | "successText" | "isRequired" | "suffix" | "maxCharacters" | "keyboardReturnKeyType" | "autoCompleteSuggestionType"> & {
3908
+ /**
3909
+ * Decides whether to render a clear icon button
3910
+ */
3911
+ showClearButton?: boolean | undefined;
3912
+ /**
3913
+ * Event handler to handle the onClick event for clear button. Used when `showClearButton` is `true`
3914
+ */
3915
+ onClearButtonClick?: (() => void) | undefined;
3916
+ /**
3917
+ * Decides whether to show a loading spinner for the input field.
3918
+ */
3919
+ isLoading?: boolean | undefined;
3920
+ /**
3921
+ * Icon that will be rendered at the beginning of the input field
3922
+ */
3923
+ icon?: IconComponent$1 | undefined;
3924
+ /**
3925
+ * Type of Input Field to be rendered. Use `PasswordInput` for type `password`
3926
+ *
3927
+ *
3928
+ * **Note on number type**
3929
+ *
3930
+ * `type="number"` internally uses `inputMode="numeric"` instead of HTML's `type="number"` which also allows text characters.
3931
+ * If you have a usecase where you only want to support number input, you can handle it on validations end.
3932
+ *
3933
+ * Check out [Why the GOV.UK Design System team changed the input type for numbers](https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/) for reasoning
3934
+ *
3935
+ * @default text
3936
+ */
3937
+ type?: Type;
3938
+ } & Partial<Omit<MakeObjectResponsive<{
3939
+ margin: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
3940
+ marginX: SpacingValueType;
3941
+ marginY: SpacingValueType;
3942
+ marginTop: SpacingValueType;
3943
+ marginRight: SpacingValueType;
3944
+ marginBottom: SpacingValueType;
3945
+ marginLeft: SpacingValueType;
3946
+ }> & Pick<MakeObjectResponsive<{
3947
+ gap: SpacingValueType;
3948
+ rowGap: SpacingValueType;
3949
+ columnGap: SpacingValueType;
3950
+ flex: string | number;
3951
+ } & PickIfExist<styled_components.CSSObject, "alignContent" | "alignItems" | "alignSelf" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "justifyContent" | "justifyItems" | "justifySelf" | "order" | "placeSelf"> & {
3952
+ __brand__?: "platform-web" | undefined;
3953
+ }>, "alignSelf" | "justifySelf" | "order" | "placeSelf"> & MakeObjectResponsive<{
3954
+ top: SpacingValueType;
3955
+ right: SpacingValueType;
3956
+ bottom: SpacingValueType;
3957
+ left: SpacingValueType;
3958
+ } & PickIfExist<styled_components.CSSObject, "position" | "zIndex"> & {
3959
+ __brand__?: "platform-web" | undefined;
3960
+ }> & Pick<MakeObjectResponsive<PickCSSByPlatform<"grid" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "gridArea" | "gridColumn" | "gridRow" | "gridTemplate">>, "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridArea" | "gridColumn" | "gridRow">, "__brand__">> & React__default.RefAttributes<BladeElementRef>>;
3961
+
3962
+ declare type PasswordInputExtraProps = {
3963
+ /**
3964
+ * Shows a reveal button to toggle password visibility
3965
+ *
3966
+ * @default true
3967
+ */
3968
+ showRevealButton?: boolean;
3969
+ /**
3970
+ * Displays asterisk (`*`) when `isRequired` is enabled
3971
+ *
3972
+ * @default none
3973
+ */
3974
+ necessityIndicator?: Exclude<BaseInputProps['necessityIndicator'], 'optional'>;
3975
+ /**
3976
+ * Determines what autoComplete suggestion type to show. Defaults to using platform heuristics.
3977
+ *
3978
+ * It's not recommended to turn this off in favor of safe password practices.
3979
+ * Providing `password` or `newPassword` is more informative to the platform for browser autofill or password managers.
3980
+ *
3981
+ * **Note**: Using `newPassword` on iOS has some [known issue](https://github.com/facebook/react-native/issues/21911) on React Native
3982
+ *
3983
+ * Internally it'll render platform specific attributes:
3984
+ *
3985
+ * - web: `autocomplete`
3986
+ * - iOS: `textContentType`
3987
+ * - android: `autoComplete`
3988
+ *
3989
+ */
3990
+ autoCompleteSuggestionType?: Extract<BaseInputProps['autoCompleteSuggestionType'], 'none' | 'password' | 'newPassword'>;
3991
+ };
3992
+ declare type PasswordInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'maxCharacters' | 'validationState' | 'errorText' | 'successText' | 'helpText' | 'isDisabled' | 'defaultValue' | 'placeholder' | 'isRequired' | 'value' | 'onChange' | 'onBlur' | 'onSubmit' | 'onFocus' | 'name' | 'autoFocus' | 'keyboardReturnKeyType' | 'autoCompleteSuggestionType' | 'testID'> & PasswordInputExtraProps & StyledPropsBlade;
3993
+ declare const PasswordInput: React__default.ForwardRefExoticComponent<Pick<BaseInputProps, "name" | "testID" | "placeholder" | "label" | "value" | "defaultValue" | "onFocus" | "onBlur" | "onChange" | "onSubmit" | "autoFocus" | "isDisabled" | "labelPosition" | "validationState" | "helpText" | "errorText" | "successText" | "isRequired" | "maxCharacters" | "keyboardReturnKeyType" | "autoCompleteSuggestionType"> & PasswordInputExtraProps & Partial<Omit<MakeObjectResponsive<{
3994
+ margin: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
3995
+ marginX: SpacingValueType;
3996
+ marginY: SpacingValueType;
3997
+ marginTop: SpacingValueType;
3998
+ marginRight: SpacingValueType;
3999
+ marginBottom: SpacingValueType;
4000
+ marginLeft: SpacingValueType;
4001
+ }> & Pick<MakeObjectResponsive<{
4002
+ gap: SpacingValueType;
4003
+ rowGap: SpacingValueType;
4004
+ columnGap: SpacingValueType;
4005
+ flex: string | number;
4006
+ } & PickIfExist<styled_components.CSSObject, "alignContent" | "alignItems" | "alignSelf" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "justifyContent" | "justifyItems" | "justifySelf" | "order" | "placeSelf"> & {
4007
+ __brand__?: "platform-web" | undefined;
4008
+ }>, "alignSelf" | "justifySelf" | "order" | "placeSelf"> & MakeObjectResponsive<{
4009
+ top: SpacingValueType;
4010
+ right: SpacingValueType;
4011
+ bottom: SpacingValueType;
4012
+ left: SpacingValueType;
4013
+ } & PickIfExist<styled_components.CSSObject, "position" | "zIndex"> & {
4014
+ __brand__?: "platform-web" | undefined;
4015
+ }> & Pick<MakeObjectResponsive<PickCSSByPlatform<"grid" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "gridArea" | "gridColumn" | "gridRow" | "gridTemplate">>, "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridArea" | "gridColumn" | "gridRow">, "__brand__">> & React__default.RefAttributes<BladeElementRef>>;
4016
+
4017
+ declare type TextAreaProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'necessityIndicator' | 'validationState' | 'helpText' | 'errorText' | 'successText' | 'placeholder' | 'defaultValue' | 'name' | 'onChange' | 'onFocus' | 'onBlur' | 'onSubmit' | 'value' | 'isDisabled' | 'isRequired' | 'maxCharacters' | 'autoFocus' | 'numberOfLines' | 'testID'> & {
4018
+ /**
4019
+ * Decides whether to render a clear icon button
4020
+ */
4021
+ showClearButton?: boolean;
4022
+ /**
4023
+ * Event handler to handle the onClick event for clear button. Used when `showClearButton` is `true`
4024
+ */
4025
+ onClearButtonClick?: () => void;
4026
+ } & StyledPropsBlade;
4027
+ declare const TextArea: React__default.ForwardRefExoticComponent<Pick<BaseInputProps, "name" | "testID" | "placeholder" | "label" | "value" | "defaultValue" | "onFocus" | "onBlur" | "onChange" | "onSubmit" | "numberOfLines" | "autoFocus" | "isDisabled" | "labelPosition" | "validationState" | "helpText" | "errorText" | "necessityIndicator" | "successText" | "isRequired" | "maxCharacters"> & {
4028
+ /**
4029
+ * Decides whether to render a clear icon button
4030
+ */
4031
+ showClearButton?: boolean | undefined;
4032
+ /**
4033
+ * Event handler to handle the onClick event for clear button. Used when `showClearButton` is `true`
4034
+ */
4035
+ onClearButtonClick?: (() => void) | undefined;
4036
+ } & Partial<Omit<MakeObjectResponsive<{
4037
+ margin: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
4038
+ marginX: SpacingValueType;
4039
+ marginY: SpacingValueType;
4040
+ marginTop: SpacingValueType;
4041
+ marginRight: SpacingValueType;
4042
+ marginBottom: SpacingValueType;
4043
+ marginLeft: SpacingValueType;
4044
+ }> & Pick<MakeObjectResponsive<{
4045
+ gap: SpacingValueType;
4046
+ rowGap: SpacingValueType;
4047
+ columnGap: SpacingValueType;
4048
+ flex: string | number;
4049
+ } & PickIfExist<styled_components.CSSObject, "alignContent" | "alignItems" | "alignSelf" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "justifyContent" | "justifyItems" | "justifySelf" | "order" | "placeSelf"> & {
4050
+ __brand__?: "platform-web" | undefined;
4051
+ }>, "alignSelf" | "justifySelf" | "order" | "placeSelf"> & MakeObjectResponsive<{
4052
+ top: SpacingValueType;
4053
+ right: SpacingValueType;
4054
+ bottom: SpacingValueType;
4055
+ left: SpacingValueType;
4056
+ } & PickIfExist<styled_components.CSSObject, "position" | "zIndex"> & {
4057
+ __brand__?: "platform-web" | undefined;
4058
+ }> & Pick<MakeObjectResponsive<PickCSSByPlatform<"grid" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "gridArea" | "gridColumn" | "gridRow" | "gridTemplate">>, "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridArea" | "gridColumn" | "gridRow">, "__brand__">> & React__default.RefAttributes<BladeElementRef>>;
4059
+
4060
+ declare type FormInputOnEventWithIndex = ({ name, value, inputIndex, }: {
4061
+ name?: string;
4062
+ value?: string;
4063
+ inputIndex: number;
4064
+ }) => void;
4065
+ declare type OTPInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'validationState' | 'helpText' | 'errorText' | 'successText' | 'name' | 'onChange' | 'value' | 'isDisabled' | 'autoFocus' | 'keyboardReturnKeyType' | 'keyboardType' | 'placeholder' | 'testID'> & {
4066
+ /**
4067
+ * Determines the number of input fields to show for the OTP
4068
+ * @default 6
4069
+ */
4070
+ otpLength?: 4 | 6;
4071
+ /**
4072
+ * The callback function to be invoked when all the values of the OTPInput are filled
4073
+ */
4074
+ onOTPFilled?: FormInputOnEvent;
4075
+ /**
4076
+ * Masks input characters in all the fields
4077
+ */
4078
+ isMasked?: boolean;
4079
+ /**
4080
+ * Determines what autoComplete suggestion type to show. Defaults to `oneTimeCode`.
4081
+ *
4082
+ * It's not recommended to turn this off in favor of otp input practices.
4083
+ *
4084
+ *
4085
+ * Internally it'll render platform specific attributes:
4086
+ *
4087
+ * - web: `autocomplete`
4088
+ * - iOS: `textContentType`
4089
+ * - android: `autoComplete`
4090
+ *
4091
+ */
4092
+ autoCompleteSuggestionType?: Extract<BaseInputProps['autoCompleteSuggestionType'], 'none' | 'oneTimeCode'>;
4093
+ /**
4094
+ * The callback function to be invoked when one of the input fields gets focus
4095
+ */
4096
+ onFocus?: FormInputOnEventWithIndex;
4097
+ /**
4098
+ * The callback function to be invoked when one of the input fields is blurred
4099
+ */
4100
+ onBlur?: FormInputOnEventWithIndex;
4101
+ } & StyledPropsBlade;
4102
+ /**
4103
+ * OTPInput component can be used for accepting OTPs sent to users for authentication/verification purposes.
4104
+ *
4105
+ * ## Usage
4106
+ *
4107
+ * ```tsx
4108
+ * <OTPInput
4109
+ * label="Enter OTP"
4110
+ * name="otpInput"
4111
+ * onChange={({ name, value }): void => console.log({ name, value })}
4112
+ * onOTPFilled={({ name, value }): void => console.log({ name, value })}
4113
+ * />
4114
+ * ```
4115
+ */
4116
+ declare const OTPInput: ({ autoFocus, errorText, helpText, isDisabled, keyboardReturnKeyType, keyboardType, label, labelPosition, name, onChange, onFocus, onBlur, onOTPFilled, otpLength, placeholder, successText, validationState, value, isMasked, autoCompleteSuggestionType, testID, ...styledProps }: OTPInputProps) => React__default.ReactElement;
4117
+
4118
+ declare type SelectInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'necessityIndicator' | 'validationState' | 'helpText' | 'errorText' | 'successText' | 'name' | 'isDisabled' | 'isRequired' | 'prefix' | 'suffix' | 'autoFocus' | 'onClick' | 'onFocus' | 'onBlur' | 'placeholder' | 'testID'> & {
4119
+ icon?: IconComponent$1;
4120
+ /**
4121
+ * Controlled value of the Select. Use it in combination of `onChange`.
4122
+ *
4123
+ * Check out [Controlled Dropdown Documentation](https://blade.razorpay.com/?path=/story/components-dropdown-with-select--controlled-dropdown&globals=measureEnabled:false) for example.
4124
+ */
4125
+ value?: string | string[];
4126
+ /**
4127
+ * Used to set the default value of SelectInput when it's uncontrolled. Use `value` instead for controlled SelectInput
4128
+ */
4129
+ defaultValue?: string | string[];
4130
+ onChange?: ({ name, values }: {
4131
+ name?: string;
4132
+ values: string[];
4133
+ }) => void;
4134
+ };
4135
+ /**
4136
+ * ### SelectInput
4137
+ *
4138
+ * Our equivalent of `<select>` tag. Lets you select items from given options.
4139
+ *
4140
+ * To be used in combination of `Dropdown` and `ActionList` component
4141
+ *
4142
+ * ---
4143
+ *
4144
+ * #### Usage
4145
+ *
4146
+ * ```diff
4147
+ * <Dropdown>
4148
+ * + <SelectInput label="Select Fruits" />
4149
+ * <DropdownOverlay>
4150
+ * <ActionList>
4151
+ * <ActionListItem title="Mango" value="mango" />
4152
+ * <ActionListItem title="Apple" value="apple" />
4153
+ * </ActionList>
4154
+ * </DropdownOverlay>
4155
+ * </Dropdown>
4156
+ * ```
4157
+ *
4158
+ * ---
4159
+ *
4160
+ * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-select--with-single-select SelectInput Documentation}.
4161
+ */
4162
+ declare const SelectInput: React__default.ForwardRefExoticComponent<Pick<BaseInputProps, "name" | "testID" | "placeholder" | "label" | "prefix" | "onFocus" | "onBlur" | "onClick" | "autoFocus" | "isDisabled" | "labelPosition" | "validationState" | "helpText" | "errorText" | "necessityIndicator" | "successText" | "isRequired" | "suffix"> & {
4163
+ icon?: IconComponent$1 | undefined;
4164
+ /**
4165
+ * Controlled value of the Select. Use it in combination of `onChange`.
4166
+ *
4167
+ * Check out [Controlled Dropdown Documentation](https://blade.razorpay.com/?path=/story/components-dropdown-with-select--controlled-dropdown&globals=measureEnabled:false) for example.
4168
+ */
4169
+ value?: string | string[] | undefined;
4170
+ /**
4171
+ * Used to set the default value of SelectInput when it's uncontrolled. Use `value` instead for controlled SelectInput
4172
+ */
4173
+ defaultValue?: string | string[] | undefined;
4174
+ onChange?: (({ name, values }: {
4175
+ name?: string | undefined;
4176
+ values: string[];
4177
+ }) => void) | undefined;
4178
+ } & React__default.RefAttributes<BladeElementRef>>;
4179
+
4180
+ declare type IndicatorCommonProps = {
4181
+ /**
4182
+ * Sets the color tone
4183
+ *
4184
+ * @default neutral
4185
+ */
4186
+ intent?: Feedback;
4187
+ /**
4188
+ * Size of the indicator
4189
+ *
4190
+ * @default medium
4191
+ */
4192
+ size?: 'small' | 'medium' | 'large';
4193
+ } & TestID & StyledPropsBlade;
4194
+ declare type IndicatorWithoutA11yLabel = {
4195
+ /**
4196
+ * A text label to show alongside the indicator dot
4197
+ */
4198
+ children: StringChildrenType;
4199
+ /**
4200
+ * a11y label for screen readers
4201
+ */
4202
+ accessibilityLabel?: string;
4203
+ };
4204
+ declare type IndicatorWithA11yLabel = {
4205
+ /**
4206
+ * a11y label for screen readers
4207
+ */
4208
+ accessibilityLabel: string;
4209
+ /**
4210
+ * A text label to show alongside the indicator dot
4211
+ */
4212
+ children?: StringChildrenType;
4213
+ };
4214
+ declare type IndicatorProps = IndicatorCommonProps & (IndicatorWithA11yLabel | IndicatorWithoutA11yLabel);
4215
+ declare const Indicator: ({ accessibilityLabel, children, size, intent, testID, ...styledProps }: IndicatorProps) => ReactElement;
4216
+
4217
+ declare type ListItemProps = {
4218
+ /**
4219
+ * Children to be rendered for ListItem. This can be a text, ListItemLink or another List.
4220
+ *
4221
+ */
4222
+ children: React__default.ReactNode;
4223
+ /**
4224
+ * Icon to be rendered for a ListItem's bullet.
4225
+ *
4226
+ */
4227
+ icon?: IconComponent;
4228
+ /**
4229
+ * This is a private prop to be used only for internal logic purposes.
4230
+ *
4231
+ */
4232
+ _itemNumber?: undefined;
4233
+ } & TestID;
4234
+ declare const ListItem: ({ children, icon, _itemNumber, testID, }: ListItemProps) => React__default.ReactElement;
4235
+
4236
+ declare type ListCommonProps = {
4237
+ /**
4238
+ * ListItem to be rendered for the List.
4239
+ *
4240
+ */
4241
+ children: React__default.ReactElement<ListItemProps> | React__default.ReactElement<ListItemProps>[];
4242
+ /**
4243
+ * Sets the variant to be rendered for the List.
4244
+ *
4245
+ * @default 'unordered'
4246
+ */
4247
+ variant?: 'unordered' | 'ordered' | 'ordered-filled';
4248
+ /**
4249
+ * Sets the size for the List.
4250
+ *
4251
+ * @default 'medium'
4252
+ */
4253
+ size?: 'small' | 'medium';
4254
+ } & TestID & StyledPropsBlade;
4255
+ declare type ListWithIconProps = ListCommonProps & {
4256
+ variant?: 'unordered';
4257
+ icon?: IconComponent;
4258
+ };
4259
+ declare type ListWithoutIconProps = ListCommonProps & {
4260
+ variant?: 'ordered' | 'ordered-filled';
4261
+ icon?: undefined;
4262
+ };
4263
+ declare type ListProps = ListWithIconProps | ListWithoutIconProps;
4264
+ declare const List: ({ variant, size, children, icon, testID, ...styledProps }: ListProps) => React__default.ReactElement;
4265
+
4266
+ declare type ListItemLinkProps = Exclude<LinkProps, 'size' | 'variant' | 'isDisabled'>;
4267
+ declare const ListItemLink: ({ accessibilityLabel, children, href, icon, iconPosition, onClick, rel, target, testID, }: ListItemLinkProps) => React.ReactElement;
4268
+
4269
+ declare type TitleProps = {
4270
+ size?: 'small' | 'medium' | 'large' | 'xlarge';
4271
+ contrast?: ColorContrastTypes;
4272
+ type?: TextTypes;
4273
+ children: StringChildrenType;
4274
+ } & TestID & StyledPropsBlade;
4275
+ declare const Title: ({ size, type, contrast, children, testID, ...styledProps }: TitleProps) => ReactElement;
4276
+
4277
+ declare type HeadingVariant = 'regular' | 'subheading';
4278
+ declare type HeadingSize = 'small' | 'medium' | 'large';
4279
+ declare type HeadingCommonProps = {
4280
+ type?: TextTypes;
4281
+ contrast?: ColorContrastTypes;
4282
+ children: StringChildrenType;
4283
+ } & TestID & StyledPropsBlade;
4284
+ declare type HeadingNormalVariant = HeadingCommonProps & {
4285
+ variant?: Exclude<HeadingVariant, 'subheading'>;
4286
+ /**
4287
+ *
4288
+ * @default small
4289
+ */
4290
+ size?: HeadingSize;
4291
+ weight?: keyof Theme$1['typography']['fonts']['weight'];
4292
+ };
4293
+ declare type HeadingSubHeadingVariant = HeadingCommonProps & {
4294
+ variant?: Extract<HeadingVariant, 'subheading'>;
4295
+ /**
4296
+ * `size` cannot be used with variant="subheading". Either change to variant="regular" or remove size prop
4297
+ */
4298
+ size?: undefined;
4299
+ weight?: keyof Pick<Theme$1['typography']['fonts']['weight'], 'bold'>;
4300
+ };
4301
+ /**
4302
+ * Conditionally changing props based on variant.
4303
+ * Overloads or union gives wrong intellisense.
4304
+ */
4305
+ declare type HeadingProps<T> = T extends {
4306
+ variant: infer Variant;
4307
+ } ? Variant extends Exclude<HeadingVariant, 'subheading'> ? HeadingNormalVariant : Variant extends 'subheading' ? HeadingSubHeadingVariant : T : T;
4308
+ declare const Heading: <T extends {
4309
+ variant: HeadingVariant;
4310
+ }>({ variant, size, type, weight, contrast, children, testID, ...styledProps }: HeadingProps<T>) => ReactElement;
4311
+
4312
+ declare type FeedbackColors = `feedback.text.${DotNotationColorStringToken<Theme$1['colors']['feedback']['text']>}`;
4313
+ declare type FeedbackActionColors = `feedback.${Feedback}.action.text.${DotNotationColorStringToken<Theme$1['colors']['feedback'][Feedback]['action']['text']>}`;
4314
+ declare type SurfaceColors = `surface.text.${DotNotationColorStringToken<Theme$1['colors']['surface']['text']>}`;
4315
+ declare type ActionColors = `action.text.${DotNotationColorStringToken<Theme$1['colors']['action']['text']>}`;
4316
+ declare type BadgeTextColors = `badge.text.${DotNotationColorStringToken<Theme$1['colors']['badge']['text']>}`;
4317
+ declare type BaseTextProps = {
4318
+ id?: string;
4319
+ color?: ActionColors | FeedbackColors | SurfaceColors | FeedbackActionColors | BadgeTextColors;
4320
+ fontFamily?: keyof Theme$1['typography']['fonts']['family'];
4321
+ fontSize?: keyof Theme$1['typography']['fonts']['size'];
4322
+ fontWeight?: keyof Theme$1['typography']['fonts']['weight'];
4323
+ fontStyle?: 'italic' | 'normal';
4324
+ textDecorationLine?: 'line-through' | 'none' | 'underline';
4325
+ lineHeight?: keyof Theme$1['typography']['lineHeights'];
4326
+ /**
4327
+ * Web only
4328
+ */
4329
+ as?: 'code' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span';
4330
+ textAlign?: 'center' | 'justify' | 'left' | 'right';
4331
+ truncateAfterLines?: number;
4332
+ className?: string;
4333
+ style?: React.CSSProperties;
4334
+ children: React.ReactNode;
4335
+ accessibilityProps?: Partial<AccessibilityProps>;
4336
+ /**
4337
+ * React Native only
4338
+ */
4339
+ numberOfLines?: number;
4340
+ componentName?: 'text' | 'title' | 'heading' | 'code';
4341
+ } & TestID & StyledPropsBlade;
4342
+
4343
+ declare type TextCommonProps = {
4344
+ type?: TextTypes;
4345
+ contrast?: ColorContrastTypes;
4346
+ truncateAfterLines?: number;
4347
+ children: React.ReactNode;
4348
+ weight?: keyof Theme$1['typography']['fonts']['weight'];
4349
+ /**
4350
+ * **For Internal use only**: Sets the color of the Text component
4351
+ */
4352
+ color?: BaseTextProps['color'];
4353
+ textAlign?: BaseTextProps['textAlign'];
4354
+ } & TestID & StyledPropsBlade;
4355
+ declare type TextVariant = 'body' | 'caption';
4356
+ declare type TextBodyVariant = TextCommonProps & {
4357
+ variant?: Extract<TextVariant, 'body'>;
4358
+ size?: 'xsmall' | 'small' | 'medium' | 'large';
4359
+ };
4360
+ declare type TextCaptionVariant = TextCommonProps & {
4361
+ variant?: Extract<TextVariant, 'caption'>;
4362
+ size?: 'medium';
4363
+ };
4364
+ /**
4365
+ * Conditionally changing props based on variant.
4366
+ * Overloads or union gives wrong intellisense.
4367
+ */
4368
+ declare type TextProps<T> = T extends {
4369
+ variant: infer Variant;
4370
+ } ? Variant extends 'caption' ? TextCaptionVariant : Variant extends 'body' ? TextBodyVariant : T : T;
4371
+ declare type TextForwardedAs = {
4372
+ forwardedAs?: BaseTextProps['as'];
4373
+ };
4374
+ declare type GetTextPropsReturn = Omit<BaseTextProps, 'children'> & TextForwardedAs;
4375
+ declare type GetTextProps<T extends {
4376
+ variant: TextVariant;
4377
+ }> = Pick<TextProps<T>, 'type' | 'variant' | 'weight' | 'size' | 'contrast' | 'testID' | 'textAlign'>;
4378
+ declare const getTextProps: <T extends {
4379
+ variant: TextVariant;
4380
+ }>({ variant, type, weight, size, contrast, testID, textAlign, }: GetTextProps<T>) => GetTextPropsReturn;
4381
+ declare const Text: <T extends {
4382
+ variant: TextVariant;
4383
+ }>({ variant, weight, size, type, contrast, truncateAfterLines, children, color, testID, textAlign, ...styledProps }: TextProps<T>) => ReactElement;
4384
+
4385
+ declare type CodeProps = {
4386
+ children: StringChildrenType;
4387
+ /**
4388
+ * Decides the fontSize and padding of Code
4389
+ *
4390
+ * @default small
4391
+ */
4392
+ size?: 'small' | 'medium';
4393
+ weight?: 'regular' | 'bold';
4394
+ } & TestID & StyledPropsBlade;
4395
+ /**
4396
+ * Code component can be used for displaying token, variable names, or inlined code snippets.
4397
+ *
4398
+ * ## Usage
4399
+ *
4400
+ * ### In Web
4401
+ * In web, you can use it inside `Text` component or individually. The component is set to display `inline-block`
4402
+ *
4403
+ * ```tsx
4404
+ * <Text>
4405
+ * Lorem ipsum <Code>SENTRY_TOKEN</Code> normal text
4406
+ * </Text>
4407
+ * ```
4408
+ *
4409
+ * ### In React Native
4410
+ *
4411
+ * In React Native, you would have to align it using flex to make sure the Code and the surrounding text is correctly aligned
4412
+ *
4413
+ * ```tsx
4414
+ * <BaseBox flexWrap="wrap" flexDirection="row" alignItems="flex-start">
4415
+ * <Text>Lorem ipsum </Text>
4416
+ * <Code>SENTRY_TOKEN</Code>
4417
+ * <Text> normal text</Text>
4418
+ * </BaseBox>
4419
+ * ```
4420
+ */
4421
+ declare const Code: ({ children, size, weight, testID, ...styledProps }: CodeProps) => JSX.Element;
4422
+
4423
+ declare type ListItemCodeProps = Exclude<CodeProps, 'size'>;
4424
+ declare const ListItemCode: ({ children, testID }: ListItemCodeProps) => React.ReactElement;
4425
+
4426
+ declare type Assertiveness = AriaAttributes['liveRegion'];
4427
+
4428
+ /**
4429
+ * Announces the message using screen reader technology.
4430
+ */
4431
+ declare function announce(message: string, assertiveness?: Assertiveness): void;
4432
+ /**
4433
+ * Stops all queued announcements.
4434
+ */
4435
+ declare function clearAnnouncer(assertiveness: Assertiveness): void;
4436
+ /**
4437
+ * Removes the announcer from the DOM.
4438
+ */
4439
+ declare function destroyAnnouncer(): void;
4440
+
4441
+ declare type ProgressBarCommonProps = {
4442
+ /**
4443
+ * Sets aria-label to help users know what the progress bar is for. Default value is the same as the `label` passed.
4444
+ */
4445
+ accessibilityLabel?: string;
4446
+ /**
4447
+ * Sets the contrast for the progress bar
4448
+ * @default 'low'
4449
+ */
4450
+ contrast?: ColorContrastTypes;
4451
+ /**
4452
+ * Sets the intent of the progress bar which changes the feedback color.
4453
+ */
4454
+ intent?: Feedback;
4455
+ /**
4456
+ * Sets the label to be rendered for the progress bar. This value will also be used as default for `accessibilityLabel`.
4457
+ */
4458
+ label?: string;
4459
+ /**
4460
+ * Sets the size of the progress bar.
4461
+ * @default 'small'
4462
+ */
4463
+ size?: 'small' | 'medium';
4464
+ /**
4465
+ * Sets the progress value of the progress bar.
4466
+ * @default 'small'
4467
+ */
4468
+ value?: number;
4469
+ /**
4470
+ * Sets the minimum value for the progress bar.
4471
+ * @default 0
4472
+ */
4473
+ min?: number;
4474
+ /**
4475
+ * Sets the maximum value for the progress bar.
4476
+ * @default 100
4477
+ */
4478
+ max?: number;
4479
+ } & TestID & StyledPropsBlade;
4480
+ declare type ProgressBarVariant = 'progress' | 'meter';
4481
+ declare type ProgressBarProgressProps = ProgressBarCommonProps & {
4482
+ /**
4483
+ * Sets the variant to be rendered for the progress bar.
4484
+ * @default 'progress'
4485
+ */
4486
+ variant?: Extract<ProgressBarVariant, 'progress'>;
4487
+ /**
4488
+ * Sets whether the progress bar is in an indeterminate state.
4489
+ * @default false
4490
+ */
4491
+ isIndeterminate?: boolean;
4492
+ /**
4493
+ * Sets whether or not to show the progress percentage for the progress bar. Percentage is hidden by default for the `meter` variant.
4494
+ * @default true
4495
+ */
4496
+ showPercentage?: boolean;
4497
+ };
4498
+ declare type ProgressBarMeterProps = ProgressBarCommonProps & {
4499
+ /**
4500
+ * Sets the variant to be rendered for thr progress bar.
4501
+ * @default 'progress'
4502
+ */
4503
+ variant?: Extract<ProgressBarVariant, 'meter'>;
4504
+ /**
4505
+ * Sets whether the progress bar is in an indeterminate state.
4506
+ * @default false
4507
+ */
4508
+ isIndeterminate?: undefined;
4509
+ /**
4510
+ * Sets whether or not to show the progress percentage for the progress bar. Percentage is hidden by default for the `meter` variant.
4511
+ * @default false
4512
+ */
4513
+ showPercentage?: undefined;
4514
+ };
4515
+ declare type ProgressBarProps = ProgressBarProgressProps | ProgressBarMeterProps;
4516
+ declare const ProgressBar: ({ accessibilityLabel, contrast, intent, isIndeterminate, label, showPercentage, size, value, variant, min, max, testID, ...styledProps }: ProgressBarProps) => ReactElement;
4517
+
4518
+ declare type RadioProps = {
4519
+ /**
4520
+ * Sets the label text of the Radio
4521
+ */
4522
+ children: StringChildrenType;
4523
+ /**
4524
+ * Help text for the Radio
4525
+ */
4526
+ helpText?: string;
4527
+ /**
4528
+ * The value to be used in the Radio input.
4529
+ * This is the value that will be returned on form submission.
4530
+ */
4531
+ value: string;
4532
+ /**
4533
+ * If `true`, the Radio will be disabled
4534
+ *
4535
+ * @default false
4536
+ */
4537
+ isDisabled?: boolean;
4538
+ /**
4539
+ * Size of the radios
4540
+ *
4541
+ * @default "medium"
4542
+ */
4543
+ size?: 'small' | 'medium';
4544
+ } & TestID & StyledPropsBlade;
4545
+ declare const Radio: React__default.ForwardRefExoticComponent<{
4546
+ /**
4547
+ * Sets the label text of the Radio
4548
+ */
4549
+ children: StringChildrenType;
4550
+ /**
4551
+ * Help text for the Radio
4552
+ */
4553
+ helpText?: string | undefined;
4554
+ /**
4555
+ * The value to be used in the Radio input.
4556
+ * This is the value that will be returned on form submission.
4557
+ */
4558
+ value: string;
4559
+ /**
4560
+ * If `true`, the Radio will be disabled
4561
+ *
4562
+ * @default false
4563
+ */
4564
+ isDisabled?: boolean | undefined;
4565
+ /**
4566
+ * Size of the radios
4567
+ *
4568
+ * @default "medium"
4569
+ */
4570
+ size?: "small" | "medium" | undefined;
4571
+ } & TestID & Partial<Omit<MakeObjectResponsive<{
4572
+ margin: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
4573
+ marginX: SpacingValueType;
4574
+ marginY: SpacingValueType;
4575
+ marginTop: SpacingValueType;
4576
+ marginRight: SpacingValueType;
4577
+ marginBottom: SpacingValueType;
4578
+ marginLeft: SpacingValueType;
4579
+ }> & Pick<MakeObjectResponsive<{
4580
+ gap: SpacingValueType;
4581
+ rowGap: SpacingValueType;
4582
+ columnGap: SpacingValueType;
4583
+ flex: string | number;
4584
+ } & PickIfExist$1<styled_components.CSSObject, "alignContent" | "alignItems" | "alignSelf" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "justifyContent" | "justifyItems" | "justifySelf" | "order" | "placeSelf"> & {
4585
+ __brand__?: "platform-web" | undefined;
4586
+ }>, "alignSelf" | "justifySelf" | "order" | "placeSelf"> & MakeObjectResponsive<{
4587
+ top: SpacingValueType;
4588
+ right: SpacingValueType;
4589
+ bottom: SpacingValueType;
4590
+ left: SpacingValueType;
4591
+ } & PickIfExist$1<styled_components.CSSObject, "position" | "zIndex"> & {
4592
+ __brand__?: "platform-web" | undefined;
4593
+ }> & Pick<MakeObjectResponsive<PickCSSByPlatform$1<"grid" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "gridArea" | "gridColumn" | "gridRow" | "gridTemplate">>, "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridArea" | "gridColumn" | "gridRow">, "__brand__">> & React__default.RefAttributes<BladeElementRef>>;
4594
+
4595
+ declare type RadioGroupProps = {
4596
+ /**
4597
+ * Accepts multiple radios as children
4598
+ */
4599
+ children: React__default.ReactNode;
4600
+ /**
4601
+ * Help text of the radio group
4602
+ */
4603
+ helpText?: string;
4604
+ /**
4605
+ * Error text of the radio group
4606
+ * Renders when `validationState` is set to 'error'
4607
+ *
4608
+ * Overrides helpText
4609
+ */
4610
+ errorText?: string;
4611
+ /**
4612
+ * Sets the error state of the radioGroup
4613
+ * If set to `error` it will render the `errorText` of the group,
4614
+ * and propagate `invalid` prop to every radio
4615
+ */
4616
+ validationState?: 'error' | 'none';
4617
+ /**
4618
+ * Renders a necessity indicator after radioGroup label
4619
+ *
4620
+ * If set to `undefined` it renders nothing.
4621
+ */
4622
+ necessityIndicator?: 'required' | 'optional' | 'none';
4623
+ /**
4624
+ * Sets the disabled state of the radioGroup
4625
+ * If set to `true` it propagate down to all the radios
4626
+ *
4627
+ * @default false
4628
+ */
4629
+ isDisabled?: boolean;
4630
+ /**
4631
+ * Renders the label of the radio group
4632
+ */
4633
+ label: string;
4634
+ /**
4635
+ * Sets the position of the label
4636
+ *
4637
+ * @default 'top'
4638
+ */
4639
+ labelPosition?: 'top' | 'left';
4640
+ /**
4641
+ * Initial value of the radio group
4642
+ */
4643
+ defaultValue?: string;
4644
+ /**
4645
+ * value of the radio group
4646
+ *
4647
+ * Use `onChange` to update its value
4648
+ */
4649
+ value?: string;
4650
+ /**
4651
+ * The callback invoked when any of the radio's state changes
4652
+ */
4653
+ onChange?: ({ name, value }: {
4654
+ name: string | undefined;
4655
+ value: string;
4656
+ }) => void;
4657
+ /**
4658
+ * The name of the input field in a radio
4659
+ * (Useful for form submission).
4660
+ */
4661
+ name?: string;
4662
+ /**
4663
+ * Size of the radios
4664
+ *
4665
+ * @default "medium"
4666
+ */
4667
+ size?: 'small' | 'medium';
4668
+ } & TestID & StyledPropsBlade;
4669
+ declare const RadioGroup: ({ children, label, helpText, isDisabled, necessityIndicator, labelPosition, validationState, errorText, name, defaultValue, onChange, value, size, testID, ...styledProps }: RadioGroupProps) => React__default.ReactElement;
4670
+
4671
+ declare type BaseSpinnerProps = {
4672
+ intent?: Feedback;
4673
+ /**
4674
+ * Sets the label of the spinner.
4675
+ *
4676
+ * @default 'right'
4677
+ */
4678
+ label?: string;
4679
+ /**
4680
+ * Sets the label of the spinner.
4681
+ *
4682
+ */
4683
+ labelPosition?: 'right' | 'bottom';
4684
+ /**
4685
+ * Sets the contrast of the spinner.
4686
+ *
4687
+ * @default 'low'
4688
+ */
4689
+ contrast?: ColorContrastTypes;
4690
+ /**
4691
+ * Sets the size of the spinner.
4692
+ *
4693
+ * @default 'medium'
4694
+ */
4695
+ size?: 'medium' | 'large' | 'xlarge';
4696
+ /**
4697
+ * Sets the aria-label for web & accessibilityLabel react-native.
4698
+ *
4699
+ */
4700
+ accessibilityLabel: string;
4701
+ } & TestID & StyledPropsBlade;
4702
+
4703
+ declare type SpinnerProps = Omit<BaseSpinnerProps, 'intent'>;
4704
+ declare const Spinner: ({ label, labelPosition, accessibilityLabel, contrast, size, testID, ...styledProps }: SpinnerProps) => React.ReactElement;
4705
+
4706
+ declare type SkipNavLinkProps = {
4707
+ id?: string;
4708
+ children?: StringChildrenType;
4709
+ };
4710
+ declare const SkipNavLink: ({ id, children, }: SkipNavLinkProps) => JSX.Element;
4711
+ declare type SkipNavContentProps = {
4712
+ id?: string;
4713
+ } & TestID;
4714
+ declare const SkipNavContent: ({ id, testID, }: SkipNavContentProps) => JSX.Element;
4715
+
4716
+ declare type VisuallyHiddenProps = {
4717
+ children: React.ReactNode;
4718
+ } & TestID;
4719
+
4720
+ declare const VisuallyHidden: ({ children, testID }: VisuallyHiddenProps) => JSX.Element;
4721
+
4722
+ /**
4723
+ * Screen reader class adapted from webaim
4724
+ * https://webaim.org/techniques/css/invisiblecontent/#techniques
4725
+ */
4726
+ declare const screenReaderStyles: CSSObject;
4727
+
4728
+ declare type Currency = 'INR' | 'MYR';
4729
+ declare type AmountProps = {
4730
+ /**
4731
+ * The value to be rendered within the component.
4732
+ *
4733
+ */
4734
+ value: number;
4735
+ /**
4736
+ * Sets the intent of the amount.
4737
+ *
4738
+ * @default undefined
4739
+ */
4740
+ intent?: Exclude<Feedback, 'neutral'>;
4741
+ /**
4742
+ * Sets the size of the amount.
4743
+ *
4744
+ * @default 'body-medium'
4745
+ */
4746
+ size?: 'body-medium-bold' | 'body-small' | 'body-small-bold' | 'body-medium' | 'body-medium-bold' | 'heading-small' | 'heading-small-bold' | 'heading-large' | 'heading-large-bold' | 'title-small' | 'title-medium';
4747
+ /**
4748
+ * Indicates what the suffix of amount should be
4749
+ *
4750
+ * @default 'decimals'
4751
+ */
4752
+ suffix?: 'decimals' | 'none' | 'humanize';
4753
+ /**
4754
+ * Makes the prefix symbol and decimal digits small and faded
4755
+ *
4756
+ * @default true
4757
+ */
4758
+ isAffixSubtle?: true | false;
4759
+ /**
4760
+ * Prefix to be shown before the amount value. The prefix can be either a currency symbol or a currency code.
4761
+ *
4762
+ * @default 'currency-symbol'
4763
+ */
4764
+ prefix?: 'currency-symbol' | 'currency-code';
4765
+ /**
4766
+ * The currency of the amount.
4767
+ *
4768
+ * @default 'INR'
4769
+ * */
4770
+ currency?: Currency;
4771
+ } & TestID & StyledPropsBlade;
4772
+ declare const Amount: ({ value, suffix, size, isAffixSubtle, intent, prefix, testID, currency, ...styledProps }: AmountProps) => ReactElement;
4773
+
4774
+ declare type BaseHeaderProps = {
4775
+ title?: string;
4776
+ subtitle?: string;
4777
+ /**
4778
+ * Leading part of the header placed at the left most side of the header
4779
+ */
4780
+ leading?: React__default.ReactNode;
4781
+ /**
4782
+ * Trailing part of the header placed at the right most side of the header
4783
+ */
4784
+ trailing?: React__default.ReactNode;
4785
+ /**
4786
+ * Placed adjacent to the title text
4787
+ */
4788
+ titleSuffix?: React__default.ReactNode;
4789
+ /**
4790
+ * @default true
4791
+ */
4792
+ showDivider?: boolean;
4793
+ /**
4794
+ * @default false
4795
+ */
4796
+ showBackButton?: boolean;
4797
+ /**
4798
+ * @default true
4799
+ */
4800
+ showCloseButton?: boolean;
4801
+ onCloseButtonClick?: () => void;
4802
+ onBackButtonClick?: () => void;
4803
+ closeButtonRef: React__default.MutableRefObject<any>;
4804
+ } & Pick<ReactDOMAttributes, 'onClickCapture' | 'onKeyDown' | 'onKeyUp' | 'onLostPointerCapture' | 'onPointerCancel' | 'onPointerDown' | 'onPointerMove' | 'onPointerUp'>;
4805
+
4806
+ declare type BaseFooterProps$1 = {
4807
+ children: React__default.ReactNode;
4808
+ showDivider?: boolean;
4809
+ };
4810
+
4811
+ declare type SnapPoints = [number, number, number];
4812
+
4813
+ declare type BottomSheetProps = {
4814
+ children: React.ReactNode;
4815
+ snapPoints?: SnapPoints;
4816
+ onDismiss?: () => void;
4817
+ isOpen?: boolean;
4818
+ initialFocusRef?: React.MutableRefObject<any>;
4819
+ };
4820
+ declare type BottomSheetHeaderProps = Pick<BaseHeaderProps, 'title' | 'subtitle' | 'leading' | 'trailing' | 'titleSuffix' | 'showBackButton' | 'onBackButtonClick'>;
4821
+ declare type BottomSheetFooterProps = Pick<BaseFooterProps$1, 'children'>;
4822
+
4823
+ declare const BottomSheetHeader: ({ title, subtitle, leading, titleSuffix, trailing, showBackButton, onBackButtonClick, }: BottomSheetHeaderProps) => React__default.ReactElement;
4824
+
4825
+ type BaseFooterProps = {
4826
+ children: React__default.ReactNode;
4827
+ showDivider?: boolean;
4828
+ };
4829
+
4830
+ declare const BottomSheetFooter: ({ children }: BaseFooterProps) => React__default.ReactElement;
4831
+
4832
+ declare const BottomSheetBody: ({ children }: {
4833
+ children: React__default.ReactNode;
4834
+ }) => React__default.ReactElement;
4835
+
4836
+ declare const BottomSheet: ({ isOpen, onDismiss, children, initialFocusRef, snapPoints, }: BottomSheetProps) => React__default.ReactElement;
4837
+
4838
+ export { ActionList, ActionListFooter, ActionListFooterIcon, ActionListFooterProps, ActionListHeader, ActionListHeaderIcon, ActionListHeaderProps, ActionListItem, ActionListItemAsset, ActionListItemAssetProps, ActionListItemIcon, ActionListItemProps, ActionListItemText, ActionListProps, ActionListSection, ActionListSectionDivider, ActionListSectionProps, ActivityIcon, AirplayIcon, Alert, AlertCircleIcon, AlertTriangleIcon as AlertOctagonIcon, AlertOnlyIcon, AlertProps, AlertTriangleIcon$1 as AlertTriangleIcon, AlignCenterIcon, AlignJustifyIcon, AlignLeftIcon, AlignRightIcon, Amount, AmountProps, AnchorIcon, AnnouncementIcon, ApertureIcon, AppStoreIcon, ArrowDownIcon, ArrowDownLeftIcon, ArrowDownRightIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, ArrowUpLeftIcon, ArrowUpRightIcon, AtSignIcon, Attachment as AttachmentIcon, AwardIcon, Badge, BadgeProps, BankIcon, BarChartAltIcon, BarChartIcon, BatteryChargingIcon, BatteryIcon, BellIcon, BellOffIcon, BillIcon, BladeProvider, BladeProviderProps, BluetoothIcon, BoldIcon, BookIcon, BookmarkIcon, BottomSheet, BottomSheetBody, BottomSheetFooter, BottomSheetFooterProps, BottomSheetHeader, BottomSheetHeaderProps, BottomSheetProps, Box, BoxIcon, BoxProps, BoxRefType, BriefcaseIcon, BulkPayoutsIcon, Button, ButtonProps, CalendarIcon, CameraIcon, CameraOffIcon, Card, CardBody, CardFooter, CardFooterAction, CardFooterLeading, CardFooterTrailing, CardHeader, CardHeaderBadge, CardHeaderCounter, CardHeaderIcon, CardHeaderIconButton, CardHeaderLeading, CardHeaderLink, CardHeaderText, CardHeaderTrailing, CardProps, CastIcon, CheckCircleIcon, CheckIcon, CheckSquareIcon, Checkbox, CheckboxGroup, CheckboxGroupProps, CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsDownIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpIcon, ChromeIcon, CircleIcon, ClipboardIcon, ClockIcon, CloseIcon, CloudDrizzleIcon, CloudIcon, CloudLightningIcon, CloudOffIcon, CloudRainIcon, CloudSnowIcon, Code, CodeProps, CodepenIcon, CoinsIcon, CommandIcon, CompassIcon, ComponentIds, CopyIcon, CornerDownLeftIcon, CornerDownRightIcon, CornerLeftDownIcon, CornerLeftUpIcon, CornerRightDownIcon, CornerRightUpIcon, CornerUpLeftIcon, CornerUpRightIcon, Counter, CounterProps, CpuIcon, CreditCardIcon, CropIcon, CrosshairIcon, CustomersIcon, CutIcon, DashboardIcon, DeleteIcon, DiscIcon, DollarIcon, DollarsIcon, DownloadCloudIcon, DownloadIcon, Dropdown, DropdownButton, DropdownOverlay, DropdownOverlayProps, DropdownProps, DropletIcon, EditComposeIcon, EditIcon, EditInlineIcon, ExportIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FacebookIcon, FastForwardIcon, FeatherIcon, FileIcon, FileMinusIcon, FilePlusIcon, FileTextIcon, FilmIcon, FilterIcon, FlagIcon, FolderIcon, FullScreenEnterIcon, FullScreenExitIcon, GithubIcon, GitlabIcon, GlobeIcon, GridIcon, HashIcon, Heading, HeadingProps, HeadphonesIcon, HeartIcon, HelpCircleIcon, HistoryIcon, HomeIcon, IconButton, IconButtonProps, IconComponent, IconProps, IconSize, ImageIcon, InboxIcon, Indicator, IndicatorProps, InfoIcon, InstagramIcon, InvoicesIcon, ItalicIcon, LayersIcon, LayoutIcon, LifeBuoyIcon, Link, LinkIcon, LinkProps, List, ListIcon, ListItem, ListItemCode, ListItemCodeProps, ListItemLink, ListItemLinkProps, ListItemProps, ListProps, LoaderIcon, LockIcon, LogInIcon, LogOutIcon, MailIcon, MailOpenIcon, MapIcon, MapPinIcon, MaximizeIcon, MenuDotsIcon, MenuIcon, MessageCircleIcon, MessageSquareIcon, MicIcon, MicOffIcon, MinimizeIcon, MinusCircleIcon, MinusIcon, MinusSquareIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, MoreVerticalIcon, MoveIcon, MusicIcon, MyAccountIcon, NavigationIcon, OTPInput, OTPInputProps, OctagonIcon, OffersIcon, PackageIcon, PaperclipIcon, PasswordInput, PasswordInputProps, PauseCircleIcon, PauseIcon, PaymentButtonsIcon, PaymentLinksIcon, PaymentPagesIcon, PercentIcon, PhoneCallIcon, PhoneForwardedIcon, PhoneIcon, PhoneIncomingIcon, PhoneMissedIcon, PhoneOffIcon, PhoneOutgoingIcon, PieChartIcon, PlayCircleIcon, PlayIcon, PlusCircleIcon, PlusIcon, PlusSquareIcon, PocketIcon, PowerIcon, PrinterIcon, ProgressBar, ProgressBarProps, ProgressBarVariant, QRCodeIcon, Radio, RadioGroup, RadioGroupProps, RadioIcon, RadioProps, RazorpayIcon, RazorpayXIcon, RefreshIcon, RepeatIcon, ReportsIcon, RewindIcon, RotateClockWiseIcon, RotateCounterClockWiseIcon, RoutesIcon, RupeeIcon, RupeesIcon, SaveIcon, ScissorsIcon, SearchIcon, SelectInput, SelectInputProps, SendIcon, ServerIcon, SettingsIcon, SettlementsIcon, ShareIcon, ShieldIcon, ShoppingCartIcon, ShuffleIcon, SidebarIcon, SkipBackIcon, SkipForwardIcon, SkipNavContent, SkipNavLink, SlackIcon, SlashIcon, SlidersIcon, SmartCollectIcon, SmartphoneIcon, SpeakerIcon, Spinner, SpinnerProps, SquareIcon, StampIcon, StarIcon, StopCircleIcon, SubscriptionsIcon, SunIcon, SunriseIcon, SunsetIcon, TabletIcon, TagIcon, TargetIcon, Text, TextArea, TextAreaProps, TextInput, TextInputProps, TextProps, TextVariant, Theme, ThermometerIcon, ThumbsDownIcon, ThumbsUpIcon, Title, TitleProps, ToggleLeftIcon, ToggleRightIcon, TransactionsIcon, TrashIcon, TrendingDownIcon, TrendingUpIcon, TriangleIcon, TvIcon, TwitterIcon, TypeIcon, UmbrellaIcon, UnderlineIcon, UnlockIcon, UploadCloudIcon, UploadIcon, UserCheckIcon, UserIcon, UserMinusIcon, UserPlusIcon, UserXIcon, UsersIcon, VideoIcon, VideoOffIcon, VisuallyHidden, VisuallyHiddenProps, VoicemailIcon, VolumeHighIcon, VolumeIcon, VolumeLowIcon, VolumeMuteIcon, WatchIcon, WifiIcon, WifiOffIcon, WindIcon, XCircleIcon, XSquareIcon, ZapIcon, ZoomInIcon, ZoomOutIcon, announce, clearAnnouncer, destroyAnnouncer, getTextProps, screenReaderStyles, useActionListContext, useTheme };