@razorpay/blade 6.3.0 → 6.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,61 +1,11 @@
1
1
  /// <reference types="react" />
2
+ /// <reference types="styled-components-react-native" />
3
+ /// <reference types="~src/@types/globals" />
2
4
  import * as React$1 from 'react';
3
5
  import React__default, { ReactChild, ReactElement, ReactNode, SyntheticEvent, KeyboardEvent } from 'react';
4
- import { AccessibilityRole, ImageSourcePropType, View, GestureResponderEvent } from 'react-native';
6
+ import * as styled_components from 'styled-components';
5
7
  import { CSSObject } from 'styled-components';
6
-
7
- declare type ActionListProps = {
8
- children: React__default.ReactNode[];
9
- /**
10
- * Decides the backgroundColor of ActionList
11
- */
12
- surfaceLevel?: 2 | 3;
13
- };
14
- /**
15
- * ### ActionList
16
- *
17
- * List of multiple actionable items. Can be used as menu items inside `Dropdown`,
18
- * `BottomSheet` and as selectable items when combined with `SelectInput`
19
- *
20
- * #### Usage
21
- *
22
- * ```jsx
23
- * <Dropdown>
24
- * <SelectInput label="Select Action" />
25
- * <DropdownOverlay>
26
- * <ActionList>
27
- * <ActionListHeader
28
- * title="Recent Searches"
29
- * leading={<ActionListHeaderIcon icon={HistoryIcon} />}
30
- * />
31
- * <ActionListItem
32
- * title="Home"
33
- * value="home"
34
- * leading={<ActionListItemIcon icon={HomeIcon} />}
35
- * />
36
- * <ActionListItem
37
- * title="Pricing"
38
- * value="pricing"
39
- * leading={<ActionListItemAsset src="https://flagcdn.com/w20/in.png" alt="India Flag" />}
40
- * />
41
- * <ActionListHeader
42
- * title="Search Tips"
43
- * leading={<ActionListFooterIcon icon={SearchIcon} />}
44
- * trailing={
45
- * <Button
46
- * onClick={() => console.log('clicked')}
47
- * >
48
- * Apply
49
- * </Button>
50
- * }
51
- * />
52
- * </ActionList>
53
- * </DropdownOverlay>
54
- * </Dropdown>
55
- * ```
56
- *
57
- */
58
- declare const ActionList: ({ children, surfaceLevel }: ActionListProps) => JSX.Element;
8
+ import { AccessibilityRole, ImageSourcePropType, View, GestureResponderEvent } from 'react-native';
59
9
 
60
10
  type BorderRadius = Readonly<{
61
11
  /** none: 0(px/rem/pt) */
@@ -87,18 +37,73 @@ type Border = Readonly<{
87
37
  }>;
88
38
 
89
39
  type Breakpoints = Readonly<{
90
- /** max width: 320px */
40
+ /**
41
+ * `base` is used for responsive styling following a **mobile first** approach. It starts from 0px till the next existing token
42
+ *
43
+ * Think of this as styles without any media query.
44
+ *
45
+ * ### Example
46
+ *
47
+ * This code will set margin as `spacing.2` on "m" size screens and above. And as `spacing.1` on less than "m" size screens
48
+ * ```jsx
49
+ * <Box margin={{ base: 'spacing.1', m: 'spacing.2' }} />
50
+ * ```
51
+ *
52
+ * This roughly translates into -
53
+ *
54
+ * ```
55
+ * .Box {
56
+ * margin: 'spacing.1';
57
+ * }
58
+ *
59
+ * @media screen and (min-width: 768px) {
60
+ * .Box {
61
+ * margin: 'spacing.2';
62
+ * }
63
+ * }
64
+ * ```
65
+ */
66
+ base: number;
67
+ /**
68
+ * `@media screen and (min-width: 320px)`
69
+ *
70
+ * Small Mobiles
71
+ */
91
72
  xs: number;
92
- /** min width: 321px and max width: 480px */
73
+ /**
74
+ * `@media screen and (min-width: 480px)`
75
+ *
76
+ * Mobiles and Small Tablets
77
+ */
93
78
  s: number;
94
- /** min width: 481px and max width: 768px */
79
+ /**
80
+ * `@media screen and (min-width: 768px)`
81
+ *
82
+ * Medium and Large Tablets.
83
+ *
84
+ * Dimensions with `m` and above can be treated as desktop in mobile-first approach (with min-width).
85
+ * Hence this breakpoint can be used for desktop styling.
86
+ *
87
+ * E.g. next example will keep flexDirection `row` on mobiles and `column` on large tablets, desktop, and larger screens
88
+ *
89
+ * ```jsx
90
+ * <Box display="flex" flexDirection={{ base: 'row', m: 'column' }} />
91
+ * ```
92
+ *
93
+ */
95
94
  m: number;
96
- /** min width: 769 and max width: 1024px */
95
+ /**
96
+ * `@media screen and (min-width: 1024px)`
97
+ *
98
+ * Desktop
99
+ */
97
100
  l: number;
98
- /** min width: 1025 and max width: 1200px */
101
+ /**
102
+ * `@media screen and (min-width: 1200px)`
103
+ *
104
+ * HD Desktop
105
+ */
99
106
  xl: number;
100
- /** min width: 1201px */
101
- max: number;
102
107
  }>;
103
108
 
104
109
  type FontFamily = {
@@ -253,6 +258,12 @@ type TypographyPlatforms$1 = 'onDesktop' | 'onMobile';
253
258
 
254
259
  type TypographyWithPlatforms = Record<TypographyPlatforms$1, Typography>;
255
260
 
261
+ /**
262
+ * When any of the values are changed here, do change the jsdoc comments in BaseBox/types/spacingTypes.ts as well
263
+ *
264
+ * {@link ../../components/Box/BaseBox/types/spacingTypes.ts}
265
+ */
266
+
256
267
  type Spacing = Readonly<{
257
268
  /** 0: 0(px/rem/pt) */
258
269
  0: 0;
@@ -280,157 +291,278 @@ type Spacing = Readonly<{
280
291
  11: 56;
281
292
  }>;
282
293
 
283
- /**
284
- * @template TokenType token type generic
285
- * @description Tokenises objects to dot notation strings, eg: `surface.text.normal.lowContrast`
286
- */
287
- type DotNotationColorStringToken<TokenType> = {
288
- [K in keyof TokenType]: `${Extract<K, number | string>}.${TokenType[K] extends Record<
289
- string,
290
- string
291
- >
292
- ? Extract<keyof TokenType[K], number | string>
293
- : DotNotationColorStringToken<TokenType[K]>}`;
294
- }[keyof TokenType];
294
+ type ColorSchemeNames = 'dark' | 'light';
295
+ type ColorSchemeNamesInput = ColorSchemeNames | 'system';
295
296
 
296
- /**
297
- * Use this when you want children to be string.
298
- *
299
- * This covers scenarios like
300
- * ```jsx
301
- * <Title>Hi</Title>
302
- * <Title>{dynamicVariable} something</Title>
303
- * ```
304
- *
305
- *
306
- * ### Usage
307
- *
308
- * ```ts
309
- * import type { StringChildrenType } from '~helpers/types';
310
- *
311
- * type MyProps = {
312
- * children: StringChildrenType;
313
- * }
314
- * ```
315
- */
316
- type StringChildrenType = React__default.ReactText | React__default.ReactText[];
297
+ type ColorSchemeModes = 'onDark' | 'onLight';
317
298
 
318
- /* eslint-disable @typescript-eslint/no-explicit-any */
299
+ type ShadowLevels = 1 | 2 | 3 | 4 | 5;
319
300
 
301
+ type TextTypes = 'muted' | 'normal' | 'placeholder' | 'subdued' | 'subtle';
320
302
 
321
- /**
322
- * A type defining React component with additional static prop `componentId`
323
- */
324
- type WithComponentId<Props> = ((props: Props) => React__default.ReactElement) & {
325
- componentId: string;
303
+ type ColorContrastTypes = 'low' | 'high';
304
+
305
+ type Shadows = {
306
+ offsetX: {
307
+ level: Record<ShadowLevels, number>;
308
+ };
309
+ offsetY: {
310
+ level: Record<ShadowLevels, number>;
311
+ };
312
+ blurRadius: {
313
+ level: Record<ShadowLevels, number>;
314
+ };
315
+ color: Record<
316
+ ColorSchemeModes,
317
+ {
318
+ level: Record<ShadowLevels, string>;
319
+ }
320
+ >;
321
+ androidElevation: {
322
+ level: Record<ShadowLevels, number>;
323
+ };
326
324
  };
327
325
 
328
- // All the WAI-ARIA 1.1 role attribute values from https://www.w3.org/TR/wai-aria-1.1/#role_definitions
329
- type AriaRoles =
330
- | Exclude<AccessibilityRole, 'header' | 'adjustable' | 'image' | 'none' | 'summary'>
331
- | 'alert'
332
- | 'alertdialog'
333
- | 'application'
334
- | 'article'
335
- | 'banner'
336
- | 'button'
337
- | 'cell'
338
- | 'checkbox'
339
- | 'columnheader'
340
- | 'combobox'
341
- | 'complementary'
342
- | 'contentinfo'
343
- | 'definition'
344
- | 'dialog'
345
- | 'directory'
346
- | 'document'
347
- | 'feed'
348
- | 'figure'
349
- | 'form'
350
- | 'grid'
351
- | 'gridcell'
352
- | 'group'
353
- | 'heading'
354
- | 'img'
355
- | 'link'
356
- | 'list'
357
- | 'listbox'
358
- | 'listitem'
359
- | 'log'
360
- | 'main'
361
- | 'marquee'
362
- | 'math'
363
- | 'menu'
364
- | 'menubar'
365
- | 'menuitem'
366
- | 'menuitemcheckbox'
367
- | 'menuitemradio'
368
- | 'meter'
369
- | 'navigation'
370
- | 'none'
371
- | 'note'
372
- | 'option'
373
- | 'presentation'
374
- | 'progressbar'
375
- | 'radio'
376
- | 'radiogroup'
377
- | 'region'
378
- | 'row'
379
- | 'rowgroup'
380
- | 'rowheader'
381
- | 'scrollbar'
382
- | 'search'
383
- | 'searchbox'
384
- | 'separator'
385
- | 'slider'
386
- | 'spinbutton'
387
- | 'status'
388
- | 'switch'
389
- | 'tab'
390
- | 'table'
391
- | 'tablist'
392
- | 'tabpanel'
393
- | 'term'
394
- | 'textbox'
395
- | 'timer'
396
- | 'toolbar'
397
- | 'tooltip'
398
- | 'tree'
399
- | 'treegrid'
400
- | 'treeitem';
401
- type AccessibilityProps = AriaAttributes;
326
+ type Feedback = 'information' | 'negative' | 'neutral' | 'notice' | 'positive';
402
327
 
403
- type AriaAttributes = {
404
- role: AriaRoles;
405
- /**
406
- * Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application.
407
- */
408
- activeDescendant?: string;
409
- /**
410
- * 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.
411
- */
412
- atomic?: boolean;
413
- /**
414
- * 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.
415
- */
416
- autoComplete?: 'none' | 'inline' | 'list' | 'both';
417
- /**
418
- * 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.
419
- */
420
- busy?: boolean;
421
- /**
422
- * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
423
- * @see aria-pressed @see aria-selected.
424
- */
425
- checked?: boolean | 'mixed';
426
- /**
427
- * Defines the total number of columns in a table, grid, or treegrid.
428
- * @see aria-colindex.
429
- */
430
- colCount?: number;
431
- /**
432
- * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.
433
- * @see aria-colcount @see aria-colspan.
328
+ type ColorContrast = {
329
+ [K in ColorContrastTypes as `${Extract<K, string>}Contrast`]: string;
330
+ };
331
+
332
+ type ActionStates = {
333
+ default: string;
334
+ hover: string;
335
+ focus: string;
336
+ active: string;
337
+ disabled: string;
338
+ };
339
+
340
+ type LinkActionStates = ActionStates & {
341
+ visited: string;
342
+ };
343
+
344
+ type ActionStatesWithContrast = {
345
+ default: ColorContrast;
346
+ hover: ColorContrast;
347
+ focus: ColorContrast;
348
+ active: ColorContrast;
349
+ disabled: ColorContrast;
350
+ };
351
+
352
+ type ActionVariants = {
353
+ primary: ActionStates;
354
+ secondary: ActionStates;
355
+ tertiary: ActionStates;
356
+ link: LinkActionStates;
357
+ };
358
+
359
+ type ActionVariantsWithContrast = {
360
+ primary: ActionStatesWithContrast;
361
+ secondary: ActionStatesWithContrast;
362
+ tertiary: ActionStatesWithContrast;
363
+ link: ActionStatesWithContrast;
364
+ };
365
+
366
+ // export type ActionProperties = {
367
+ // background: ActionVariants;
368
+ // border: ActionVariants;
369
+ // text: ActionVariants;
370
+ // icon: ActionVariants;
371
+ // };
372
+
373
+ type FeedbackActions = {
374
+ background: Pick<ActionVariantsWithContrast, 'primary'>;
375
+ border: Pick<ActionVariantsWithContrast, 'primary'>;
376
+ text: Pick<ActionVariantsWithContrast, 'link' | 'primary'>;
377
+ icon: Pick<ActionVariantsWithContrast, 'link' | 'primary'>;
378
+ };
379
+
380
+ type Colors = {
381
+ brand: {
382
+ primary: Record<300 | 400 | 500 | 600 | 700 | 800, string>;
383
+ secondary: Record<500, string>;
384
+ gray: Record<200 | 300 | 400 | 500 | 600 | 700 | 'a50' | 'a100', ColorContrast>;
385
+ };
386
+ feedback: {
387
+ background: Record<Feedback, ColorContrast>;
388
+ border: Record<Feedback, ColorContrast>;
389
+ text: Record<Feedback, ColorContrast>;
390
+ icon: Record<Feedback, ColorContrast>;
391
+ positive: {
392
+ action: FeedbackActions;
393
+ };
394
+ negative: {
395
+ action: FeedbackActions;
396
+ };
397
+ information: {
398
+ action: FeedbackActions;
399
+ };
400
+ notice: {
401
+ action: FeedbackActions;
402
+ };
403
+ neutral: {
404
+ action: FeedbackActions;
405
+ };
406
+ };
407
+ surface: {
408
+ background: Record<'level1' | 'level2' | 'level3', ColorContrast>;
409
+ border: Record<'normal' | 'subtle', ColorContrast>;
410
+ text: Record<TextTypes, ColorContrast>;
411
+ action: {
412
+ icon: ActionStatesWithContrast;
413
+ };
414
+ };
415
+ overlay: Record<'background', string>;
416
+ action: {
417
+ background: Omit<ActionVariants, 'link'>;
418
+ border: Omit<ActionVariants, 'link'>;
419
+ text: ActionVariants;
420
+ icon: ActionVariants;
421
+ };
422
+ badge: {
423
+ background: {
424
+ blue: ColorContrast;
425
+ };
426
+ border: {
427
+ blue: ColorContrast;
428
+ };
429
+ text: {
430
+ blue: ColorContrast;
431
+ };
432
+ icon: {
433
+ blue: ColorContrast;
434
+ };
435
+ };
436
+ };
437
+
438
+ type ColorsWithModes = Record<ColorSchemeModes, Colors>;
439
+
440
+ type ThemeTokens = {
441
+ border: Border;
442
+ breakpoints: Breakpoints;
443
+ colors: ColorsWithModes;
444
+ motion: Motion;
445
+ spacing: Spacing;
446
+ shadows: Shadows;
447
+ typography: TypographyWithPlatforms;
448
+ };
449
+
450
+ /* eslint-disable @typescript-eslint/no-explicit-any */
451
+
452
+
453
+ /**
454
+ * A type defining React component with additional static prop `componentId`
455
+ */
456
+ type WithComponentId<Props> = ((props: Props) => React__default.ReactElement) & {
457
+ componentId: string;
458
+ };
459
+
460
+ // All the WAI-ARIA 1.1 role attribute values from https://www.w3.org/TR/wai-aria-1.1/#role_definitions
461
+ type AriaRoles =
462
+ | Exclude<AccessibilityRole, 'header' | 'adjustable' | 'image' | 'none' | 'summary'>
463
+ | 'alert'
464
+ | 'alertdialog'
465
+ | 'application'
466
+ | 'article'
467
+ | 'banner'
468
+ | 'button'
469
+ | 'cell'
470
+ | 'checkbox'
471
+ | 'columnheader'
472
+ | 'combobox'
473
+ | 'complementary'
474
+ | 'contentinfo'
475
+ | 'definition'
476
+ | 'dialog'
477
+ | 'directory'
478
+ | 'document'
479
+ | 'feed'
480
+ | 'figure'
481
+ | 'form'
482
+ | 'grid'
483
+ | 'gridcell'
484
+ | 'group'
485
+ | 'heading'
486
+ | 'img'
487
+ | 'link'
488
+ | 'list'
489
+ | 'listbox'
490
+ | 'listitem'
491
+ | 'log'
492
+ | 'main'
493
+ | 'marquee'
494
+ | 'math'
495
+ | 'menu'
496
+ | 'menubar'
497
+ | 'menuitem'
498
+ | 'menuitemcheckbox'
499
+ | 'menuitemradio'
500
+ | 'meter'
501
+ | 'navigation'
502
+ | 'none'
503
+ | 'note'
504
+ | 'option'
505
+ | 'presentation'
506
+ | 'progressbar'
507
+ | 'radio'
508
+ | 'radiogroup'
509
+ | 'region'
510
+ | 'row'
511
+ | 'rowgroup'
512
+ | 'rowheader'
513
+ | 'scrollbar'
514
+ | 'search'
515
+ | 'searchbox'
516
+ | 'separator'
517
+ | 'slider'
518
+ | 'spinbutton'
519
+ | 'status'
520
+ | 'switch'
521
+ | 'tab'
522
+ | 'table'
523
+ | 'tablist'
524
+ | 'tabpanel'
525
+ | 'term'
526
+ | 'textbox'
527
+ | 'timer'
528
+ | 'toolbar'
529
+ | 'tooltip'
530
+ | 'tree'
531
+ | 'treegrid'
532
+ | 'treeitem';
533
+ type AccessibilityProps = AriaAttributes;
534
+
535
+ type AriaAttributes = {
536
+ role: AriaRoles;
537
+ /**
538
+ * Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application.
539
+ */
540
+ activeDescendant?: string;
541
+ /**
542
+ * 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.
543
+ */
544
+ atomic?: boolean;
545
+ /**
546
+ * 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.
547
+ */
548
+ autoComplete?: 'none' | 'inline' | 'list' | 'both';
549
+ /**
550
+ * 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.
551
+ */
552
+ busy?: boolean;
553
+ /**
554
+ * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
555
+ * @see aria-pressed @see aria-selected.
556
+ */
557
+ checked?: boolean | 'mixed';
558
+ /**
559
+ * Defines the total number of columns in a table, grid, or treegrid.
560
+ * @see aria-colindex.
561
+ */
562
+ colCount?: number;
563
+ /**
564
+ * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.
565
+ * @see aria-colcount @see aria-colspan.
434
566
  */
435
567
  colIndex?: number;
436
568
  /**
@@ -767,175 +899,469 @@ type Motion = Readonly<{
767
899
  easing: Easing;
768
900
  }>;
769
901
 
770
- type ColorSchemeNames = 'dark' | 'light';
771
- type ColorSchemeNamesInput = ColorSchemeNames | 'system';
902
+ /**
903
+ * @template TokenType token type generic
904
+ * @description Tokenises objects to dot notation strings, eg: `surface.text.normal.lowContrast`
905
+ */
906
+ type DotNotationColorStringToken<TokenType> = {
907
+ [K in keyof TokenType]: `${Extract<K, number | string>}.${TokenType[K] extends Record<
908
+ string,
909
+ string
910
+ >
911
+ ? Extract<keyof TokenType[K], number | string>
912
+ : DotNotationColorStringToken<TokenType[K]>}`;
913
+ }[keyof TokenType];
772
914
 
773
- type ColorSchemeModes = 'onDark' | 'onLight';
915
+ type DotNotationSpacingStringToken = `spacing.${keyof Spacing}`;
774
916
 
775
- type ShadowLevels = 1 | 2 | 3 | 4 | 5;
917
+ /**
918
+ * Use this when you want children to be string.
919
+ *
920
+ * This covers scenarios like
921
+ * ```jsx
922
+ * <Title>Hi</Title>
923
+ * <Title>{dynamicVariable} something</Title>
924
+ * ```
925
+ *
926
+ *
927
+ * ### Usage
928
+ *
929
+ * ```ts
930
+ * import type { StringChildrenType } from '~helpers/types';
931
+ *
932
+ * type MyProps = {
933
+ * children: StringChildrenType;
934
+ * }
935
+ * ```
936
+ */
937
+ type StringChildrenType = React__default.ReactText | React__default.ReactText[];
776
938
 
777
- type TextTypes = 'muted' | 'normal' | 'placeholder' | 'subdued' | 'subtle';
939
+ type TestID$1 = {
940
+ testID?: string;
941
+ };
778
942
 
779
- type ColorContrastTypes = 'low' | 'high';
943
+ declare type ActionListProps = {
944
+ children: React__default.ReactNode[];
945
+ /**
946
+ * Decides the backgroundColor of ActionList
947
+ */
948
+ surfaceLevel?: 2 | 3;
949
+ } & TestID$1;
950
+ /**
951
+ * ### ActionList
952
+ *
953
+ * List of multiple actionable items. Can be used as menu items inside `Dropdown`,
954
+ * `BottomSheet` and as selectable items when combined with `SelectInput`
955
+ *
956
+ * #### Usage
957
+ *
958
+ * ```jsx
959
+ * <Dropdown>
960
+ * <SelectInput label="Select Action" />
961
+ * <DropdownOverlay>
962
+ * <ActionList>
963
+ * <ActionListHeader
964
+ * title="Recent Searches"
965
+ * leading={<ActionListHeaderIcon icon={HistoryIcon} />}
966
+ * />
967
+ * <ActionListItem
968
+ * title="Home"
969
+ * value="home"
970
+ * leading={<ActionListItemIcon icon={HomeIcon} />}
971
+ * />
972
+ * <ActionListItem
973
+ * title="Pricing"
974
+ * value="pricing"
975
+ * leading={<ActionListItemAsset src="https://flagcdn.com/w20/in.png" alt="India Flag" />}
976
+ * />
977
+ * <ActionListHeader
978
+ * title="Search Tips"
979
+ * leading={<ActionListFooterIcon icon={SearchIcon} />}
980
+ * trailing={
981
+ * <Button
982
+ * onClick={() => console.log('clicked')}
983
+ * >
984
+ * Apply
985
+ * </Button>
986
+ * }
987
+ * />
988
+ * </ActionList>
989
+ * </DropdownOverlay>
990
+ * </Dropdown>
991
+ * ```
992
+ *
993
+ */
994
+ declare const ActionList: ({ children, surfaceLevel, testID }: ActionListProps) => JSX.Element;
780
995
 
781
- type Shadows = {
782
- offsetX: {
783
- level: Record<ShadowLevels, number>;
784
- };
785
- offsetY: {
786
- level: Record<ShadowLevels, number>;
787
- };
788
- blurRadius: {
789
- level: Record<ShadowLevels, number>;
790
- };
791
- color: Record<
792
- ColorSchemeModes,
793
- {
996
+ type Theme$1 = {
997
+ border: Border;
998
+ breakpoints: Breakpoints;
999
+ colors: Colors;
1000
+ spacing: Spacing;
1001
+ motion: Motion;
1002
+ shadows: Omit<Shadows, 'color'> & {
1003
+ color: {
794
1004
  level: Record<ShadowLevels, string>;
795
- }
796
- >;
797
- androidElevation: {
798
- level: Record<ShadowLevels, number>;
1005
+ };
799
1006
  };
1007
+ typography: Typography;
800
1008
  };
801
1009
 
802
- type Feedback = 'information' | 'negative' | 'neutral' | 'notice' | 'positive';
803
-
804
- type ColorContrast = {
805
- [K in ColorContrastTypes as `${Extract<K, string>}Contrast`]: string;
806
- };
807
-
808
- type ActionStates = {
809
- default: string;
810
- hover: string;
811
- focus: string;
812
- active: string;
813
- disabled: string;
814
- };
815
-
816
- type LinkActionStates = ActionStates & {
817
- visited: string;
818
- };
819
-
820
- type ActionStatesWithContrast = {
821
- default: ColorContrast;
822
- hover: ColorContrast;
823
- focus: ColorContrast;
824
- active: ColorContrast;
825
- disabled: ColorContrast;
826
- };
827
-
828
- type ActionVariants = {
829
- primary: ActionStates;
830
- secondary: ActionStates;
831
- tertiary: ActionStates;
832
- link: LinkActionStates;
833
- };
834
-
835
- type ActionVariantsWithContrast = {
836
- primary: ActionStatesWithContrast;
837
- secondary: ActionStatesWithContrast;
838
- tertiary: ActionStatesWithContrast;
839
- link: ActionStatesWithContrast;
840
- };
841
-
842
- // export type ActionProperties = {
843
- // background: ActionVariants;
844
- // border: ActionVariants;
845
- // text: ActionVariants;
846
- // icon: ActionVariants;
847
- // };
1010
+ /**
1011
+ * Returns the value or the responsive object with that value
1012
+ *
1013
+ * ## Usage
1014
+ *
1015
+ * Example if you pass string argument, return type will be string or responsive object with string value
1016
+ *
1017
+ * `MakeValueResponsive<string>`
1018
+ * ```ts
1019
+ * string |
1020
+ * {
1021
+ * base?: string;
1022
+ * xs?: string;
1023
+ * s?: string;
1024
+ * // ... other breakpoints
1025
+ * }
1026
+ * ```
1027
+ *
1028
+ */
1029
+ type MakeValueResponsive$1<T> =
1030
+ | T
1031
+ | {
1032
+ // Using this instead of Record to maintain the jsdoc from breakpoints.ts
1033
+ [P in keyof Breakpoints]?: T;
1034
+ };
848
1035
 
849
- type FeedbackActions = {
850
- background: Pick<ActionVariantsWithContrast, 'primary'>;
851
- border: Pick<ActionVariantsWithContrast, 'primary'>;
852
- text: Pick<ActionVariantsWithContrast, 'link' | 'primary'>;
853
- icon: Pick<ActionVariantsWithContrast, 'link' | 'primary'>;
854
- };
1036
+ /**
1037
+ * Turns all the values in object into responsive object.
1038
+ *
1039
+ * ```ts
1040
+ * MakeObjectResponsive<{ hello: string}>
1041
+ *
1042
+ * // Outputs:
1043
+ * {
1044
+ * hello: string | {
1045
+ * base?: string;
1046
+ * xs?: string;
1047
+ * s?: string;
1048
+ * // ... other breakpoints
1049
+ * }
1050
+ * }
1051
+ * ```
1052
+ */
1053
+ type MakeObjectResponsive$1<T> = { [P in keyof T]: MakeValueResponsive$1<T[P]> };
855
1054
 
856
- type Colors = {
857
- brand: {
858
- primary: Record<300 | 400 | 500 | 600 | 700 | 800, string>;
859
- secondary: Record<500, string>;
860
- gray: Record<200 | 300 | 400 | 500 | 600 | 700 | 'a50' | 'a100', ColorContrast>;
861
- };
862
- feedback: {
863
- background: Record<Feedback, ColorContrast>;
864
- border: Record<Feedback, ColorContrast>;
865
- text: Record<Feedback, ColorContrast>;
866
- icon: Record<Feedback, ColorContrast>;
867
- positive: {
868
- action: FeedbackActions;
869
- };
870
- negative: {
871
- action: FeedbackActions;
872
- };
873
- information: {
874
- action: FeedbackActions;
875
- };
876
- notice: {
877
- action: FeedbackActions;
878
- };
879
- neutral: {
880
- action: FeedbackActions;
881
- };
882
- };
883
- surface: {
884
- background: Record<'level1' | 'level2' | 'level3', ColorContrast>;
885
- border: Record<'normal' | 'subtle', ColorContrast>;
886
- text: Record<TextTypes, ColorContrast>;
887
- action: {
888
- icon: ActionStatesWithContrast;
889
- };
890
- };
891
- overlay: Record<'background', string>;
892
- action: {
893
- background: Omit<ActionVariants, 'link'>;
894
- border: Omit<ActionVariants, 'link'>;
895
- text: ActionVariants;
896
- icon: ActionVariants;
897
- };
898
- badge: {
899
- background: {
900
- blue: ColorContrast;
901
- };
902
- border: {
903
- blue: ColorContrast;
904
- };
905
- text: {
906
- blue: ColorContrast;
907
- };
908
- icon: {
909
- blue: ColorContrast;
910
- };
911
- };
912
- };
1055
+ type ArrayOfMaxLength4$1<T> = readonly [T?, T?, T?, T?];
1056
+ type SpaceUnits$1 = Platform.Select<{
1057
+ web: 'px' | '%' | 'fr' | 'rem' | 'em' | 'vh' | 'vw';
1058
+ native: 'px' | '%';
1059
+ }>;
1060
+ type SpacingValueType$1 = DotNotationSpacingStringToken | `${string}${SpaceUnits$1}` | 'auto';
913
1061
 
914
- type ColorsWithModes = Record<ColorSchemeModes, Colors>;
1062
+ type MarginProps$1 = MakeObjectResponsive$1<{
1063
+ /**
1064
+ * ### Margin Shorthand
1065
+ *
1066
+ * #### Usage
1067
+ *
1068
+ * ```jsx
1069
+ * margin="spacing.3"
1070
+ * margin="20px"
1071
+ * margin={["spacing.3", "spacing.1", "spacing.0", "10px"]}
1072
+ * ```
1073
+ *
1074
+ * ---
1075
+ * #### Spacing to Pixel values
1076
+ *
1077
+ * - `spacing.0` - 0px
1078
+ * - `spacing.1` - 2px
1079
+ * - `spacing.2` - 4px
1080
+ * - `spacing.3` - 8px
1081
+ * - `spacing.4` - 12px
1082
+ * - `spacing.5` - 16px
1083
+ * - `spacing.6` - 20px
1084
+ * - `spacing.7` - 24px
1085
+ * - `spacing.8` - 32px
1086
+ * - `spacing.9` - 40px
1087
+ * - `spacing.10` - 48px
1088
+ * - `spacing.11` - 56px
1089
+ *
1090
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1091
+ *
1092
+ */
1093
+ margin: SpacingValueType$1 | ArrayOfMaxLength4$1<SpacingValueType$1>;
1094
+ /**
1095
+ * ### Margin Horizontal
1096
+ *
1097
+ * #### Usage
1098
+ *
1099
+ * ```jsx
1100
+ * marginX="spacing.3"
1101
+ * marginX="20px"
1102
+ * ```
1103
+ *
1104
+ * ---
1105
+ * #### Spacing to Pixel values
1106
+ *
1107
+ * - `spacing.0` - 0px
1108
+ * - `spacing.1` - 2px
1109
+ * - `spacing.2` - 4px
1110
+ * - `spacing.3` - 8px
1111
+ * - `spacing.4` - 12px
1112
+ * - `spacing.5` - 16px
1113
+ * - `spacing.6` - 20px
1114
+ * - `spacing.7` - 24px
1115
+ * - `spacing.8` - 32px
1116
+ * - `spacing.9` - 40px
1117
+ * - `spacing.10` - 48px
1118
+ * - `spacing.11` - 56px
1119
+ *
1120
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1121
+ *
1122
+ */
1123
+ marginX: SpacingValueType$1;
1124
+ /**
1125
+ * ### Margin Vertical
1126
+ *
1127
+ * #### Usage
1128
+ *
1129
+ * ```jsx
1130
+ * marginY="spacing.3"
1131
+ * marginY="20px"
1132
+ * ```
1133
+ *
1134
+ * ---
1135
+ * #### Spacing to Pixel values
1136
+ *
1137
+ * - `spacing.0` - 0px
1138
+ * - `spacing.1` - 2px
1139
+ * - `spacing.2` - 4px
1140
+ * - `spacing.3` - 8px
1141
+ * - `spacing.4` - 12px
1142
+ * - `spacing.5` - 16px
1143
+ * - `spacing.6` - 20px
1144
+ * - `spacing.7` - 24px
1145
+ * - `spacing.8` - 32px
1146
+ * - `spacing.9` - 40px
1147
+ * - `spacing.10` - 48px
1148
+ * - `spacing.11` - 56px
1149
+ *
1150
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1151
+ *
1152
+ */
1153
+ marginY: SpacingValueType$1;
1154
+ /**
1155
+ * ### Margin Top
1156
+ *
1157
+ * #### Usage
1158
+ *
1159
+ * ```jsx
1160
+ * marginTop="spacing.3"
1161
+ * marginTop="20px"
1162
+ * ```
1163
+ *
1164
+ * ---
1165
+ * #### Spacing to Pixel values
1166
+ *
1167
+ * - `spacing.0` - 0px
1168
+ * - `spacing.1` - 2px
1169
+ * - `spacing.2` - 4px
1170
+ * - `spacing.3` - 8px
1171
+ * - `spacing.4` - 12px
1172
+ * - `spacing.5` - 16px
1173
+ * - `spacing.6` - 20px
1174
+ * - `spacing.7` - 24px
1175
+ * - `spacing.8` - 32px
1176
+ * - `spacing.9` - 40px
1177
+ * - `spacing.10` - 48px
1178
+ * - `spacing.11` - 56px
1179
+ *
1180
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1181
+ */
1182
+ marginTop: SpacingValueType$1;
1183
+ /**
1184
+ * ### Margin Right
1185
+ *
1186
+ * #### Usage
1187
+ *
1188
+ * ```jsx
1189
+ * marginRight="spacing.3"
1190
+ * marginRight="20px"
1191
+ * ```
1192
+ *
1193
+ * ---
1194
+ * #### Spacing to Pixel values
1195
+ *
1196
+ * - `spacing.0` - 0px
1197
+ * - `spacing.1` - 2px
1198
+ * - `spacing.2` - 4px
1199
+ * - `spacing.3` - 8px
1200
+ * - `spacing.4` - 12px
1201
+ * - `spacing.5` - 16px
1202
+ * - `spacing.6` - 20px
1203
+ * - `spacing.7` - 24px
1204
+ * - `spacing.8` - 32px
1205
+ * - `spacing.9` - 40px
1206
+ * - `spacing.10` - 48px
1207
+ * - `spacing.11` - 56px
1208
+ *
1209
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1210
+ */
1211
+ marginRight: SpacingValueType$1;
1212
+ /**
1213
+ * ### Margin Bottom
1214
+ *
1215
+ * #### Usage
1216
+ *
1217
+ * ```jsx
1218
+ * marginBottom="spacing.3"
1219
+ * marginBottom="20px"
1220
+ * ```
1221
+ *
1222
+ * ---
1223
+ * #### Spacing to Pixel values
1224
+ *
1225
+ * - `spacing.0` - 0px
1226
+ * - `spacing.1` - 2px
1227
+ * - `spacing.2` - 4px
1228
+ * - `spacing.3` - 8px
1229
+ * - `spacing.4` - 12px
1230
+ * - `spacing.5` - 16px
1231
+ * - `spacing.6` - 20px
1232
+ * - `spacing.7` - 24px
1233
+ * - `spacing.8` - 32px
1234
+ * - `spacing.9` - 40px
1235
+ * - `spacing.10` - 48px
1236
+ * - `spacing.11` - 56px
1237
+ *
1238
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1239
+ */
1240
+ marginBottom: SpacingValueType$1;
1241
+ /**
1242
+ * ### Margin Left
1243
+ *
1244
+ * #### Usage
1245
+ *
1246
+ * ```jsx
1247
+ * marginLeft="spacing.3"
1248
+ * marginLeft="20px"
1249
+ * ```
1250
+ *
1251
+ * ---
1252
+ * #### Spacing to Pixel values
1253
+ *
1254
+ * - `spacing.0` - 0px
1255
+ * - `spacing.1` - 2px
1256
+ * - `spacing.2` - 4px
1257
+ * - `spacing.3` - 8px
1258
+ * - `spacing.4` - 12px
1259
+ * - `spacing.5` - 16px
1260
+ * - `spacing.6` - 20px
1261
+ * - `spacing.7` - 24px
1262
+ * - `spacing.8` - 32px
1263
+ * - `spacing.9` - 40px
1264
+ * - `spacing.10` - 48px
1265
+ * - `spacing.11` - 56px
1266
+ *
1267
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1268
+ */
1269
+ marginLeft: SpacingValueType$1;
1270
+ }>;
915
1271
 
916
- type ThemeTokens = {
917
- border: Border;
918
- breakpoints: Breakpoints;
919
- colors: ColorsWithModes;
920
- motion: Motion;
921
- spacing: Spacing;
922
- shadows: Shadows;
923
- typography: TypographyWithPlatforms;
1272
+ type MakeObjectWebOnly$1<T> = {
1273
+ [P in keyof T]: Platform.Select<{ web: T[P]; native: never }>;
924
1274
  };
925
1275
 
926
- type Theme$1 = {
927
- border: Border;
928
- breakpoints: Breakpoints;
929
- colors: Colors;
930
- spacing: Spacing;
931
- motion: Motion;
932
- shadows: Omit<Shadows, 'color'> & {
933
- color: {
934
- level: Record<ShadowLevels, string>;
935
- };
936
- };
937
- typography: Typography;
938
- };
1276
+ type FlexboxProps$1 = MakeObjectResponsive$1<
1277
+ {
1278
+ /**
1279
+ * This uses the native gap property which might not work on older browsers.
1280
+ * If you want to support older browsers, you might want to use `margin` instead.
1281
+ *
1282
+ * @see https://caniuse.com/?search=gap
1283
+ */
1284
+ gap: SpacingValueType$1;
1285
+ /**
1286
+ * This uses the native row-gap property which might not work on older browsers.
1287
+ * If you want to support older browsers, you might want to use `margin` instead.
1288
+ *
1289
+ * @see https://caniuse.com/?search=row-gap
1290
+ */
1291
+ rowGap: SpacingValueType$1;
1292
+ /**
1293
+ * This uses the native column-gap property which might not work on older browsers.
1294
+ * If you want to support older browsers, you might want to use `margin` instead.
1295
+ *
1296
+ * @see https://caniuse.com/?search=column-gap
1297
+ */
1298
+ columnGap: SpacingValueType$1;
1299
+ } & Pick<
1300
+ CSSObject,
1301
+ | 'flex'
1302
+ | 'flexWrap'
1303
+ | 'flexDirection'
1304
+ | 'flexGrow'
1305
+ | 'flexShrink'
1306
+ | 'flexBasis'
1307
+ | 'alignItems'
1308
+ | 'alignContent'
1309
+ | 'alignSelf'
1310
+ | 'justifyItems'
1311
+ | 'justifyContent'
1312
+ | 'justifySelf'
1313
+ | 'placeSelf'
1314
+ | 'order'
1315
+ >
1316
+ >;
1317
+
1318
+ type PositionProps$1 = MakeObjectResponsive$1<
1319
+ {
1320
+ top: SpacingValueType$1;
1321
+ right: SpacingValueType$1;
1322
+ bottom: SpacingValueType$1;
1323
+ left: SpacingValueType$1;
1324
+ } & Pick<CSSObject, 'position' | 'zIndex'>
1325
+ >;
1326
+
1327
+ type GridProps$1 = MakeObjectWebOnly$1<
1328
+ MakeObjectResponsive$1<
1329
+ Pick<
1330
+ CSSObject,
1331
+ | 'grid'
1332
+ | 'gridColumn'
1333
+ | 'gridRow'
1334
+ | 'gridRowStart'
1335
+ | 'gridRowEnd'
1336
+ | 'gridColumnStart'
1337
+ | 'gridColumnEnd'
1338
+ | 'gridArea'
1339
+ | 'gridAutoFlow'
1340
+ | 'gridAutoRows'
1341
+ | 'gridAutoColumns'
1342
+ | 'gridTemplate'
1343
+ | 'gridTemplateAreas'
1344
+ | 'gridTemplateColumns'
1345
+ | 'gridTemplateRows'
1346
+ >
1347
+ >
1348
+ >;
1349
+
1350
+ type StyledPropsBlade = Partial<
1351
+ MarginProps$1 &
1352
+ Pick<FlexboxProps$1, 'alignSelf' | 'justifySelf' | 'placeSelf' | 'order'> &
1353
+ PositionProps$1 &
1354
+ Pick<
1355
+ GridProps$1,
1356
+ | 'gridColumn'
1357
+ | 'gridRow'
1358
+ | 'gridRowStart'
1359
+ | 'gridRowEnd'
1360
+ | 'gridColumnStart'
1361
+ | 'gridColumnEnd'
1362
+ | 'gridArea'
1363
+ >
1364
+ >;
939
1365
 
940
1366
  type FeedbackIconColors$1 = `feedback.icon.${DotNotationColorStringToken<
941
1367
  Theme$1['colors']['feedback']['icon']
@@ -975,7 +1401,7 @@ type IconProps$1 = {
975
1401
  | BadgeIconColors$1
976
1402
  | 'currentColor'; // currentColor is useful for letting the SVG inherit color property from its container
977
1403
  size: IconSize$1;
978
- };
1404
+ } & StyledPropsBlade;
979
1405
  type IconComponent$1 = React.ComponentType<IconProps$1>;
980
1406
 
981
1407
  declare type ActionListItemProps = {
@@ -1019,7 +1445,7 @@ declare type ActionListItemProps = {
1019
1445
  * @private
1020
1446
  */
1021
1447
  _index?: number;
1022
- };
1448
+ } & TestID$1;
1023
1449
  declare const ActionListSectionDivider: () => JSX.Element;
1024
1450
  declare type ActionListSectionProps = {
1025
1451
  title: string;
@@ -1032,7 +1458,7 @@ declare type ActionListSectionProps = {
1032
1458
  * @private
1033
1459
  */
1034
1460
  _hideDivider?: boolean;
1035
- };
1461
+ } & TestID$1;
1036
1462
  declare const ActionListSection: WithComponentId<ActionListSectionProps>;
1037
1463
  declare const ActionListItemIcon: WithComponentId<{
1038
1464
  icon: IconComponent$1;
@@ -1068,7 +1494,7 @@ declare type ActionListHeaderProps = {
1068
1494
  * Valid children - `ActionListHeaderIcon`
1069
1495
  */
1070
1496
  leading?: React__default.ReactNode;
1071
- };
1497
+ } & TestID$1;
1072
1498
  /**
1073
1499
  * ### ActionListHeader
1074
1500
  *
@@ -1107,7 +1533,7 @@ declare type ActionListFooterProps = {
1107
1533
  * Anything can be passed here but maybe don't? Should ideally have Button or Tick Icon Buttons.
1108
1534
  */
1109
1535
  trailing?: React__default.ReactNode;
1110
- };
1536
+ } & TestID$1;
1111
1537
  /**
1112
1538
  * ### ActionListFooter
1113
1539
  *
@@ -1199,104 +1625,677 @@ declare type AlertProps = {
1199
1625
  * Makes the Alert span the entire container width, instead of the default max width of `584px`.
1200
1626
  * This also makes the alert borderless, useful for creating full bleed layouts.
1201
1627
  *
1202
- * @default false
1628
+ * @default false
1629
+ */
1630
+ isFullWidth?: boolean;
1631
+ /**
1632
+ * Sets the color tone
1633
+ *
1634
+ * @default neutral
1635
+ */
1636
+ intent?: Feedback;
1637
+ /**
1638
+ * Renders a primary action button and a secondary action link button
1639
+ */
1640
+ actions?: {
1641
+ /**
1642
+ * Renders a button (should **always** be present if `secondary` action is being used)
1643
+ */
1644
+ primary: PrimaryAction;
1645
+ /**
1646
+ * Renders a Link button
1647
+ */
1648
+ secondary?: SecondaryAction;
1649
+ };
1650
+ } & TestID$1 & StyledPropsBlade;
1651
+ declare const Alert: ({ description, title, isDismissible, onDismiss, contrast, isFullWidth, intent, actions, testID, ...styledProps }: AlertProps) => ReactElement | null;
1652
+
1653
+ declare type BadgeProps = {
1654
+ /**
1655
+ * Sets the label for the badge.
1656
+ *
1657
+ */
1658
+ children: StringChildrenType;
1659
+ /**
1660
+ * Sets the variant of the badge.
1661
+ *
1662
+ * @default 'neutral'
1663
+ */
1664
+ variant?: Feedback | 'blue';
1665
+ /**
1666
+ * Sets the contrast of the badge.
1667
+ *
1668
+ * @default 'low'
1669
+ */
1670
+ contrast?: 'low' | 'high';
1671
+ /**
1672
+ * Sets the size of the badge.
1673
+ *
1674
+ * @default 'medium'
1675
+ */
1676
+ size?: 'small' | 'medium' | 'large';
1677
+ /**
1678
+ * Icon to be displayed in the badge.
1679
+ * Accepts a component of type `IconComponent` from Blade.
1680
+ *
1681
+ */
1682
+ icon?: IconComponent$1;
1683
+ /**
1684
+ * Sets the fontWeight of the label.
1685
+ *
1686
+ * @default 'regular'
1687
+ */
1688
+ fontWeight?: 'regular' | 'bold';
1689
+ } & TestID$1 & StyledPropsBlade;
1690
+ declare const Badge: ({ children, contrast, fontWeight, icon, size, variant, testID, ...styledProps }: BadgeProps) => ReactElement;
1691
+
1692
+ declare type BladeProviderProps = {
1693
+ themeTokens: ThemeTokens;
1694
+ colorScheme?: ColorSchemeNamesInput;
1695
+ children: ReactNode;
1696
+ };
1697
+ declare const BladeProvider: ({ themeTokens, colorScheme, children, }: BladeProviderProps) => ReactElement;
1698
+
1699
+ declare type UseColorScheme = {
1700
+ colorScheme: ColorSchemeNames;
1701
+ setColorScheme: (colorScheme: ColorSchemeNamesInput) => void;
1702
+ };
1703
+
1704
+ declare type TypographyPlatforms = 'onDesktop' | 'onMobile';
1705
+
1706
+ declare type ThemeContext = UseColorScheme & {
1707
+ theme: Theme;
1708
+ platform: TypographyPlatforms;
1709
+ };
1710
+ declare const ThemeContext: React$1.Context<ThemeContext>;
1711
+ declare const useTheme: () => ThemeContext;
1712
+
1713
+ declare type Theme = {
1714
+ border: Border;
1715
+ breakpoints: Breakpoints;
1716
+ colors: Colors;
1717
+ spacing: Spacing;
1718
+ motion: Motion;
1719
+ shadows: Omit<Shadows, 'color'> & {
1720
+ color: {
1721
+ level: Record<ShadowLevels, string>;
1722
+ };
1723
+ };
1724
+ typography: Typography;
1725
+ };
1726
+
1727
+ /**
1728
+ * Returns the value or the responsive object with that value
1729
+ *
1730
+ * ## Usage
1731
+ *
1732
+ * Example if you pass string argument, return type will be string or responsive object with string value
1733
+ *
1734
+ * `MakeValueResponsive<string>`
1735
+ * ```ts
1736
+ * string |
1737
+ * {
1738
+ * base?: string;
1739
+ * xs?: string;
1740
+ * s?: string;
1741
+ * // ... other breakpoints
1742
+ * }
1743
+ * ```
1744
+ *
1745
+ */
1746
+ declare type MakeValueResponsive<T> = T | {
1747
+ [P in keyof Breakpoints]?: T;
1748
+ };
1749
+ /**
1750
+ * Turns all the values in object into responsive object.
1751
+ *
1752
+ * ```ts
1753
+ * MakeObjectResponsive<{ hello: string}>
1754
+ *
1755
+ * // Outputs:
1756
+ * {
1757
+ * hello: string | {
1758
+ * base?: string;
1759
+ * xs?: string;
1760
+ * s?: string;
1761
+ * // ... other breakpoints
1762
+ * }
1763
+ * }
1764
+ * ```
1765
+ */
1766
+ declare type MakeObjectResponsive<T> = {
1767
+ [P in keyof T]: MakeValueResponsive<T[P]>;
1768
+ };
1769
+
1770
+ declare type ArrayOfMaxLength4<T> = readonly [T?, T?, T?, T?];
1771
+ declare type SpaceUnits = Platform.Select<{
1772
+ web: 'px' | '%' | 'fr' | 'rem' | 'em' | 'vh' | 'vw';
1773
+ native: 'px' | '%';
1774
+ }>;
1775
+ declare type SpacingValueType = DotNotationSpacingStringToken | `${string}${SpaceUnits}` | 'auto';
1776
+ /**
1777
+ * @IMPORTANT
1778
+ *
1779
+ * 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.
1780
+ *
1781
+ * 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
1782
+ *
1783
+ * Checkout example of find and replace query-
1784
+ * {@link https://user-images.githubusercontent.com/30949385/221802507-40c7adbc-484a-47b3-9035-ae1e97080b51.png}
1785
+ *
1786
+ */
1787
+ declare type PaddingProps = MakeObjectResponsive<{
1788
+ /**
1789
+ * ### Padding Shorthand
1790
+ *
1791
+ * #### Usage
1792
+ *
1793
+ * ```jsx
1794
+ * padding="spacing.3"
1795
+ * padding="20px"
1796
+ * padding={["spacing.3", "spacing.1", "spacing.0", "10px"]}
1797
+ * ```
1798
+ *
1799
+ * ---
1800
+ * #### Spacing to Pixel values
1801
+ *
1802
+ * - `spacing.0` - 0px
1803
+ * - `spacing.1` - 2px
1804
+ * - `spacing.2` - 4px
1805
+ * - `spacing.3` - 8px
1806
+ * - `spacing.4` - 12px
1807
+ * - `spacing.5` - 16px
1808
+ * - `spacing.6` - 20px
1809
+ * - `spacing.7` - 24px
1810
+ * - `spacing.8` - 32px
1811
+ * - `spacing.9` - 40px
1812
+ * - `spacing.10` - 48px
1813
+ * - `spacing.11` - 56px
1814
+ *
1815
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1816
+ *
1817
+ */
1818
+ padding: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
1819
+ /**
1820
+ * ### Padding Horizontal
1821
+ *
1822
+ * #### Usage
1823
+ *
1824
+ * ```jsx
1825
+ * paddingX="spacing.3"
1826
+ * paddingX="20px"
1827
+ * ```
1828
+ *
1829
+ * ---
1830
+ * #### Spacing to Pixel values
1831
+ *
1832
+ * - `spacing.0` - 0px
1833
+ * - `spacing.1` - 2px
1834
+ * - `spacing.2` - 4px
1835
+ * - `spacing.3` - 8px
1836
+ * - `spacing.4` - 12px
1837
+ * - `spacing.5` - 16px
1838
+ * - `spacing.6` - 20px
1839
+ * - `spacing.7` - 24px
1840
+ * - `spacing.8` - 32px
1841
+ * - `spacing.9` - 40px
1842
+ * - `spacing.10` - 48px
1843
+ * - `spacing.11` - 56px
1844
+ *
1845
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1846
+ *
1847
+ */
1848
+ paddingX: SpacingValueType;
1849
+ /**
1850
+ * ### Padding Vertical
1851
+ *
1852
+ * #### Usage
1853
+ *
1854
+ * ```jsx
1855
+ * paddingY="spacing.3"
1856
+ * paddingY="20px"
1857
+ * ```
1858
+ *
1859
+ * ---
1860
+ * #### Spacing to Pixel values
1861
+ *
1862
+ * - `spacing.0` - 0px
1863
+ * - `spacing.1` - 2px
1864
+ * - `spacing.2` - 4px
1865
+ * - `spacing.3` - 8px
1866
+ * - `spacing.4` - 12px
1867
+ * - `spacing.5` - 16px
1868
+ * - `spacing.6` - 20px
1869
+ * - `spacing.7` - 24px
1870
+ * - `spacing.8` - 32px
1871
+ * - `spacing.9` - 40px
1872
+ * - `spacing.10` - 48px
1873
+ * - `spacing.11` - 56px
1874
+ *
1875
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1876
+ *
1877
+ */
1878
+ paddingY: SpacingValueType;
1879
+ /**
1880
+ * ### Padding Top
1881
+ *
1882
+ * #### Usage
1883
+ *
1884
+ * ```jsx
1885
+ * paddingTop="spacing.3"
1886
+ * paddingTop="20px"
1887
+ * ```
1888
+ *
1889
+ * ---
1890
+ * #### Spacing to Pixel values
1891
+ *
1892
+ * - `spacing.0` - 0px
1893
+ * - `spacing.1` - 2px
1894
+ * - `spacing.2` - 4px
1895
+ * - `spacing.3` - 8px
1896
+ * - `spacing.4` - 12px
1897
+ * - `spacing.5` - 16px
1898
+ * - `spacing.6` - 20px
1899
+ * - `spacing.7` - 24px
1900
+ * - `spacing.8` - 32px
1901
+ * - `spacing.9` - 40px
1902
+ * - `spacing.10` - 48px
1903
+ * - `spacing.11` - 56px
1904
+ *
1905
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1906
+ */
1907
+ paddingTop: SpacingValueType;
1908
+ /**
1909
+ * ### Padding Right
1910
+ *
1911
+ * #### Usage
1912
+ *
1913
+ * ```jsx
1914
+ * paddingRight="spacing.3"
1915
+ * paddingRight="20px"
1916
+ * ```
1917
+ *
1918
+ * ---
1919
+ * #### Spacing to Pixel values
1920
+ *
1921
+ * - `spacing.0` - 0px
1922
+ * - `spacing.1` - 2px
1923
+ * - `spacing.2` - 4px
1924
+ * - `spacing.3` - 8px
1925
+ * - `spacing.4` - 12px
1926
+ * - `spacing.5` - 16px
1927
+ * - `spacing.6` - 20px
1928
+ * - `spacing.7` - 24px
1929
+ * - `spacing.8` - 32px
1930
+ * - `spacing.9` - 40px
1931
+ * - `spacing.10` - 48px
1932
+ * - `spacing.11` - 56px
1933
+ *
1934
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1935
+ */
1936
+ paddingRight: SpacingValueType;
1937
+ /**
1938
+ * ### Padding Bottom
1939
+ *
1940
+ * #### Usage
1941
+ *
1942
+ * ```jsx
1943
+ * paddingBottom="spacing.3"
1944
+ * paddingBottom="20px"
1945
+ * ```
1946
+ *
1947
+ * ---
1948
+ * #### Spacing to Pixel values
1949
+ *
1950
+ * - `spacing.0` - 0px
1951
+ * - `spacing.1` - 2px
1952
+ * - `spacing.2` - 4px
1953
+ * - `spacing.3` - 8px
1954
+ * - `spacing.4` - 12px
1955
+ * - `spacing.5` - 16px
1956
+ * - `spacing.6` - 20px
1957
+ * - `spacing.7` - 24px
1958
+ * - `spacing.8` - 32px
1959
+ * - `spacing.9` - 40px
1960
+ * - `spacing.10` - 48px
1961
+ * - `spacing.11` - 56px
1962
+ *
1963
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1964
+ */
1965
+ paddingBottom: SpacingValueType;
1966
+ /**
1967
+ * ### Padding Left
1968
+ *
1969
+ * #### Usage
1970
+ *
1971
+ * ```jsx
1972
+ * paddingLeft="spacing.3"
1973
+ * paddingLeft="20px"
1974
+ * ```
1975
+ *
1976
+ * ---
1977
+ * #### Spacing to Pixel values
1978
+ *
1979
+ * - `spacing.0` - 0px
1980
+ * - `spacing.1` - 2px
1981
+ * - `spacing.2` - 4px
1982
+ * - `spacing.3` - 8px
1983
+ * - `spacing.4` - 12px
1984
+ * - `spacing.5` - 16px
1985
+ * - `spacing.6` - 20px
1986
+ * - `spacing.7` - 24px
1987
+ * - `spacing.8` - 32px
1988
+ * - `spacing.9` - 40px
1989
+ * - `spacing.10` - 48px
1990
+ * - `spacing.11` - 56px
1991
+ *
1992
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1993
+ */
1994
+ paddingLeft: SpacingValueType;
1995
+ }>;
1996
+ declare type MarginProps = MakeObjectResponsive<{
1997
+ /**
1998
+ * ### Margin Shorthand
1999
+ *
2000
+ * #### Usage
2001
+ *
2002
+ * ```jsx
2003
+ * margin="spacing.3"
2004
+ * margin="20px"
2005
+ * margin={["spacing.3", "spacing.1", "spacing.0", "10px"]}
2006
+ * ```
2007
+ *
2008
+ * ---
2009
+ * #### Spacing to Pixel values
2010
+ *
2011
+ * - `spacing.0` - 0px
2012
+ * - `spacing.1` - 2px
2013
+ * - `spacing.2` - 4px
2014
+ * - `spacing.3` - 8px
2015
+ * - `spacing.4` - 12px
2016
+ * - `spacing.5` - 16px
2017
+ * - `spacing.6` - 20px
2018
+ * - `spacing.7` - 24px
2019
+ * - `spacing.8` - 32px
2020
+ * - `spacing.9` - 40px
2021
+ * - `spacing.10` - 48px
2022
+ * - `spacing.11` - 56px
2023
+ *
2024
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
2025
+ *
2026
+ */
2027
+ margin: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
2028
+ /**
2029
+ * ### Margin Horizontal
2030
+ *
2031
+ * #### Usage
2032
+ *
2033
+ * ```jsx
2034
+ * marginX="spacing.3"
2035
+ * marginX="20px"
2036
+ * ```
2037
+ *
2038
+ * ---
2039
+ * #### Spacing to Pixel values
2040
+ *
2041
+ * - `spacing.0` - 0px
2042
+ * - `spacing.1` - 2px
2043
+ * - `spacing.2` - 4px
2044
+ * - `spacing.3` - 8px
2045
+ * - `spacing.4` - 12px
2046
+ * - `spacing.5` - 16px
2047
+ * - `spacing.6` - 20px
2048
+ * - `spacing.7` - 24px
2049
+ * - `spacing.8` - 32px
2050
+ * - `spacing.9` - 40px
2051
+ * - `spacing.10` - 48px
2052
+ * - `spacing.11` - 56px
2053
+ *
2054
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
2055
+ *
1203
2056
  */
1204
- isFullWidth?: boolean;
2057
+ marginX: SpacingValueType;
1205
2058
  /**
1206
- * Sets the color tone
2059
+ * ### Margin Vertical
2060
+ *
2061
+ * #### Usage
2062
+ *
2063
+ * ```jsx
2064
+ * marginY="spacing.3"
2065
+ * marginY="20px"
2066
+ * ```
2067
+ *
2068
+ * ---
2069
+ * #### Spacing to Pixel values
2070
+ *
2071
+ * - `spacing.0` - 0px
2072
+ * - `spacing.1` - 2px
2073
+ * - `spacing.2` - 4px
2074
+ * - `spacing.3` - 8px
2075
+ * - `spacing.4` - 12px
2076
+ * - `spacing.5` - 16px
2077
+ * - `spacing.6` - 20px
2078
+ * - `spacing.7` - 24px
2079
+ * - `spacing.8` - 32px
2080
+ * - `spacing.9` - 40px
2081
+ * - `spacing.10` - 48px
2082
+ * - `spacing.11` - 56px
2083
+ *
2084
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1207
2085
  *
1208
- * @default neutral
1209
2086
  */
1210
- intent?: Feedback;
2087
+ marginY: SpacingValueType;
1211
2088
  /**
1212
- * Renders a primary action button and a secondary action link button
2089
+ * ### Margin Top
2090
+ *
2091
+ * #### Usage
2092
+ *
2093
+ * ```jsx
2094
+ * marginTop="spacing.3"
2095
+ * marginTop="20px"
2096
+ * ```
2097
+ *
2098
+ * ---
2099
+ * #### Spacing to Pixel values
2100
+ *
2101
+ * - `spacing.0` - 0px
2102
+ * - `spacing.1` - 2px
2103
+ * - `spacing.2` - 4px
2104
+ * - `spacing.3` - 8px
2105
+ * - `spacing.4` - 12px
2106
+ * - `spacing.5` - 16px
2107
+ * - `spacing.6` - 20px
2108
+ * - `spacing.7` - 24px
2109
+ * - `spacing.8` - 32px
2110
+ * - `spacing.9` - 40px
2111
+ * - `spacing.10` - 48px
2112
+ * - `spacing.11` - 56px
2113
+ *
2114
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1213
2115
  */
1214
- actions?: {
1215
- /**
1216
- * Renders a button (should **always** be present if `secondary` action is being used)
1217
- */
1218
- primary: PrimaryAction;
1219
- /**
1220
- * Renders a Link button
1221
- */
1222
- secondary?: SecondaryAction;
1223
- };
1224
- };
1225
- declare const Alert: ({ description, title, isDismissible, onDismiss, contrast, isFullWidth, intent, actions, }: AlertProps) => ReactElement | null;
1226
-
1227
- declare type BadgeProps = {
2116
+ marginTop: SpacingValueType;
1228
2117
  /**
1229
- * Sets the label for the badge.
2118
+ * ### Margin Right
2119
+ *
2120
+ * #### Usage
2121
+ *
2122
+ * ```jsx
2123
+ * marginRight="spacing.3"
2124
+ * marginRight="20px"
2125
+ * ```
1230
2126
  *
2127
+ * ---
2128
+ * #### Spacing to Pixel values
2129
+ *
2130
+ * - `spacing.0` - 0px
2131
+ * - `spacing.1` - 2px
2132
+ * - `spacing.2` - 4px
2133
+ * - `spacing.3` - 8px
2134
+ * - `spacing.4` - 12px
2135
+ * - `spacing.5` - 16px
2136
+ * - `spacing.6` - 20px
2137
+ * - `spacing.7` - 24px
2138
+ * - `spacing.8` - 32px
2139
+ * - `spacing.9` - 40px
2140
+ * - `spacing.10` - 48px
2141
+ * - `spacing.11` - 56px
2142
+ *
2143
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1231
2144
  */
1232
- children: StringChildrenType;
2145
+ marginRight: SpacingValueType;
1233
2146
  /**
1234
- * Sets the variant of the badge.
2147
+ * ### Margin Bottom
1235
2148
  *
1236
- * @default 'neutral'
2149
+ * #### Usage
2150
+ *
2151
+ * ```jsx
2152
+ * marginBottom="spacing.3"
2153
+ * marginBottom="20px"
2154
+ * ```
2155
+ *
2156
+ * ---
2157
+ * #### Spacing to Pixel values
2158
+ *
2159
+ * - `spacing.0` - 0px
2160
+ * - `spacing.1` - 2px
2161
+ * - `spacing.2` - 4px
2162
+ * - `spacing.3` - 8px
2163
+ * - `spacing.4` - 12px
2164
+ * - `spacing.5` - 16px
2165
+ * - `spacing.6` - 20px
2166
+ * - `spacing.7` - 24px
2167
+ * - `spacing.8` - 32px
2168
+ * - `spacing.9` - 40px
2169
+ * - `spacing.10` - 48px
2170
+ * - `spacing.11` - 56px
2171
+ *
2172
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1237
2173
  */
1238
- variant?: Feedback | 'blue';
2174
+ marginBottom: SpacingValueType;
1239
2175
  /**
1240
- * Sets the contrast of the badge.
2176
+ * ### Margin Left
1241
2177
  *
1242
- * @default 'low'
2178
+ * #### Usage
2179
+ *
2180
+ * ```jsx
2181
+ * marginLeft="spacing.3"
2182
+ * marginLeft="20px"
2183
+ * ```
2184
+ *
2185
+ * ---
2186
+ * #### Spacing to Pixel values
2187
+ *
2188
+ * - `spacing.0` - 0px
2189
+ * - `spacing.1` - 2px
2190
+ * - `spacing.2` - 4px
2191
+ * - `spacing.3` - 8px
2192
+ * - `spacing.4` - 12px
2193
+ * - `spacing.5` - 16px
2194
+ * - `spacing.6` - 20px
2195
+ * - `spacing.7` - 24px
2196
+ * - `spacing.8` - 32px
2197
+ * - `spacing.9` - 40px
2198
+ * - `spacing.10` - 48px
2199
+ * - `spacing.11` - 56px
2200
+ *
2201
+ * {@linkcode https://blade.razorpay.com/?path=/story/tokens-spacing--page&globals=measureEnabled:false Spacing Token Ref}
1243
2202
  */
1244
- contrast?: 'low' | 'high';
1245
- /**
1246
- * Sets the size of the badge.
2203
+ marginLeft: SpacingValueType;
2204
+ }>;
2205
+
2206
+ declare type MakeObjectWebOnly<T> = {
2207
+ [P in keyof T]: Platform.Select<{
2208
+ web: T[P];
2209
+ native: never;
2210
+ }>;
2211
+ };
2212
+ declare type LayoutProps = MakeObjectResponsive<{
2213
+ height: SpacingValueType;
2214
+ minHeight: SpacingValueType;
2215
+ maxHeight: SpacingValueType;
2216
+ width: SpacingValueType;
2217
+ minWidth: SpacingValueType;
2218
+ maxWidth: SpacingValueType;
2219
+ } & Pick<CSSObject, 'display' | 'overflow' | 'overflowX' | 'overflowY'>>;
2220
+ declare type FlexboxProps = MakeObjectResponsive<{
2221
+ /**
2222
+ * This uses the native gap property which might not work on older browsers.
2223
+ * If you want to support older browsers, you might want to use `margin` instead.
1247
2224
  *
1248
- * @default 'medium'
2225
+ * @see https://caniuse.com/?search=gap
1249
2226
  */
1250
- size?: 'small' | 'medium' | 'large';
2227
+ gap: SpacingValueType;
1251
2228
  /**
1252
- * Icon to be displayed in the badge.
1253
- * Accepts a component of type `IconComponent` from Blade.
2229
+ * This uses the native row-gap property which might not work on older browsers.
2230
+ * If you want to support older browsers, you might want to use `margin` instead.
1254
2231
  *
2232
+ * @see https://caniuse.com/?search=row-gap
1255
2233
  */
1256
- icon?: IconComponent$1;
2234
+ rowGap: SpacingValueType;
1257
2235
  /**
1258
- * Sets the fontWeight of the label.
2236
+ * This uses the native column-gap property which might not work on older browsers.
2237
+ * If you want to support older browsers, you might want to use `margin` instead.
1259
2238
  *
1260
- * @default 'regular'
1261
- */
1262
- fontWeight?: 'regular' | 'bold';
1263
- };
1264
- declare const Badge: ({ children, contrast, fontWeight, icon, size, variant, }: BadgeProps) => ReactElement;
1265
-
1266
- declare type BladeProviderProps = {
1267
- themeTokens: ThemeTokens;
1268
- colorScheme?: ColorSchemeNamesInput;
1269
- children: ReactNode;
1270
- };
1271
- declare const BladeProvider: ({ themeTokens, colorScheme, children, }: BladeProviderProps) => ReactElement;
1272
-
1273
- declare type UseColorScheme = {
1274
- colorScheme: ColorSchemeNames;
1275
- setColorScheme: (colorScheme: ColorSchemeNamesInput) => void;
2239
+ * @see https://caniuse.com/?search=column-gap
2240
+ */
2241
+ columnGap: SpacingValueType;
2242
+ } & Pick<CSSObject, 'flex' | 'flexWrap' | 'flexDirection' | 'flexGrow' | 'flexShrink' | 'flexBasis' | 'alignItems' | 'alignContent' | 'alignSelf' | 'justifyItems' | 'justifyContent' | 'justifySelf' | 'placeSelf' | 'order'>>;
2243
+ declare type PositionProps = MakeObjectResponsive<{
2244
+ top: SpacingValueType;
2245
+ right: SpacingValueType;
2246
+ bottom: SpacingValueType;
2247
+ left: SpacingValueType;
2248
+ } & Pick<CSSObject, 'position' | 'zIndex'>>;
2249
+ declare type GridProps = MakeObjectWebOnly<MakeObjectResponsive<Pick<CSSObject, 'grid' | 'gridColumn' | 'gridRow' | 'gridRowStart' | 'gridRowEnd' | 'gridColumnStart' | 'gridColumnEnd' | 'gridArea' | 'gridAutoFlow' | 'gridAutoRows' | 'gridAutoColumns' | 'gridTemplate' | 'gridTemplateAreas' | 'gridTemplateColumns' | 'gridTemplateRows'>>>;
2250
+ declare type ColorObjects = 'feedback' | 'surface' | 'action';
2251
+ declare type BackgroundColorString<T extends ColorObjects> = `${T}.background.${DotNotationColorStringToken<Theme$1['colors'][T]['background']>}`;
2252
+ declare const validBoxAsValues: readonly ["div", "section", "footer", "header", "main", "aside", "nav", "span"];
2253
+ declare type BoxAsType = typeof validBoxAsValues[number];
2254
+ declare type BoxVisualProps = MakeObjectResponsive<{
2255
+ backgroundColor: BackgroundColorString<'surface'>;
2256
+ }> & {
2257
+ as: BoxAsType;
1276
2258
  };
2259
+ declare type BoxProps = Partial<PaddingProps & MarginProps & LayoutProps & FlexboxProps & PositionProps & GridProps & BoxVisualProps & {
2260
+ children?: React.ReactNode | React.ReactNode[];
2261
+ } & TestID$1>;
1277
2262
 
1278
- declare type TypographyPlatforms = 'onDesktop' | 'onMobile';
1279
-
1280
- declare type ThemeContext = UseColorScheme & {
1281
- theme: Theme;
1282
- platform: TypographyPlatforms;
1283
- };
1284
- declare const ThemeContext: React$1.Context<ThemeContext>;
1285
- declare const useTheme: () => ThemeContext;
2263
+ /**
2264
+ * ## Box
2265
+ *
2266
+ * Box is the basic Layout component.
2267
+ *
2268
+ *
2269
+ * Box components supports most spacing CSS properties like `display`, `padding*`, `flex*`, `height`, `width`, etc.
2270
+ *
2271
+ * Check out {@linkcode BoxProps BoxPropsType} for complete list of props and [Layout RFC](https://github.com/razorpay/blade/blob/master/rfcs/2023-01-06-layout.md) for more details on API decision.
2272
+ *
2273
+ * ----
2274
+ *
2275
+ * ### Usage
2276
+ *
2277
+ * ```jsx
2278
+ * <Box display="flex">
2279
+ * ```
1286
2280
 
1287
- declare type Theme = {
1288
- border: Border;
1289
- breakpoints: Breakpoints;
1290
- colors: Colors;
1291
- spacing: Spacing;
1292
- motion: Motion;
1293
- shadows: Omit<Shadows, 'color'> & {
1294
- color: {
1295
- level: Record<ShadowLevels, string>;
1296
- };
1297
- };
1298
- typography: Typography;
1299
- };
2281
+ * #### Responsive Props
2282
+ *
2283
+ * ```jsx
2284
+ * <Box padding={{ base: 'spacing.3', m: 'spacing.10' }} />
2285
+ * ```
2286
+ *
2287
+ * #### Margin and Padding Shorthands
2288
+ *
2289
+ * ```jsx
2290
+ * <Box padding={["spacing.3", "spacing.10"]} />
2291
+ * ```
2292
+ *
2293
+ * ---
2294
+ *
2295
+ * Checkout {@link https://blade.razorpay.com/?path=/docs/components-box Box Documentation}
2296
+ *
2297
+ */
2298
+ declare const Box: (props: BoxProps) => JSX.Element;
1300
2299
 
1301
2300
  declare const ComponentIds: {
1302
2301
  CardHeader: string;
@@ -1333,11 +2332,11 @@ declare type CardProps = {
1333
2332
  * - Figma: https://shorturl.at/fsvwK
1334
2333
  */
1335
2334
  surfaceLevel?: 2 | 3;
1336
- };
1337
- declare const Card: ({ children, surfaceLevel }: CardProps) => React__default.ReactElement;
2335
+ } & TestID$1 & StyledPropsBlade;
2336
+ declare const Card: ({ children, surfaceLevel, testID, ...styledProps }: CardProps) => React__default.ReactElement;
1338
2337
  declare type CardBodyProps = {
1339
2338
  children: React__default.ReactNode;
1340
- };
2339
+ } & TestID$1;
1341
2340
  declare const CardBody: WithComponentId<CardBodyProps>;
1342
2341
 
1343
2342
  declare type LinkCommonProps = {
@@ -1355,7 +2354,7 @@ declare type LinkCommonProps = {
1355
2354
  * @default medium
1356
2355
  */
1357
2356
  size?: 'small' | 'medium';
1358
- };
2357
+ } & TestID$1 & StyledPropsBlade;
1359
2358
  declare type LinkWithoutIconProps = LinkCommonProps & {
1360
2359
  icon?: undefined;
1361
2360
  children: StringChildrenType;
@@ -1380,7 +2379,7 @@ declare type LinkButtonVariantProps = LinkPropsWithOrWithoutIcon & {
1380
2379
  rel?: undefined;
1381
2380
  };
1382
2381
  declare type LinkProps = LinkAnchorVariantProps | LinkButtonVariantProps;
1383
- declare const Link: ({ children, icon, iconPosition, isDisabled, onClick, variant, href, target, rel, accessibilityLabel, size, }: LinkProps) => ReactElement;
2382
+ declare const Link: ({ children, icon, iconPosition, isDisabled, onClick, variant, href, target, rel, accessibilityLabel, size, testID, ...styledProps }: LinkProps) => ReactElement;
1384
2383
 
1385
2384
  type BladeElementRef = Pick<HTMLElement, 'focus' | 'scrollIntoView'> | Pick<View, 'focus'>;
1386
2385
 
@@ -1397,7 +2396,7 @@ declare type ButtonCommonProps = {
1397
2396
  native: (event: GestureResponderEvent) => void;
1398
2397
  web: (event: React__default.MouseEvent<HTMLButtonElement>) => void;
1399
2398
  }>;
1400
- };
2399
+ } & TestID$1 & StyledPropsBlade;
1401
2400
  declare type ButtonWithoutIconProps = ButtonCommonProps & {
1402
2401
  icon?: undefined;
1403
2402
  children: StringChildrenType;
@@ -1447,7 +2446,8 @@ type BaseTextProps$1 = {
1447
2446
  */
1448
2447
  numberOfLines?: number;
1449
2448
  componentName?: 'text' | 'title' | 'heading' | 'code';
1450
- };
2449
+ } & TestID$1 &
2450
+ StyledPropsBlade;
1451
2451
 
1452
2452
  /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */
1453
2453
 
@@ -1462,7 +2462,9 @@ type TextCommonProps$1 = {
1462
2462
  * **For Internal use only**: Sets the color of the Text component
1463
2463
  */
1464
2464
  color?: BaseTextProps$1['color'];
1465
- };
2465
+ textAlign?: BaseTextProps$1['textAlign'];
2466
+ } & TestID$1 &
2467
+ StyledPropsBlade;
1466
2468
 
1467
2469
  type TextVariant$1 = 'body' | 'caption';
1468
2470
 
@@ -1518,7 +2520,8 @@ type CounterProps$1 = {
1518
2520
  * @default 'medium'
1519
2521
  */
1520
2522
  size?: 'small' | 'medium' | 'large';
1521
- };
2523
+ } & TestID$1 &
2524
+ StyledPropsBlade;
1522
2525
 
1523
2526
  declare const CardHeaderIcon: WithComponentId<{
1524
2527
  icon: IconComponent$1;
@@ -1535,7 +2538,7 @@ declare type CardHeaderIconButtonProps = Omit<ButtonProps, 'variant' | 'size' |
1535
2538
  declare const CardHeaderIconButton: WithComponentId<CardHeaderIconButtonProps>;
1536
2539
  declare type CardHeaderProps = {
1537
2540
  children?: React__default.ReactNode;
1538
- };
2541
+ } & TestID$1;
1539
2542
  declare const CardHeader: WithComponentId<CardHeaderProps>;
1540
2543
  declare type CardHeaderLeadingProps = {
1541
2544
  title: string;
@@ -1569,7 +2572,7 @@ declare type CardFooterAction = Pick<ButtonProps, 'type' | 'accessibilityLabel'
1569
2572
  };
1570
2573
  declare type CardFooterProps = {
1571
2574
  children?: React__default.ReactNode;
1572
- };
2575
+ } & TestID$1;
1573
2576
  declare const CardFooter: WithComponentId<CardFooterProps>;
1574
2577
  declare type CardFooterLeadingProps = {
1575
2578
  title?: string;
@@ -1641,8 +2644,8 @@ declare type CounterProps = {
1641
2644
  * @default 'medium'
1642
2645
  */
1643
2646
  size?: 'small' | 'medium' | 'large';
1644
- };
1645
- declare const Counter: ({ value, max, intent, contrast, size, }: CounterProps) => React.ReactElement;
2647
+ } & TestID$1 & StyledPropsBlade;
2648
+ declare const Counter: ({ value, max, intent, contrast, size, testID, ...styledProps }: CounterProps) => React.ReactElement;
1646
2649
 
1647
2650
  declare type OnChange = ({ isChecked, event, value, }: {
1648
2651
  isChecked: boolean;
@@ -1727,8 +2730,119 @@ declare type CheckboxProps = {
1727
2730
  *
1728
2731
  */
1729
2732
  tabIndex?: number;
1730
- };
1731
- declare const Checkbox: React__default.ForwardRefExoticComponent<CheckboxProps & React__default.RefAttributes<BladeElementRef>>;
2733
+ } & TestID$1 & StyledPropsBlade;
2734
+ declare const Checkbox: React__default.ForwardRefExoticComponent<{
2735
+ /**
2736
+ * If `true`, The checkbox will be checked. This also makes the checkbox controlled
2737
+ * Use `onChange` to update its value
2738
+ *
2739
+ * @default false
2740
+ */
2741
+ isChecked?: boolean | undefined;
2742
+ /**
2743
+ * If `true`, the checkbox will be initially checked. This also makes the checkbox uncontrolled
2744
+ *
2745
+ * @default false
2746
+ */
2747
+ defaultChecked?: boolean | undefined;
2748
+ /**
2749
+ * The callback invoked when the checked state of the `Checkbox` changes.
2750
+ */
2751
+ onChange?: OnChange | undefined;
2752
+ /**
2753
+ * Sets the label of the checkbox
2754
+ */
2755
+ children: React__default.ReactNode;
2756
+ /**
2757
+ * Help text for the checkbox
2758
+ */
2759
+ helpText?: string | undefined;
2760
+ /**
2761
+ * Error text for the checkbox
2762
+ *
2763
+ * Renders when `validationState` is set to 'error'
2764
+ */
2765
+ errorText?: string | undefined;
2766
+ /**
2767
+ * If `true`, the checkbox will be indeterminate.
2768
+ * This does not modify the isChecked property.
2769
+ *
2770
+ * @default false
2771
+ */
2772
+ isIndeterminate?: boolean | undefined;
2773
+ /**
2774
+ * The name of the input field in a checkbox
2775
+ * (Useful for form submission).
2776
+ */
2777
+ name?: string | undefined;
2778
+ /**
2779
+ * The value to be used in the checkbox input.
2780
+ * This is the value that will be returned on form submission.
2781
+ */
2782
+ value?: string | undefined;
2783
+ /**
2784
+ * If `true`, the checkbox will be disabled
2785
+ *
2786
+ * @default false
2787
+ */
2788
+ isDisabled?: boolean | undefined;
2789
+ /**
2790
+ * If `true`, the checkbox input is marked as required,
2791
+ * and `required` attribute will be added
2792
+ *
2793
+ * @default false
2794
+ */
2795
+ isRequired?: boolean | undefined;
2796
+ /**
2797
+ * If `error`, the checkbox input is marked as invalid,
2798
+ * and `invalid` attribute will be added
2799
+ */
2800
+ validationState?: "none" | "error" | undefined;
2801
+ /**
2802
+ * Size of the checkbox
2803
+ *
2804
+ * @default "medium"
2805
+ */
2806
+ size?: "small" | "medium" | undefined;
2807
+ /**
2808
+ * Sets the tab-index property on checkbox element
2809
+ *
2810
+ */
2811
+ tabIndex?: number | undefined;
2812
+ } & TestID$1 & Partial<MakeObjectResponsive<{
2813
+ margin: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
2814
+ marginX: SpacingValueType;
2815
+ marginY: SpacingValueType;
2816
+ marginTop: SpacingValueType;
2817
+ marginRight: SpacingValueType;
2818
+ marginBottom: SpacingValueType;
2819
+ marginLeft: SpacingValueType;
2820
+ }> & Pick<MakeObjectResponsive<{
2821
+ gap: SpacingValueType;
2822
+ rowGap: SpacingValueType;
2823
+ columnGap: SpacingValueType;
2824
+ } & Pick<styled_components.CSSObject, "alignContent" | "alignItems" | "alignSelf" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "justifyContent" | "justifyItems" | "justifySelf" | "order" | "flex" | "placeSelf">>, "alignSelf" | "justifySelf" | "order" | "placeSelf"> & MakeObjectResponsive<{
2825
+ top: SpacingValueType;
2826
+ right: SpacingValueType;
2827
+ bottom: SpacingValueType;
2828
+ left: SpacingValueType;
2829
+ } & Pick<styled_components.CSSObject, "position" | "zIndex">> & Pick<{
2830
+ grid?: undefined;
2831
+ gridAutoColumns?: undefined;
2832
+ gridAutoFlow?: undefined;
2833
+ gridAutoRows?: undefined;
2834
+ gridColumnEnd?: undefined;
2835
+ gridColumnStart?: undefined;
2836
+ gridRowEnd?: undefined;
2837
+ gridRowStart?: undefined;
2838
+ gridTemplateAreas?: undefined;
2839
+ gridTemplateColumns?: undefined;
2840
+ gridTemplateRows?: undefined;
2841
+ gridArea?: undefined;
2842
+ gridColumn?: undefined;
2843
+ gridRow?: undefined;
2844
+ gridTemplate?: undefined;
2845
+ }, "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridArea" | "gridColumn" | "gridRow">> & React__default.RefAttributes<BladeElementRef>>;
1732
2846
 
1733
2847
  declare type CheckboxGroupProps = {
1734
2848
  /**
@@ -1803,13 +2917,13 @@ declare type CheckboxGroupProps = {
1803
2917
  * @default "medium"
1804
2918
  */
1805
2919
  size?: 'small' | 'medium';
1806
- };
1807
- declare const CheckboxGroup: ({ children, label, helpText, isDisabled, necessityIndicator, labelPosition, validationState, errorText, name, defaultValue, onChange, value, size, }: CheckboxGroupProps) => React__default.ReactElement;
2920
+ } & TestID$1 & StyledPropsBlade;
2921
+ declare const CheckboxGroup: ({ children, label, helpText, isDisabled, necessityIndicator, labelPosition, validationState, errorText, name, defaultValue, onChange, value, size, testID, ...styledProps }: CheckboxGroupProps) => React__default.ReactElement;
1808
2922
 
1809
2923
  declare type DropdownProps = {
1810
2924
  selectionType?: 'single' | 'multiple';
1811
2925
  children: React__default.ReactNode[];
1812
- };
2926
+ } & StyledPropsBlade;
1813
2927
  /**
1814
2928
  * ### Dropdown component
1815
2929
  *
@@ -1840,7 +2954,7 @@ declare const Dropdown: WithComponentId<DropdownProps>;
1840
2954
 
1841
2955
  declare type DropdownOverlayProps = {
1842
2956
  children: React__default.ReactNode;
1843
- };
2957
+ } & TestID$1;
1844
2958
 
1845
2959
  /**
1846
2960
  * Overlay of dropdown
@@ -1859,9 +2973,9 @@ declare const ArrowUpRightIcon: IconComponent;
1859
2973
 
1860
2974
  declare const ArrowUpIcon: IconComponent;
1861
2975
 
1862
- declare const Attachment: ({ size, color }: IconProps) => ReactElement;
2976
+ declare const Attachment: ({ size, color, ...styledProps }: IconProps) => ReactElement;
1863
2977
 
1864
- declare const CheckIcon: ({ size, color }: IconProps) => ReactElement;
2978
+ declare const CheckIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
1865
2979
 
1866
2980
  declare const ChevronDownIcon: IconComponent;
1867
2981
 
@@ -1877,9 +2991,9 @@ declare const CreditCardIcon: IconComponent;
1877
2991
 
1878
2992
  declare const DollarIcon: IconComponent;
1879
2993
 
1880
- declare const DownloadIcon: ({ size, color }: IconProps) => ReactElement;
2994
+ declare const DownloadIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
1881
2995
 
1882
- declare const EditIcon: ({ size, color }: IconProps) => ReactElement;
2996
+ declare const EditIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
1883
2997
 
1884
2998
  declare const EyeIcon: IconComponent;
1885
2999
 
@@ -1887,19 +3001,19 @@ declare const EyeOffIcon: IconComponent;
1887
3001
 
1888
3002
  declare const FileTextIcon: IconComponent;
1889
3003
 
1890
- declare const HistoryIcon: ({ size, color }: IconProps) => ReactElement;
3004
+ declare const HistoryIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
1891
3005
 
1892
3006
  declare const HomeIcon: IconComponent;
1893
3007
 
1894
- declare const InfoIcon: ({ size, color }: IconProps) => ReactElement;
3008
+ declare const InfoIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
1895
3009
 
1896
3010
  declare const LinkIcon: IconComponent;
1897
3011
 
1898
3012
  declare const LockIcon: IconComponent;
1899
3013
 
1900
- declare const PauseIcon: ({ size, color }: IconProps) => ReactElement;
3014
+ declare const PauseIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
1901
3015
 
1902
- declare const PlusIcon: ({ size, color }: IconProps) => ReactElement;
3016
+ declare const PlusIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
1903
3017
 
1904
3018
  declare const RupeeIcon: IconComponent;
1905
3019
 
@@ -1911,15 +3025,15 @@ declare const SlashIcon: IconComponent;
1911
3025
 
1912
3026
  declare const BankIcon: IconComponent;
1913
3027
 
1914
- declare const TrashIcon: ({ size, color }: IconProps) => ReactElement;
3028
+ declare const TrashIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
1915
3029
 
1916
- declare const AlertTriangleIcon$1: ({ size, color }: IconProps) => ReactElement;
3030
+ declare const AlertTriangleIcon$1: ({ size, color, ...styledProps }: IconProps) => ReactElement;
1917
3031
 
1918
- declare const AlertTriangleIcon: ({ size, color }: IconProps) => ReactElement;
3032
+ declare const AlertTriangleIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
1919
3033
 
1920
- declare const CheckCircleIcon: ({ size, color }: IconProps) => ReactElement;
3034
+ declare const CheckCircleIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
1921
3035
 
1922
- declare const MinusIcon: ({ size, color }: IconProps) => ReactElement;
3036
+ declare const MinusIcon: ({ size, color, ...styledProps }: IconProps) => ReactElement;
1923
3037
 
1924
3038
  declare const TrendingUpIcon: IconComponent;
1925
3039
 
@@ -2404,7 +3518,7 @@ declare type IconProps = {
2404
3518
  */
2405
3519
  color: ActionIconColors | SurfaceActionIconColors | FeedbackIconColors | FeedbackActionIconColors | TextIconColors | BadgeIconColors | 'currentColor';
2406
3520
  size: IconSize;
2407
- };
3521
+ } & StyledPropsBlade;
2408
3522
  declare type IconComponent = React.ComponentType<IconProps>;
2409
3523
 
2410
3524
  declare type FormInputLabelProps = {
@@ -2654,10 +3768,27 @@ declare type BaseInputProps = FormInputLabelProps & FormInputValidationProps & {
2654
3768
  * true if popup is in expanded state
2655
3769
  */
2656
3770
  isPopupExpanded?: boolean;
2657
- };
3771
+ /**
3772
+ * sets the autocapitalize behavior for the input
3773
+ */
3774
+ autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';
3775
+ } & TestID$1 & Platform.Select<{
3776
+ native: {
3777
+ /**
3778
+ * The callback function to be invoked when the value of the input field is submitted.
3779
+ */
3780
+ onSubmit?: FormInputOnEvent;
3781
+ };
3782
+ web: {
3783
+ /**
3784
+ * This is a react-native only prop and has no effect on web.
3785
+ */
3786
+ onSubmit?: undefined;
3787
+ };
3788
+ }> & StyledPropsBlade;
2658
3789
 
2659
3790
  declare type Type = Exclude<BaseInputProps['type'], 'password'>;
2660
- 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'> & {
3791
+ 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'> & {
2661
3792
  /**
2662
3793
  * Decides whether to render a clear icon button
2663
3794
  */
@@ -2680,8 +3811,8 @@ declare type TextInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | '
2680
3811
  * @default text
2681
3812
  */
2682
3813
  type?: Type;
2683
- };
2684
- declare const TextInput: React__default.ForwardRefExoticComponent<Pick<BaseInputProps, "placeholder" | "label" | "value" | "name" | "onBlur" | "onFocus" | "defaultValue" | "prefix" | "onChange" | "isDisabled" | "autoFocus" | "labelPosition" | "validationState" | "helpText" | "errorText" | "necessityIndicator" | "successText" | "isRequired" | "suffix" | "maxCharacters" | "keyboardReturnKeyType" | "autoCompleteSuggestionType"> & {
3814
+ } & StyledPropsBlade;
3815
+ declare const TextInput: React__default.ForwardRefExoticComponent<Pick<BaseInputProps, "testID" | "placeholder" | "label" | "value" | "name" | "onBlur" | "onFocus" | "defaultValue" | "prefix" | "autoCapitalize" | "onChange" | "onSubmit" | "isDisabled" | "autoFocus" | "labelPosition" | "validationState" | "helpText" | "errorText" | "necessityIndicator" | "successText" | "isRequired" | "suffix" | "maxCharacters" | "keyboardReturnKeyType" | "autoCompleteSuggestionType"> & {
2685
3816
  /**
2686
3817
  * Decides whether to render a clear icon button
2687
3818
  */
@@ -2704,7 +3835,40 @@ declare const TextInput: React__default.ForwardRefExoticComponent<Pick<BaseInput
2704
3835
  * @default text
2705
3836
  */
2706
3837
  type?: Type;
2707
- } & React__default.RefAttributes<BladeElementRef>>;
3838
+ } & Partial<MakeObjectResponsive<{
3839
+ margin: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
3840
+ marginX: SpacingValueType;
3841
+ marginY: SpacingValueType;
3842
+ marginTop: SpacingValueType;
3843
+ marginRight: SpacingValueType;
3844
+ marginBottom: SpacingValueType;
3845
+ marginLeft: SpacingValueType;
3846
+ }> & Pick<MakeObjectResponsive<{
3847
+ gap: SpacingValueType;
3848
+ rowGap: SpacingValueType;
3849
+ columnGap: SpacingValueType;
3850
+ } & Pick<styled_components.CSSObject, "alignContent" | "alignItems" | "alignSelf" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "justifyContent" | "justifyItems" | "justifySelf" | "order" | "flex" | "placeSelf">>, "alignSelf" | "justifySelf" | "order" | "placeSelf"> & MakeObjectResponsive<{
3851
+ top: SpacingValueType;
3852
+ right: SpacingValueType;
3853
+ bottom: SpacingValueType;
3854
+ left: SpacingValueType;
3855
+ } & Pick<styled_components.CSSObject, "position" | "zIndex">> & Pick<{
3856
+ grid?: undefined;
3857
+ gridAutoColumns?: undefined;
3858
+ gridAutoFlow?: undefined;
3859
+ gridAutoRows?: undefined;
3860
+ gridColumnEnd?: undefined;
3861
+ gridColumnStart?: undefined;
3862
+ gridRowEnd?: undefined;
3863
+ gridRowStart?: undefined;
3864
+ gridTemplateAreas?: undefined;
3865
+ gridTemplateColumns?: undefined;
3866
+ gridTemplateRows?: undefined;
3867
+ gridArea?: undefined;
3868
+ gridColumn?: undefined;
3869
+ gridRow?: undefined;
3870
+ gridTemplate?: undefined;
3871
+ }, "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridArea" | "gridColumn" | "gridRow">> & React__default.RefAttributes<BladeElementRef>>;
2708
3872
 
2709
3873
  declare type PasswordInputExtraProps = {
2710
3874
  /**
@@ -2736,10 +3900,43 @@ declare type PasswordInputExtraProps = {
2736
3900
  */
2737
3901
  autoCompleteSuggestionType?: Extract<BaseInputProps['autoCompleteSuggestionType'], 'none' | 'password' | 'newPassword'>;
2738
3902
  };
2739
- declare type PasswordInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'maxCharacters' | 'validationState' | 'errorText' | 'successText' | 'helpText' | 'isDisabled' | 'defaultValue' | 'placeholder' | 'isRequired' | 'value' | 'onChange' | 'onBlur' | 'onFocus' | 'name' | 'autoFocus' | 'keyboardReturnKeyType' | 'autoCompleteSuggestionType'> & PasswordInputExtraProps;
2740
- declare const PasswordInput: React__default.ForwardRefExoticComponent<Pick<BaseInputProps, "placeholder" | "label" | "value" | "name" | "onBlur" | "onFocus" | "defaultValue" | "onChange" | "isDisabled" | "autoFocus" | "labelPosition" | "validationState" | "helpText" | "errorText" | "successText" | "isRequired" | "maxCharacters" | "keyboardReturnKeyType" | "autoCompleteSuggestionType"> & PasswordInputExtraProps & React__default.RefAttributes<BladeElementRef>>;
2741
-
2742
- declare type TextAreaProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'necessityIndicator' | 'validationState' | 'helpText' | 'errorText' | 'successText' | 'placeholder' | 'defaultValue' | 'name' | 'onChange' | 'onFocus' | 'onBlur' | 'value' | 'isDisabled' | 'isRequired' | 'maxCharacters' | 'autoFocus' | 'numberOfLines'> & {
3903
+ 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;
3904
+ declare const PasswordInput: React__default.ForwardRefExoticComponent<Pick<BaseInputProps, "testID" | "placeholder" | "label" | "value" | "name" | "onBlur" | "onFocus" | "defaultValue" | "onChange" | "onSubmit" | "isDisabled" | "autoFocus" | "labelPosition" | "validationState" | "helpText" | "errorText" | "successText" | "isRequired" | "maxCharacters" | "keyboardReturnKeyType" | "autoCompleteSuggestionType"> & PasswordInputExtraProps & Partial<MakeObjectResponsive<{
3905
+ margin: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
3906
+ marginX: SpacingValueType;
3907
+ marginY: SpacingValueType;
3908
+ marginTop: SpacingValueType;
3909
+ marginRight: SpacingValueType;
3910
+ marginBottom: SpacingValueType;
3911
+ marginLeft: SpacingValueType;
3912
+ }> & Pick<MakeObjectResponsive<{
3913
+ gap: SpacingValueType;
3914
+ rowGap: SpacingValueType;
3915
+ columnGap: SpacingValueType;
3916
+ } & Pick<styled_components.CSSObject, "alignContent" | "alignItems" | "alignSelf" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "justifyContent" | "justifyItems" | "justifySelf" | "order" | "flex" | "placeSelf">>, "alignSelf" | "justifySelf" | "order" | "placeSelf"> & MakeObjectResponsive<{
3917
+ top: SpacingValueType;
3918
+ right: SpacingValueType;
3919
+ bottom: SpacingValueType;
3920
+ left: SpacingValueType;
3921
+ } & Pick<styled_components.CSSObject, "position" | "zIndex">> & Pick<{
3922
+ grid?: undefined;
3923
+ gridAutoColumns?: undefined;
3924
+ gridAutoFlow?: undefined;
3925
+ gridAutoRows?: undefined;
3926
+ gridColumnEnd?: undefined;
3927
+ gridColumnStart?: undefined;
3928
+ gridRowEnd?: undefined;
3929
+ gridRowStart?: undefined;
3930
+ gridTemplateAreas?: undefined;
3931
+ gridTemplateColumns?: undefined;
3932
+ gridTemplateRows?: undefined;
3933
+ gridArea?: undefined;
3934
+ gridColumn?: undefined;
3935
+ gridRow?: undefined;
3936
+ gridTemplate?: undefined;
3937
+ }, "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridArea" | "gridColumn" | "gridRow">> & React__default.RefAttributes<BladeElementRef>>;
3938
+
3939
+ 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'> & {
2743
3940
  /**
2744
3941
  * Decides whether to render a clear icon button
2745
3942
  */
@@ -2748,8 +3945,8 @@ declare type TextAreaProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'n
2748
3945
  * Event handler to handle the onClick event for clear button. Used when `showClearButton` is `true`
2749
3946
  */
2750
3947
  onClearButtonClick?: () => void;
2751
- };
2752
- declare const TextArea: React__default.ForwardRefExoticComponent<Pick<BaseInputProps, "placeholder" | "label" | "value" | "name" | "onBlur" | "onFocus" | "numberOfLines" | "defaultValue" | "onChange" | "isDisabled" | "autoFocus" | "labelPosition" | "validationState" | "helpText" | "errorText" | "necessityIndicator" | "successText" | "isRequired" | "maxCharacters"> & {
3948
+ } & StyledPropsBlade;
3949
+ declare const TextArea: React__default.ForwardRefExoticComponent<Pick<BaseInputProps, "testID" | "placeholder" | "label" | "value" | "name" | "onBlur" | "onFocus" | "numberOfLines" | "defaultValue" | "onChange" | "onSubmit" | "isDisabled" | "autoFocus" | "labelPosition" | "validationState" | "helpText" | "errorText" | "necessityIndicator" | "successText" | "isRequired" | "maxCharacters"> & {
2753
3950
  /**
2754
3951
  * Decides whether to render a clear icon button
2755
3952
  */
@@ -2758,9 +3955,42 @@ declare const TextArea: React__default.ForwardRefExoticComponent<Pick<BaseInputP
2758
3955
  * Event handler to handle the onClick event for clear button. Used when `showClearButton` is `true`
2759
3956
  */
2760
3957
  onClearButtonClick?: (() => void) | undefined;
2761
- } & React__default.RefAttributes<BladeElementRef>>;
2762
-
2763
- declare type OTPInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'validationState' | 'helpText' | 'errorText' | 'successText' | 'name' | 'onChange' | 'value' | 'isDisabled' | 'autoFocus' | 'keyboardReturnKeyType' | 'keyboardType' | 'placeholder'> & {
3958
+ } & Partial<MakeObjectResponsive<{
3959
+ margin: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
3960
+ marginX: SpacingValueType;
3961
+ marginY: SpacingValueType;
3962
+ marginTop: SpacingValueType;
3963
+ marginRight: SpacingValueType;
3964
+ marginBottom: SpacingValueType;
3965
+ marginLeft: SpacingValueType;
3966
+ }> & Pick<MakeObjectResponsive<{
3967
+ gap: SpacingValueType;
3968
+ rowGap: SpacingValueType;
3969
+ columnGap: SpacingValueType;
3970
+ } & Pick<styled_components.CSSObject, "alignContent" | "alignItems" | "alignSelf" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "justifyContent" | "justifyItems" | "justifySelf" | "order" | "flex" | "placeSelf">>, "alignSelf" | "justifySelf" | "order" | "placeSelf"> & MakeObjectResponsive<{
3971
+ top: SpacingValueType;
3972
+ right: SpacingValueType;
3973
+ bottom: SpacingValueType;
3974
+ left: SpacingValueType;
3975
+ } & Pick<styled_components.CSSObject, "position" | "zIndex">> & Pick<{
3976
+ grid?: undefined;
3977
+ gridAutoColumns?: undefined;
3978
+ gridAutoFlow?: undefined;
3979
+ gridAutoRows?: undefined;
3980
+ gridColumnEnd?: undefined;
3981
+ gridColumnStart?: undefined;
3982
+ gridRowEnd?: undefined;
3983
+ gridRowStart?: undefined;
3984
+ gridTemplateAreas?: undefined;
3985
+ gridTemplateColumns?: undefined;
3986
+ gridTemplateRows?: undefined;
3987
+ gridArea?: undefined;
3988
+ gridColumn?: undefined;
3989
+ gridRow?: undefined;
3990
+ gridTemplate?: undefined;
3991
+ }, "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridArea" | "gridColumn" | "gridRow">> & React__default.RefAttributes<BladeElementRef>>;
3992
+
3993
+ declare type OTPInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'validationState' | 'helpText' | 'errorText' | 'successText' | 'name' | 'onChange' | 'value' | 'isDisabled' | 'autoFocus' | 'keyboardReturnKeyType' | 'keyboardType' | 'placeholder' | 'testID'> & {
2764
3994
  /**
2765
3995
  * Determines the number of input fields to show for the OTP
2766
3996
  * @default 6
@@ -2788,7 +4018,7 @@ declare type OTPInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'v
2788
4018
  *
2789
4019
  */
2790
4020
  autoCompleteSuggestionType?: Extract<BaseInputProps['autoCompleteSuggestionType'], 'none' | 'oneTimeCode'>;
2791
- };
4021
+ } & StyledPropsBlade;
2792
4022
  /**
2793
4023
  * OTPInput component can be used for accepting OTPs sent to users for authentication/verification purposes.
2794
4024
  *
@@ -2803,9 +4033,9 @@ declare type OTPInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'v
2803
4033
  * />
2804
4034
  * ```
2805
4035
  */
2806
- declare const OTPInput: ({ autoFocus, errorText, helpText, isDisabled, keyboardReturnKeyType, keyboardType, label, labelPosition, name, onChange, onOTPFilled, otpLength, placeholder, successText, validationState, value, isMasked, autoCompleteSuggestionType, }: OTPInputProps) => React__default.ReactElement;
4036
+ declare const OTPInput: ({ autoFocus, errorText, helpText, isDisabled, keyboardReturnKeyType, keyboardType, label, labelPosition, name, onChange, onOTPFilled, otpLength, placeholder, successText, validationState, value, isMasked, autoCompleteSuggestionType, testID, ...styledProps }: OTPInputProps) => React__default.ReactElement;
2807
4037
 
2808
- declare type SelectInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'necessityIndicator' | 'validationState' | 'helpText' | 'errorText' | 'successText' | 'name' | 'isDisabled' | 'isRequired' | 'prefix' | 'suffix' | 'autoFocus' | 'onClick' | 'onFocus' | 'onBlur' | 'placeholder'> & {
4038
+ declare type SelectInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'necessityIndicator' | 'validationState' | 'helpText' | 'errorText' | 'successText' | 'name' | 'isDisabled' | 'isRequired' | 'prefix' | 'suffix' | 'autoFocus' | 'onClick' | 'onFocus' | 'onBlur' | 'placeholder' | 'testID'> & {
2809
4039
  icon?: IconComponent$1;
2810
4040
  onChange?: ({ name, values }: {
2811
4041
  name?: string;
@@ -2839,7 +4069,7 @@ declare type SelectInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' |
2839
4069
  *
2840
4070
  * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-select--with-single-select SelectInput Documentation}.
2841
4071
  */
2842
- declare const SelectInput: React__default.ForwardRefExoticComponent<Pick<BaseInputProps, "placeholder" | "label" | "name" | "onBlur" | "onFocus" | "onClick" | "prefix" | "isDisabled" | "autoFocus" | "labelPosition" | "validationState" | "helpText" | "errorText" | "necessityIndicator" | "successText" | "isRequired" | "suffix"> & {
4072
+ declare const SelectInput: React__default.ForwardRefExoticComponent<Pick<BaseInputProps, "testID" | "placeholder" | "label" | "name" | "onBlur" | "onFocus" | "onClick" | "prefix" | "isDisabled" | "autoFocus" | "labelPosition" | "validationState" | "helpText" | "errorText" | "necessityIndicator" | "successText" | "isRequired" | "suffix"> & {
2843
4073
  icon?: IconComponent$1 | undefined;
2844
4074
  onChange?: (({ name, values }: {
2845
4075
  name?: string | undefined;
@@ -2860,7 +4090,7 @@ declare type IndicatorCommonProps = {
2860
4090
  * @default medium
2861
4091
  */
2862
4092
  size?: 'small' | 'medium' | 'large';
2863
- };
4093
+ } & TestID$1 & StyledPropsBlade;
2864
4094
  declare type IndicatorWithoutA11yLabel = {
2865
4095
  /**
2866
4096
  * A text label to show alongside the indicator dot
@@ -2882,7 +4112,7 @@ declare type IndicatorWithA11yLabel = {
2882
4112
  children?: StringChildrenType;
2883
4113
  };
2884
4114
  declare type IndicatorProps = IndicatorCommonProps & (IndicatorWithA11yLabel | IndicatorWithoutA11yLabel);
2885
- declare const Indicator: ({ accessibilityLabel, children, size, intent, }: IndicatorProps) => ReactElement;
4115
+ declare const Indicator: ({ accessibilityLabel, children, size, intent, testID, ...styledProps }: IndicatorProps) => ReactElement;
2886
4116
 
2887
4117
  declare type ListItemProps = {
2888
4118
  /**
@@ -2900,9 +4130,9 @@ declare type ListItemProps = {
2900
4130
  *
2901
4131
  */
2902
4132
  _itemNumber?: undefined;
2903
- };
4133
+ } & TestID$1;
2904
4134
  declare const ListItem: {
2905
- ({ children, icon, _itemNumber }: ListItemProps): React__default.ReactElement;
4135
+ ({ children, icon, _itemNumber, testID, }: ListItemProps): React__default.ReactElement;
2906
4136
  componentId: string;
2907
4137
  };
2908
4138
 
@@ -2924,7 +4154,7 @@ declare type ListCommonProps = {
2924
4154
  * @default 'medium'
2925
4155
  */
2926
4156
  size?: 'small' | 'medium';
2927
- };
4157
+ } & TestID$1 & StyledPropsBlade;
2928
4158
  declare type ListWithIconProps = ListCommonProps & {
2929
4159
  variant?: 'unordered';
2930
4160
  icon?: IconComponent;
@@ -2955,13 +4185,13 @@ declare type ListProps = ListWithIconProps | ListWithoutIconProps;
2955
4185
  * ```
2956
4186
  */
2957
4187
  declare const List: {
2958
- ({ variant, size, children, icon }: ListProps): React__default.ReactElement;
4188
+ ({ variant, size, children, icon, testID, ...styledProps }: ListProps): React__default.ReactElement;
2959
4189
  componentId: string;
2960
4190
  };
2961
4191
 
2962
4192
  declare type ListItemLinkProps = Exclude<LinkProps, 'size' | 'variant' | 'isDisabled'>;
2963
4193
  declare const ListItemLink: {
2964
- ({ accessibilityLabel, children, href, icon, iconPosition, onClick, rel, target, }: ListItemLinkProps): React.ReactElement;
4194
+ ({ accessibilityLabel, children, href, icon, iconPosition, onClick, rel, target, testID, }: ListItemLinkProps): React.ReactElement;
2965
4195
  componentId: string;
2966
4196
  };
2967
4197
 
@@ -2970,8 +4200,8 @@ declare type TitleProps = {
2970
4200
  contrast?: ColorContrastTypes;
2971
4201
  type?: TextTypes;
2972
4202
  children: StringChildrenType;
2973
- };
2974
- declare const Title: ({ size, type, contrast, children, }: TitleProps) => ReactElement;
4203
+ } & TestID$1 & StyledPropsBlade;
4204
+ declare const Title: ({ size, type, contrast, children, testID, ...styledProps }: TitleProps) => ReactElement;
2975
4205
 
2976
4206
  declare type HeadingVariant = 'regular' | 'subheading';
2977
4207
  declare type HeadingSize = 'small' | 'medium' | 'large';
@@ -2979,7 +4209,7 @@ declare type HeadingCommonProps = {
2979
4209
  type?: TextTypes;
2980
4210
  contrast?: ColorContrastTypes;
2981
4211
  children: StringChildrenType;
2982
- };
4212
+ } & TestID$1 & StyledPropsBlade;
2983
4213
  declare type HeadingNormalVariant = HeadingCommonProps & {
2984
4214
  variant?: Exclude<HeadingVariant, 'subheading'>;
2985
4215
  /**
@@ -3006,7 +4236,7 @@ declare type HeadingProps<T> = T extends {
3006
4236
  } ? Variant extends Exclude<HeadingVariant, 'subheading'> ? HeadingNormalVariant : Variant extends 'subheading' ? HeadingSubHeadingVariant : T : T;
3007
4237
  declare const Heading: <T extends {
3008
4238
  variant: HeadingVariant;
3009
- }>({ variant, size, type, weight, contrast, children, }: HeadingProps<T>) => ReactElement;
4239
+ }>({ variant, size, type, weight, contrast, children, testID, ...styledProps }: HeadingProps<T>) => ReactElement;
3010
4240
 
3011
4241
  declare type FeedbackColors = `feedback.text.${DotNotationColorStringToken<Theme$1['colors']['feedback']['text']>}`;
3012
4242
  declare type FeedbackActionColors = `feedback.${Feedback}.action.text.${DotNotationColorStringToken<Theme$1['colors']['feedback'][Feedback]['action']['text']>}`;
@@ -3037,7 +4267,7 @@ declare type BaseTextProps = {
3037
4267
  */
3038
4268
  numberOfLines?: number;
3039
4269
  componentName?: 'text' | 'title' | 'heading' | 'code';
3040
- };
4270
+ } & TestID$1 & StyledPropsBlade;
3041
4271
 
3042
4272
  declare type TextCommonProps = {
3043
4273
  type?: TextTypes;
@@ -3049,7 +4279,8 @@ declare type TextCommonProps = {
3049
4279
  * **For Internal use only**: Sets the color of the Text component
3050
4280
  */
3051
4281
  color?: BaseTextProps['color'];
3052
- };
4282
+ textAlign?: BaseTextProps['textAlign'];
4283
+ } & TestID$1 & StyledPropsBlade;
3053
4284
  declare type TextVariant = 'body' | 'caption';
3054
4285
  declare type TextBodyVariant = TextCommonProps & {
3055
4286
  variant?: Extract<TextVariant, 'body'>;
@@ -3071,10 +4302,10 @@ declare type TextForwardedAs = {
3071
4302
  };
3072
4303
  declare const getTextProps: <T extends {
3073
4304
  variant: TextVariant;
3074
- }>({ variant, type, weight, size, contrast, }: Pick<TextProps<T>, "size" | "variant" | "type" | "weight" | "contrast">) => Omit<BaseTextProps, 'children'> & TextForwardedAs;
4305
+ }>({ variant, type, weight, size, contrast, testID, textAlign, }: Pick<TextProps<T>, "testID" | "textAlign" | "size" | "weight" | "type" | "variant" | "contrast">) => Omit<BaseTextProps, 'children'> & TextForwardedAs;
3075
4306
  declare const Text: <T extends {
3076
4307
  variant: TextVariant;
3077
- }>({ variant, weight, size, type, contrast, truncateAfterLines, children, color, }: TextProps<T>) => ReactElement;
4308
+ }>({ variant, weight, size, type, contrast, truncateAfterLines, children, color, testID, textAlign, ...styledProps }: TextProps<T>) => ReactElement;
3078
4309
 
3079
4310
  declare type CodeProps = {
3080
4311
  children: StringChildrenType;
@@ -3084,7 +4315,7 @@ declare type CodeProps = {
3084
4315
  * @default small
3085
4316
  */
3086
4317
  size?: 'small' | 'medium';
3087
- };
4318
+ } & TestID$1 & StyledPropsBlade;
3088
4319
  /**
3089
4320
  * Code component can be used for displaying token, variable names, or inlined code snippets.
3090
4321
  *
@@ -3111,11 +4342,11 @@ declare type CodeProps = {
3111
4342
  * </BaseBox>
3112
4343
  * ```
3113
4344
  */
3114
- declare const Code: ({ children, size }: CodeProps) => JSX.Element;
4345
+ declare const Code: ({ children, size, testID, ...styledProps }: CodeProps) => JSX.Element;
3115
4346
 
3116
4347
  declare type ListItemCodeProps = Exclude<CodeProps, 'size'>;
3117
4348
  declare const ListItemCode: {
3118
- ({ children }: ListItemCodeProps): React.ReactElement;
4349
+ ({ children, testID }: ListItemCodeProps): React.ReactElement;
3119
4350
  componentId: string;
3120
4351
  };
3121
4352
 
@@ -3163,7 +4394,7 @@ declare type ProgressBarCommonProps = {
3163
4394
  * @default 100
3164
4395
  */
3165
4396
  max?: number;
3166
- };
4397
+ } & TestID$1 & StyledPropsBlade;
3167
4398
  declare type ProgressBarVariant = 'progress' | 'meter';
3168
4399
  declare type ProgressBarProgressProps = ProgressBarCommonProps & {
3169
4400
  /**
@@ -3200,7 +4431,7 @@ declare type ProgressBarMeterProps = ProgressBarCommonProps & {
3200
4431
  showPercentage?: undefined;
3201
4432
  };
3202
4433
  declare type ProgressBarProps = ProgressBarProgressProps | ProgressBarMeterProps;
3203
- declare const ProgressBar: ({ accessibilityLabel, contrast, intent, isIndeterminate, label, showPercentage, size, value, variant, min, max, }: ProgressBarProps) => ReactElement;
4434
+ declare const ProgressBar: ({ accessibilityLabel, contrast, intent, isIndeterminate, label, showPercentage, size, value, variant, min, max, testID, ...styledProps }: ProgressBarProps) => ReactElement;
3204
4435
 
3205
4436
  declare type RadioProps = {
3206
4437
  /**
@@ -3228,8 +4459,67 @@ declare type RadioProps = {
3228
4459
  * @default "medium"
3229
4460
  */
3230
4461
  size?: 'small' | 'medium';
3231
- };
3232
- declare const Radio: React__default.ForwardRefExoticComponent<RadioProps & React__default.RefAttributes<BladeElementRef>>;
4462
+ } & TestID$1 & StyledPropsBlade;
4463
+ declare const Radio: React__default.ForwardRefExoticComponent<{
4464
+ /**
4465
+ * Sets the label text of the Radio
4466
+ */
4467
+ children: StringChildrenType;
4468
+ /**
4469
+ * Help text for the Radio
4470
+ */
4471
+ helpText?: string | undefined;
4472
+ /**
4473
+ * The value to be used in the Radio input.
4474
+ * This is the value that will be returned on form submission.
4475
+ */
4476
+ value: string;
4477
+ /**
4478
+ * If `true`, the Radio will be disabled
4479
+ *
4480
+ * @default false
4481
+ */
4482
+ isDisabled?: boolean | undefined;
4483
+ /**
4484
+ * Size of the radios
4485
+ *
4486
+ * @default "medium"
4487
+ */
4488
+ size?: "small" | "medium" | undefined;
4489
+ } & TestID$1 & Partial<MakeObjectResponsive<{
4490
+ margin: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
4491
+ marginX: SpacingValueType;
4492
+ marginY: SpacingValueType;
4493
+ marginTop: SpacingValueType;
4494
+ marginRight: SpacingValueType;
4495
+ marginBottom: SpacingValueType;
4496
+ marginLeft: SpacingValueType;
4497
+ }> & Pick<MakeObjectResponsive<{
4498
+ gap: SpacingValueType;
4499
+ rowGap: SpacingValueType;
4500
+ columnGap: SpacingValueType;
4501
+ } & Pick<styled_components.CSSObject, "alignContent" | "alignItems" | "alignSelf" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "justifyContent" | "justifyItems" | "justifySelf" | "order" | "flex" | "placeSelf">>, "alignSelf" | "justifySelf" | "order" | "placeSelf"> & MakeObjectResponsive<{
4502
+ top: SpacingValueType;
4503
+ right: SpacingValueType;
4504
+ bottom: SpacingValueType;
4505
+ left: SpacingValueType;
4506
+ } & Pick<styled_components.CSSObject, "position" | "zIndex">> & Pick<{
4507
+ grid?: undefined;
4508
+ gridAutoColumns?: undefined;
4509
+ gridAutoFlow?: undefined;
4510
+ gridAutoRows?: undefined;
4511
+ gridColumnEnd?: undefined;
4512
+ gridColumnStart?: undefined;
4513
+ gridRowEnd?: undefined;
4514
+ gridRowStart?: undefined;
4515
+ gridTemplateAreas?: undefined;
4516
+ gridTemplateColumns?: undefined;
4517
+ gridTemplateRows?: undefined;
4518
+ gridArea?: undefined;
4519
+ gridColumn?: undefined;
4520
+ gridRow?: undefined;
4521
+ gridTemplate?: undefined;
4522
+ }, "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridArea" | "gridColumn" | "gridRow">> & React__default.RefAttributes<BladeElementRef>>;
3233
4523
 
3234
4524
  declare type RadioGroupProps = {
3235
4525
  /**
@@ -3304,8 +4594,8 @@ declare type RadioGroupProps = {
3304
4594
  * @default "medium"
3305
4595
  */
3306
4596
  size?: 'small' | 'medium';
3307
- };
3308
- declare const RadioGroup: ({ children, label, helpText, isDisabled, necessityIndicator, labelPosition, validationState, errorText, name, defaultValue, onChange, value, size, }: RadioGroupProps) => React__default.ReactElement;
4597
+ } & TestID$1 & StyledPropsBlade;
4598
+ declare const RadioGroup: ({ children, label, helpText, isDisabled, necessityIndicator, labelPosition, validationState, errorText, name, defaultValue, onChange, value, size, testID, ...styledProps }: RadioGroupProps) => React__default.ReactElement;
3309
4599
 
3310
4600
  declare type BaseSpinnerProps = {
3311
4601
  intent?: Feedback;
@@ -3337,10 +4627,10 @@ declare type BaseSpinnerProps = {
3337
4627
  *
3338
4628
  */
3339
4629
  accessibilityLabel: string;
3340
- };
4630
+ } & TestID$1 & StyledPropsBlade;
3341
4631
 
3342
4632
  declare type SpinnerProps = Omit<BaseSpinnerProps, 'intent'>;
3343
- declare const Spinner: ({ label, labelPosition, accessibilityLabel, contrast, size, }: SpinnerProps) => React.ReactElement;
4633
+ declare const Spinner: ({ label, labelPosition, accessibilityLabel, contrast, size, testID, ...styledProps }: SpinnerProps) => React.ReactElement;
3344
4634
 
3345
4635
  declare type SkipNavLinkProps = {
3346
4636
  id?: string;
@@ -3351,9 +4641,9 @@ declare const SkipNavContent: (_props: SkipNavLinkProps) => never;
3351
4641
 
3352
4642
  declare type VisuallyHiddenProps = {
3353
4643
  children: React.ReactNode;
3354
- };
4644
+ } & TestID$1;
3355
4645
 
3356
- declare const VisuallyHidden: ({ children }: VisuallyHiddenProps) => JSX.Element;
4646
+ declare const VisuallyHidden: ({ children, testID }: VisuallyHiddenProps) => JSX.Element;
3357
4647
 
3358
4648
  /**
3359
4649
  * Screen reader class adapted from webaim
@@ -3361,4 +4651,71 @@ declare const VisuallyHidden: ({ children }: VisuallyHiddenProps) => JSX.Element
3361
4651
  */
3362
4652
  declare const screenReaderStyles: CSSObject;
3363
4653
 
3364
- 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, 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, BoxIcon, 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, 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, useTheme };
4654
+ declare type TestID = {
4655
+ testID?: string;
4656
+ };
4657
+
4658
+ declare const BaseBox: styled_components.StyledComponent<typeof View, styled_components.DefaultTheme, Omit<Partial<MakeObjectResponsive<{
4659
+ padding: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
4660
+ paddingX: SpacingValueType;
4661
+ paddingY: SpacingValueType;
4662
+ paddingTop: SpacingValueType;
4663
+ paddingRight: SpacingValueType;
4664
+ paddingBottom: SpacingValueType;
4665
+ paddingLeft: SpacingValueType;
4666
+ }> & MakeObjectResponsive<{
4667
+ margin: SpacingValueType | ArrayOfMaxLength4<SpacingValueType>;
4668
+ marginX: SpacingValueType;
4669
+ marginY: SpacingValueType;
4670
+ marginTop: SpacingValueType;
4671
+ marginRight: SpacingValueType;
4672
+ marginBottom: SpacingValueType;
4673
+ marginLeft: SpacingValueType;
4674
+ }> & MakeObjectResponsive<{
4675
+ height: SpacingValueType;
4676
+ minHeight: SpacingValueType;
4677
+ maxHeight: SpacingValueType;
4678
+ width: SpacingValueType;
4679
+ minWidth: SpacingValueType;
4680
+ maxWidth: SpacingValueType;
4681
+ } & Pick<styled_components.CSSObject, "display" | "overflow" | "overflowX" | "overflowY">> & MakeObjectResponsive<{
4682
+ gap: SpacingValueType;
4683
+ rowGap: SpacingValueType;
4684
+ columnGap: SpacingValueType;
4685
+ } & Pick<styled_components.CSSObject, "alignContent" | "alignItems" | "alignSelf" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "justifyContent" | "justifyItems" | "justifySelf" | "order" | "flex" | "placeSelf">> & MakeObjectResponsive<{
4686
+ top: SpacingValueType;
4687
+ right: SpacingValueType;
4688
+ bottom: SpacingValueType;
4689
+ left: SpacingValueType;
4690
+ } & Pick<styled_components.CSSObject, "position" | "zIndex">> & {
4691
+ grid?: undefined;
4692
+ gridAutoColumns?: undefined;
4693
+ gridAutoFlow?: undefined;
4694
+ gridAutoRows?: undefined;
4695
+ gridColumnEnd?: undefined;
4696
+ gridColumnStart?: undefined;
4697
+ gridRowEnd?: undefined;
4698
+ gridRowStart?: undefined;
4699
+ gridTemplateAreas?: undefined;
4700
+ gridTemplateColumns?: undefined;
4701
+ gridTemplateRows?: undefined;
4702
+ gridArea?: undefined;
4703
+ gridColumn?: undefined;
4704
+ gridRow?: undefined;
4705
+ gridTemplate?: undefined;
4706
+ } & MakeObjectResponsive<{
4707
+ 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";
4708
+ }> & {
4709
+ as: "header" | "main" | "aside" | "div" | "footer" | "nav" | "section" | "span";
4710
+ } & {
4711
+ children?: React$1.ReactNode | React$1.ReactNode[];
4712
+ } & TestID>, "backgroundColor" | "as"> & Partial<MakeObjectResponsive<{
4713
+ borderRadius: "none" | "small" | "medium" | "large" | "max" | "round";
4714
+ backgroundColor: "feedback.background.neutral.lowContrast" | "feedback.background.neutral.highContrast" | "feedback.background.information.lowContrast" | "feedback.background.information.highContrast" | "feedback.background.negative.lowContrast" | "feedback.background.negative.highContrast" | "feedback.background.notice.lowContrast" | "feedback.background.notice.highContrast" | "feedback.background.positive.lowContrast" | "feedback.background.positive.highContrast" | "surface.background.level1.lowContrast" | "surface.background.level1.highContrast" | "surface.background.level2.lowContrast" | "surface.background.level2.highContrast" | "surface.background.level3.lowContrast" | "surface.background.level3.highContrast" | "action.background.primary.disabled" | "action.background.primary.default" | "action.background.primary.hover" | "action.background.primary.focus" | "action.background.primary.active" | "action.background.secondary.disabled" | "action.background.secondary.default" | "action.background.secondary.hover" | "action.background.secondary.focus" | "action.background.secondary.active" | "action.background.tertiary.disabled" | "action.background.tertiary.default" | "action.background.tertiary.hover" | "action.background.tertiary.focus" | "action.background.tertiary.active" | (string & Record<never, never>);
4715
+ lineHeight: SpacingValueType;
4716
+ } & Pick<styled_components.CSSObject, "border" | "transform" | "borderBottom" | "borderLeft" | "borderRight" | "borderTop">> & {
4717
+ className?: string | undefined;
4718
+ id?: string | undefined;
4719
+ }>, never>;
4720
+
4721
+ 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, 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, Box, BoxIcon, BoxProps, 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, 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, BaseBox as InternalDontUsePleaseWillBeRemovedSoonBaseBox, 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, useTheme };