@razorpay/blade 6.3.0 → 6.4.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.
@@ -4,59 +4,6 @@ import React__default, { ReactChild, ReactElement, ReactNode, SyntheticEvent, Ke
4
4
  import { AccessibilityRole, ImageSourcePropType, View, GestureResponderEvent } from 'react-native';
5
5
  import { CSSObject } from 'styled-components';
6
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;
59
-
60
7
  type BorderRadius = Readonly<{
61
8
  /** none: 0(px/rem/pt) */
62
9
  none: 0;
@@ -280,40 +227,161 @@ type Spacing = Readonly<{
280
227
  11: 56;
281
228
  }>;
282
229
 
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];
230
+ type ColorSchemeNames = 'dark' | 'light';
231
+ type ColorSchemeNamesInput = ColorSchemeNames | 'system';
295
232
 
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[];
233
+ type ColorSchemeModes = 'onDark' | 'onLight';
234
+
235
+ type ShadowLevels = 1 | 2 | 3 | 4 | 5;
236
+
237
+ type TextTypes = 'muted' | 'normal' | 'placeholder' | 'subdued' | 'subtle';
238
+
239
+ type ColorContrastTypes = 'low' | 'high';
240
+
241
+ type Shadows = {
242
+ offsetX: {
243
+ level: Record<ShadowLevels, number>;
244
+ };
245
+ offsetY: {
246
+ level: Record<ShadowLevels, number>;
247
+ };
248
+ blurRadius: {
249
+ level: Record<ShadowLevels, number>;
250
+ };
251
+ color: Record<
252
+ ColorSchemeModes,
253
+ {
254
+ level: Record<ShadowLevels, string>;
255
+ }
256
+ >;
257
+ androidElevation: {
258
+ level: Record<ShadowLevels, number>;
259
+ };
260
+ };
261
+
262
+ type Feedback = 'information' | 'negative' | 'neutral' | 'notice' | 'positive';
263
+
264
+ type ColorContrast = {
265
+ [K in ColorContrastTypes as `${Extract<K, string>}Contrast`]: string;
266
+ };
267
+
268
+ type ActionStates = {
269
+ default: string;
270
+ hover: string;
271
+ focus: string;
272
+ active: string;
273
+ disabled: string;
274
+ };
275
+
276
+ type LinkActionStates = ActionStates & {
277
+ visited: string;
278
+ };
279
+
280
+ type ActionStatesWithContrast = {
281
+ default: ColorContrast;
282
+ hover: ColorContrast;
283
+ focus: ColorContrast;
284
+ active: ColorContrast;
285
+ disabled: ColorContrast;
286
+ };
287
+
288
+ type ActionVariants = {
289
+ primary: ActionStates;
290
+ secondary: ActionStates;
291
+ tertiary: ActionStates;
292
+ link: LinkActionStates;
293
+ };
294
+
295
+ type ActionVariantsWithContrast = {
296
+ primary: ActionStatesWithContrast;
297
+ secondary: ActionStatesWithContrast;
298
+ tertiary: ActionStatesWithContrast;
299
+ link: ActionStatesWithContrast;
300
+ };
301
+
302
+ // export type ActionProperties = {
303
+ // background: ActionVariants;
304
+ // border: ActionVariants;
305
+ // text: ActionVariants;
306
+ // icon: ActionVariants;
307
+ // };
308
+
309
+ type FeedbackActions = {
310
+ background: Pick<ActionVariantsWithContrast, 'primary'>;
311
+ border: Pick<ActionVariantsWithContrast, 'primary'>;
312
+ text: Pick<ActionVariantsWithContrast, 'link' | 'primary'>;
313
+ icon: Pick<ActionVariantsWithContrast, 'link' | 'primary'>;
314
+ };
315
+
316
+ type Colors = {
317
+ brand: {
318
+ primary: Record<300 | 400 | 500 | 600 | 700 | 800, string>;
319
+ secondary: Record<500, string>;
320
+ gray: Record<200 | 300 | 400 | 500 | 600 | 700 | 'a50' | 'a100', ColorContrast>;
321
+ };
322
+ feedback: {
323
+ background: Record<Feedback, ColorContrast>;
324
+ border: Record<Feedback, ColorContrast>;
325
+ text: Record<Feedback, ColorContrast>;
326
+ icon: Record<Feedback, ColorContrast>;
327
+ positive: {
328
+ action: FeedbackActions;
329
+ };
330
+ negative: {
331
+ action: FeedbackActions;
332
+ };
333
+ information: {
334
+ action: FeedbackActions;
335
+ };
336
+ notice: {
337
+ action: FeedbackActions;
338
+ };
339
+ neutral: {
340
+ action: FeedbackActions;
341
+ };
342
+ };
343
+ surface: {
344
+ background: Record<'level1' | 'level2' | 'level3', ColorContrast>;
345
+ border: Record<'normal' | 'subtle', ColorContrast>;
346
+ text: Record<TextTypes, ColorContrast>;
347
+ action: {
348
+ icon: ActionStatesWithContrast;
349
+ };
350
+ };
351
+ overlay: Record<'background', string>;
352
+ action: {
353
+ background: Omit<ActionVariants, 'link'>;
354
+ border: Omit<ActionVariants, 'link'>;
355
+ text: ActionVariants;
356
+ icon: ActionVariants;
357
+ };
358
+ badge: {
359
+ background: {
360
+ blue: ColorContrast;
361
+ };
362
+ border: {
363
+ blue: ColorContrast;
364
+ };
365
+ text: {
366
+ blue: ColorContrast;
367
+ };
368
+ icon: {
369
+ blue: ColorContrast;
370
+ };
371
+ };
372
+ };
373
+
374
+ type ColorsWithModes = Record<ColorSchemeModes, Colors>;
375
+
376
+ type ThemeTokens = {
377
+ border: Border;
378
+ breakpoints: Breakpoints;
379
+ colors: ColorsWithModes;
380
+ motion: Motion;
381
+ spacing: Spacing;
382
+ shadows: Shadows;
383
+ typography: TypographyWithPlatforms;
384
+ };
317
385
 
318
386
  /* eslint-disable @typescript-eslint/no-explicit-any */
319
387
 
@@ -735,194 +803,130 @@ type Easing = {
735
803
  *
736
804
  * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
737
805
  attentive: EasingType<'cubic-bezier(0.5, 0, 0.3, 1.5)'>;
738
- /** `cubic-bezier(0, 0, 0.2, 1)`
739
- *
740
- * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
741
- effective: EasingType<'cubic-bezier(0, 0, 0.2, 1)'>;
742
- /** `cubic-bezier(0, 0, 0, 1)`
743
- *
744
- * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
745
- revealing: EasingType<'cubic-bezier(0, 0, 0, 1)'>;
746
- };
747
- /** Easings for all exit animations*/
748
- exit: {
749
- /** `cubic-bezier(0.7, 0, 0.5, 1)`
750
- *
751
- * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
752
- attentive: EasingType<'cubic-bezier(0.7, 0, 0.5, 1)'>;
753
- /** `cubic-bezier(0.17, 0, 1, 1)`
754
- *
755
- * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
756
- effective: EasingType<'cubic-bezier(0.17, 0, 1, 1)'>;
757
- /** `cubic-bezier(0.5, 0, 1, 1)`
758
- *
759
- * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
760
- revealing: EasingType<'cubic-bezier(0.5, 0, 1, 1)'>;
761
- };
762
- };
763
-
764
- type Motion = Readonly<{
765
- delay: Delay;
766
- duration: Duration;
767
- easing: Easing;
768
- }>;
769
-
770
- type ColorSchemeNames = 'dark' | 'light';
771
- type ColorSchemeNamesInput = ColorSchemeNames | 'system';
772
-
773
- type ColorSchemeModes = 'onDark' | 'onLight';
774
-
775
- type ShadowLevels = 1 | 2 | 3 | 4 | 5;
776
-
777
- type TextTypes = 'muted' | 'normal' | 'placeholder' | 'subdued' | 'subtle';
778
-
779
- type ColorContrastTypes = 'low' | 'high';
780
-
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
- {
794
- level: Record<ShadowLevels, string>;
795
- }
796
- >;
797
- androidElevation: {
798
- level: Record<ShadowLevels, number>;
799
- };
800
- };
801
-
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
- // };
848
-
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
- };
855
-
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;
806
+ /** `cubic-bezier(0, 0, 0.2, 1)`
807
+ *
808
+ * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
809
+ effective: EasingType<'cubic-bezier(0, 0, 0.2, 1)'>;
810
+ /** `cubic-bezier(0, 0, 0, 1)`
811
+ *
812
+ * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
813
+ revealing: EasingType<'cubic-bezier(0, 0, 0, 1)'>;
897
814
  };
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
- };
815
+ /** Easings for all exit animations*/
816
+ exit: {
817
+ /** `cubic-bezier(0.7, 0, 0.5, 1)`
818
+ *
819
+ * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
820
+ attentive: EasingType<'cubic-bezier(0.7, 0, 0.5, 1)'>;
821
+ /** `cubic-bezier(0.17, 0, 1, 1)`
822
+ *
823
+ * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
824
+ effective: EasingType<'cubic-bezier(0.17, 0, 1, 1)'>;
825
+ /** `cubic-bezier(0.5, 0, 1, 1)`
826
+ *
827
+ * Returns a `string` of `"cubic-bezier(...)"` for web & react-native-reanimated's Easing Function of type `EasingFunctionFactory` for native */
828
+ revealing: EasingType<'cubic-bezier(0.5, 0, 1, 1)'>;
911
829
  };
912
830
  };
913
831
 
914
- type ColorsWithModes = Record<ColorSchemeModes, Colors>;
832
+ type Motion = Readonly<{
833
+ delay: Delay;
834
+ duration: Duration;
835
+ easing: Easing;
836
+ }>;
915
837
 
916
- type ThemeTokens = {
917
- border: Border;
918
- breakpoints: Breakpoints;
919
- colors: ColorsWithModes;
920
- motion: Motion;
921
- spacing: Spacing;
922
- shadows: Shadows;
923
- typography: TypographyWithPlatforms;
838
+ /**
839
+ * @template TokenType token type generic
840
+ * @description Tokenises objects to dot notation strings, eg: `surface.text.normal.lowContrast`
841
+ */
842
+ type DotNotationColorStringToken<TokenType> = {
843
+ [K in keyof TokenType]: `${Extract<K, number | string>}.${TokenType[K] extends Record<
844
+ string,
845
+ string
846
+ >
847
+ ? Extract<keyof TokenType[K], number | string>
848
+ : DotNotationColorStringToken<TokenType[K]>}`;
849
+ }[keyof TokenType];
850
+
851
+ /**
852
+ * Use this when you want children to be string.
853
+ *
854
+ * This covers scenarios like
855
+ * ```jsx
856
+ * <Title>Hi</Title>
857
+ * <Title>{dynamicVariable} something</Title>
858
+ * ```
859
+ *
860
+ *
861
+ * ### Usage
862
+ *
863
+ * ```ts
864
+ * import type { StringChildrenType } from '~helpers/types';
865
+ *
866
+ * type MyProps = {
867
+ * children: StringChildrenType;
868
+ * }
869
+ * ```
870
+ */
871
+ type StringChildrenType = React__default.ReactText | React__default.ReactText[];
872
+
873
+ type TestID = {
874
+ testID?: string;
924
875
  };
925
876
 
877
+ declare type ActionListProps = {
878
+ children: React__default.ReactNode[];
879
+ /**
880
+ * Decides the backgroundColor of ActionList
881
+ */
882
+ surfaceLevel?: 2 | 3;
883
+ } & TestID;
884
+ /**
885
+ * ### ActionList
886
+ *
887
+ * List of multiple actionable items. Can be used as menu items inside `Dropdown`,
888
+ * `BottomSheet` and as selectable items when combined with `SelectInput`
889
+ *
890
+ * #### Usage
891
+ *
892
+ * ```jsx
893
+ * <Dropdown>
894
+ * <SelectInput label="Select Action" />
895
+ * <DropdownOverlay>
896
+ * <ActionList>
897
+ * <ActionListHeader
898
+ * title="Recent Searches"
899
+ * leading={<ActionListHeaderIcon icon={HistoryIcon} />}
900
+ * />
901
+ * <ActionListItem
902
+ * title="Home"
903
+ * value="home"
904
+ * leading={<ActionListItemIcon icon={HomeIcon} />}
905
+ * />
906
+ * <ActionListItem
907
+ * title="Pricing"
908
+ * value="pricing"
909
+ * leading={<ActionListItemAsset src="https://flagcdn.com/w20/in.png" alt="India Flag" />}
910
+ * />
911
+ * <ActionListHeader
912
+ * title="Search Tips"
913
+ * leading={<ActionListFooterIcon icon={SearchIcon} />}
914
+ * trailing={
915
+ * <Button
916
+ * onClick={() => console.log('clicked')}
917
+ * >
918
+ * Apply
919
+ * </Button>
920
+ * }
921
+ * />
922
+ * </ActionList>
923
+ * </DropdownOverlay>
924
+ * </Dropdown>
925
+ * ```
926
+ *
927
+ */
928
+ declare const ActionList: ({ children, surfaceLevel, testID }: ActionListProps) => JSX.Element;
929
+
926
930
  type Theme$1 = {
927
931
  border: Border;
928
932
  breakpoints: Breakpoints;
@@ -1019,7 +1023,7 @@ declare type ActionListItemProps = {
1019
1023
  * @private
1020
1024
  */
1021
1025
  _index?: number;
1022
- };
1026
+ } & TestID;
1023
1027
  declare const ActionListSectionDivider: () => JSX.Element;
1024
1028
  declare type ActionListSectionProps = {
1025
1029
  title: string;
@@ -1032,7 +1036,7 @@ declare type ActionListSectionProps = {
1032
1036
  * @private
1033
1037
  */
1034
1038
  _hideDivider?: boolean;
1035
- };
1039
+ } & TestID;
1036
1040
  declare const ActionListSection: WithComponentId<ActionListSectionProps>;
1037
1041
  declare const ActionListItemIcon: WithComponentId<{
1038
1042
  icon: IconComponent$1;
@@ -1068,7 +1072,7 @@ declare type ActionListHeaderProps = {
1068
1072
  * Valid children - `ActionListHeaderIcon`
1069
1073
  */
1070
1074
  leading?: React__default.ReactNode;
1071
- };
1075
+ } & TestID;
1072
1076
  /**
1073
1077
  * ### ActionListHeader
1074
1078
  *
@@ -1107,7 +1111,7 @@ declare type ActionListFooterProps = {
1107
1111
  * Anything can be passed here but maybe don't? Should ideally have Button or Tick Icon Buttons.
1108
1112
  */
1109
1113
  trailing?: React__default.ReactNode;
1110
- };
1114
+ } & TestID;
1111
1115
  /**
1112
1116
  * ### ActionListFooter
1113
1117
  *
@@ -1221,8 +1225,8 @@ declare type AlertProps = {
1221
1225
  */
1222
1226
  secondary?: SecondaryAction;
1223
1227
  };
1224
- };
1225
- declare const Alert: ({ description, title, isDismissible, onDismiss, contrast, isFullWidth, intent, actions, }: AlertProps) => ReactElement | null;
1228
+ } & TestID;
1229
+ declare const Alert: ({ description, title, isDismissible, onDismiss, contrast, isFullWidth, intent, actions, testID, }: AlertProps) => ReactElement | null;
1226
1230
 
1227
1231
  declare type BadgeProps = {
1228
1232
  /**
@@ -1260,8 +1264,8 @@ declare type BadgeProps = {
1260
1264
  * @default 'regular'
1261
1265
  */
1262
1266
  fontWeight?: 'regular' | 'bold';
1263
- };
1264
- declare const Badge: ({ children, contrast, fontWeight, icon, size, variant, }: BadgeProps) => ReactElement;
1267
+ } & TestID;
1268
+ declare const Badge: ({ children, contrast, fontWeight, icon, size, variant, testID, }: BadgeProps) => ReactElement;
1265
1269
 
1266
1270
  declare type BladeProviderProps = {
1267
1271
  themeTokens: ThemeTokens;
@@ -1333,11 +1337,11 @@ declare type CardProps = {
1333
1337
  * - Figma: https://shorturl.at/fsvwK
1334
1338
  */
1335
1339
  surfaceLevel?: 2 | 3;
1336
- };
1337
- declare const Card: ({ children, surfaceLevel }: CardProps) => React__default.ReactElement;
1340
+ } & TestID;
1341
+ declare const Card: ({ children, surfaceLevel, testID }: CardProps) => React__default.ReactElement;
1338
1342
  declare type CardBodyProps = {
1339
1343
  children: React__default.ReactNode;
1340
- };
1344
+ } & TestID;
1341
1345
  declare const CardBody: WithComponentId<CardBodyProps>;
1342
1346
 
1343
1347
  declare type LinkCommonProps = {
@@ -1355,7 +1359,7 @@ declare type LinkCommonProps = {
1355
1359
  * @default medium
1356
1360
  */
1357
1361
  size?: 'small' | 'medium';
1358
- };
1362
+ } & TestID;
1359
1363
  declare type LinkWithoutIconProps = LinkCommonProps & {
1360
1364
  icon?: undefined;
1361
1365
  children: StringChildrenType;
@@ -1380,7 +1384,7 @@ declare type LinkButtonVariantProps = LinkPropsWithOrWithoutIcon & {
1380
1384
  rel?: undefined;
1381
1385
  };
1382
1386
  declare type LinkProps = LinkAnchorVariantProps | LinkButtonVariantProps;
1383
- declare const Link: ({ children, icon, iconPosition, isDisabled, onClick, variant, href, target, rel, accessibilityLabel, size, }: LinkProps) => ReactElement;
1387
+ declare const Link: ({ children, icon, iconPosition, isDisabled, onClick, variant, href, target, rel, accessibilityLabel, size, testID, }: LinkProps) => ReactElement;
1384
1388
 
1385
1389
  type BladeElementRef = Pick<HTMLElement, 'focus' | 'scrollIntoView'> | Pick<View, 'focus'>;
1386
1390
 
@@ -1397,7 +1401,7 @@ declare type ButtonCommonProps = {
1397
1401
  native: (event: GestureResponderEvent) => void;
1398
1402
  web: (event: React__default.MouseEvent<HTMLButtonElement>) => void;
1399
1403
  }>;
1400
- };
1404
+ } & TestID;
1401
1405
  declare type ButtonWithoutIconProps = ButtonCommonProps & {
1402
1406
  icon?: undefined;
1403
1407
  children: StringChildrenType;
@@ -1447,7 +1451,7 @@ type BaseTextProps$1 = {
1447
1451
  */
1448
1452
  numberOfLines?: number;
1449
1453
  componentName?: 'text' | 'title' | 'heading' | 'code';
1450
- };
1454
+ } & TestID;
1451
1455
 
1452
1456
  /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */
1453
1457
 
@@ -1462,7 +1466,8 @@ type TextCommonProps$1 = {
1462
1466
  * **For Internal use only**: Sets the color of the Text component
1463
1467
  */
1464
1468
  color?: BaseTextProps$1['color'];
1465
- };
1469
+ textAlign?: BaseTextProps$1['textAlign'];
1470
+ } & TestID;
1466
1471
 
1467
1472
  type TextVariant$1 = 'body' | 'caption';
1468
1473
 
@@ -1518,7 +1523,7 @@ type CounterProps$1 = {
1518
1523
  * @default 'medium'
1519
1524
  */
1520
1525
  size?: 'small' | 'medium' | 'large';
1521
- };
1526
+ } & TestID;
1522
1527
 
1523
1528
  declare const CardHeaderIcon: WithComponentId<{
1524
1529
  icon: IconComponent$1;
@@ -1535,7 +1540,7 @@ declare type CardHeaderIconButtonProps = Omit<ButtonProps, 'variant' | 'size' |
1535
1540
  declare const CardHeaderIconButton: WithComponentId<CardHeaderIconButtonProps>;
1536
1541
  declare type CardHeaderProps = {
1537
1542
  children?: React__default.ReactNode;
1538
- };
1543
+ } & TestID;
1539
1544
  declare const CardHeader: WithComponentId<CardHeaderProps>;
1540
1545
  declare type CardHeaderLeadingProps = {
1541
1546
  title: string;
@@ -1569,7 +1574,7 @@ declare type CardFooterAction = Pick<ButtonProps, 'type' | 'accessibilityLabel'
1569
1574
  };
1570
1575
  declare type CardFooterProps = {
1571
1576
  children?: React__default.ReactNode;
1572
- };
1577
+ } & TestID;
1573
1578
  declare const CardFooter: WithComponentId<CardFooterProps>;
1574
1579
  declare type CardFooterLeadingProps = {
1575
1580
  title?: string;
@@ -1641,8 +1646,8 @@ declare type CounterProps = {
1641
1646
  * @default 'medium'
1642
1647
  */
1643
1648
  size?: 'small' | 'medium' | 'large';
1644
- };
1645
- declare const Counter: ({ value, max, intent, contrast, size, }: CounterProps) => React.ReactElement;
1649
+ } & TestID;
1650
+ declare const Counter: ({ value, max, intent, contrast, size, testID, }: CounterProps) => React.ReactElement;
1646
1651
 
1647
1652
  declare type OnChange = ({ isChecked, event, value, }: {
1648
1653
  isChecked: boolean;
@@ -1727,8 +1732,86 @@ declare type CheckboxProps = {
1727
1732
  *
1728
1733
  */
1729
1734
  tabIndex?: number;
1730
- };
1731
- declare const Checkbox: React__default.ForwardRefExoticComponent<CheckboxProps & React__default.RefAttributes<BladeElementRef>>;
1735
+ } & TestID;
1736
+ declare const Checkbox: React__default.ForwardRefExoticComponent<{
1737
+ /**
1738
+ * If `true`, The checkbox will be checked. This also makes the checkbox controlled
1739
+ * Use `onChange` to update its value
1740
+ *
1741
+ * @default false
1742
+ */
1743
+ isChecked?: boolean | undefined;
1744
+ /**
1745
+ * If `true`, the checkbox will be initially checked. This also makes the checkbox uncontrolled
1746
+ *
1747
+ * @default false
1748
+ */
1749
+ defaultChecked?: boolean | undefined;
1750
+ /**
1751
+ * The callback invoked when the checked state of the `Checkbox` changes.
1752
+ */
1753
+ onChange?: OnChange | undefined;
1754
+ /**
1755
+ * Sets the label of the checkbox
1756
+ */
1757
+ children: React__default.ReactNode;
1758
+ /**
1759
+ * Help text for the checkbox
1760
+ */
1761
+ helpText?: string | undefined;
1762
+ /**
1763
+ * Error text for the checkbox
1764
+ *
1765
+ * Renders when `validationState` is set to 'error'
1766
+ */
1767
+ errorText?: string | undefined;
1768
+ /**
1769
+ * If `true`, the checkbox will be indeterminate.
1770
+ * This does not modify the isChecked property.
1771
+ *
1772
+ * @default false
1773
+ */
1774
+ isIndeterminate?: boolean | undefined;
1775
+ /**
1776
+ * The name of the input field in a checkbox
1777
+ * (Useful for form submission).
1778
+ */
1779
+ name?: string | undefined;
1780
+ /**
1781
+ * The value to be used in the checkbox input.
1782
+ * This is the value that will be returned on form submission.
1783
+ */
1784
+ value?: string | undefined;
1785
+ /**
1786
+ * If `true`, the checkbox will be disabled
1787
+ *
1788
+ * @default false
1789
+ */
1790
+ isDisabled?: boolean | undefined;
1791
+ /**
1792
+ * If `true`, the checkbox input is marked as required,
1793
+ * and `required` attribute will be added
1794
+ *
1795
+ * @default false
1796
+ */
1797
+ isRequired?: boolean | undefined;
1798
+ /**
1799
+ * If `error`, the checkbox input is marked as invalid,
1800
+ * and `invalid` attribute will be added
1801
+ */
1802
+ validationState?: "none" | "error" | undefined;
1803
+ /**
1804
+ * Size of the checkbox
1805
+ *
1806
+ * @default "medium"
1807
+ */
1808
+ size?: "small" | "medium" | undefined;
1809
+ /**
1810
+ * Sets the tab-index property on checkbox element
1811
+ *
1812
+ */
1813
+ tabIndex?: number | undefined;
1814
+ } & TestID & React__default.RefAttributes<BladeElementRef>>;
1732
1815
 
1733
1816
  declare type CheckboxGroupProps = {
1734
1817
  /**
@@ -1803,8 +1886,8 @@ declare type CheckboxGroupProps = {
1803
1886
  * @default "medium"
1804
1887
  */
1805
1888
  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;
1889
+ } & TestID;
1890
+ declare const CheckboxGroup: ({ children, label, helpText, isDisabled, necessityIndicator, labelPosition, validationState, errorText, name, defaultValue, onChange, value, size, testID, }: CheckboxGroupProps) => React__default.ReactElement;
1808
1891
 
1809
1892
  declare type DropdownProps = {
1810
1893
  selectionType?: 'single' | 'multiple';
@@ -1840,7 +1923,7 @@ declare const Dropdown: WithComponentId<DropdownProps>;
1840
1923
 
1841
1924
  declare type DropdownOverlayProps = {
1842
1925
  children: React__default.ReactNode;
1843
- };
1926
+ } & TestID;
1844
1927
 
1845
1928
  /**
1846
1929
  * Overlay of dropdown
@@ -2654,10 +2737,14 @@ declare type BaseInputProps = FormInputLabelProps & FormInputValidationProps & {
2654
2737
  * true if popup is in expanded state
2655
2738
  */
2656
2739
  isPopupExpanded?: boolean;
2657
- };
2740
+ /**
2741
+ * sets the autocapitalize behavior for the input
2742
+ */
2743
+ autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';
2744
+ } & TestID;
2658
2745
 
2659
2746
  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'> & {
2747
+ 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' | 'autoCapitalize' | 'testID'> & {
2661
2748
  /**
2662
2749
  * Decides whether to render a clear icon button
2663
2750
  */
@@ -2681,7 +2768,7 @@ declare type TextInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | '
2681
2768
  */
2682
2769
  type?: Type;
2683
2770
  };
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"> & {
2771
+ declare const TextInput: React__default.ForwardRefExoticComponent<Pick<BaseInputProps, "testID" | "placeholder" | "label" | "value" | "name" | "onBlur" | "onFocus" | "defaultValue" | "prefix" | "autoCapitalize" | "onChange" | "isDisabled" | "autoFocus" | "labelPosition" | "validationState" | "helpText" | "errorText" | "necessityIndicator" | "successText" | "isRequired" | "suffix" | "maxCharacters" | "keyboardReturnKeyType" | "autoCompleteSuggestionType"> & {
2685
2772
  /**
2686
2773
  * Decides whether to render a clear icon button
2687
2774
  */
@@ -2736,10 +2823,10 @@ declare type PasswordInputExtraProps = {
2736
2823
  */
2737
2824
  autoCompleteSuggestionType?: Extract<BaseInputProps['autoCompleteSuggestionType'], 'none' | 'password' | 'newPassword'>;
2738
2825
  };
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>>;
2826
+ declare type PasswordInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'maxCharacters' | 'validationState' | 'errorText' | 'successText' | 'helpText' | 'isDisabled' | 'defaultValue' | 'placeholder' | 'isRequired' | 'value' | 'onChange' | 'onBlur' | 'onFocus' | 'name' | 'autoFocus' | 'keyboardReturnKeyType' | 'autoCompleteSuggestionType' | 'testID'> & PasswordInputExtraProps;
2827
+ declare const PasswordInput: React__default.ForwardRefExoticComponent<Pick<BaseInputProps, "testID" | "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
2828
 
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'> & {
2829
+ declare type TextAreaProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'necessityIndicator' | 'validationState' | 'helpText' | 'errorText' | 'successText' | 'placeholder' | 'defaultValue' | 'name' | 'onChange' | 'onFocus' | 'onBlur' | 'value' | 'isDisabled' | 'isRequired' | 'maxCharacters' | 'autoFocus' | 'numberOfLines' | 'testID'> & {
2743
2830
  /**
2744
2831
  * Decides whether to render a clear icon button
2745
2832
  */
@@ -2749,7 +2836,7 @@ declare type TextAreaProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'n
2749
2836
  */
2750
2837
  onClearButtonClick?: () => void;
2751
2838
  };
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"> & {
2839
+ declare const TextArea: React__default.ForwardRefExoticComponent<Pick<BaseInputProps, "testID" | "placeholder" | "label" | "value" | "name" | "onBlur" | "onFocus" | "numberOfLines" | "defaultValue" | "onChange" | "isDisabled" | "autoFocus" | "labelPosition" | "validationState" | "helpText" | "errorText" | "necessityIndicator" | "successText" | "isRequired" | "maxCharacters"> & {
2753
2840
  /**
2754
2841
  * Decides whether to render a clear icon button
2755
2842
  */
@@ -2760,7 +2847,7 @@ declare const TextArea: React__default.ForwardRefExoticComponent<Pick<BaseInputP
2760
2847
  onClearButtonClick?: (() => void) | undefined;
2761
2848
  } & React__default.RefAttributes<BladeElementRef>>;
2762
2849
 
2763
- declare type OTPInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'validationState' | 'helpText' | 'errorText' | 'successText' | 'name' | 'onChange' | 'value' | 'isDisabled' | 'autoFocus' | 'keyboardReturnKeyType' | 'keyboardType' | 'placeholder'> & {
2850
+ declare type OTPInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'validationState' | 'helpText' | 'errorText' | 'successText' | 'name' | 'onChange' | 'value' | 'isDisabled' | 'autoFocus' | 'keyboardReturnKeyType' | 'keyboardType' | 'placeholder' | 'testID'> & {
2764
2851
  /**
2765
2852
  * Determines the number of input fields to show for the OTP
2766
2853
  * @default 6
@@ -2803,9 +2890,9 @@ declare type OTPInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'v
2803
2890
  * />
2804
2891
  * ```
2805
2892
  */
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;
2893
+ declare const OTPInput: ({ autoFocus, errorText, helpText, isDisabled, keyboardReturnKeyType, keyboardType, label, labelPosition, name, onChange, onOTPFilled, otpLength, placeholder, successText, validationState, value, isMasked, autoCompleteSuggestionType, testID, }: OTPInputProps) => React__default.ReactElement;
2807
2894
 
2808
- declare type SelectInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'necessityIndicator' | 'validationState' | 'helpText' | 'errorText' | 'successText' | 'name' | 'isDisabled' | 'isRequired' | 'prefix' | 'suffix' | 'autoFocus' | 'onClick' | 'onFocus' | 'onBlur' | 'placeholder'> & {
2895
+ declare type SelectInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' | 'necessityIndicator' | 'validationState' | 'helpText' | 'errorText' | 'successText' | 'name' | 'isDisabled' | 'isRequired' | 'prefix' | 'suffix' | 'autoFocus' | 'onClick' | 'onFocus' | 'onBlur' | 'placeholder' | 'testID'> & {
2809
2896
  icon?: IconComponent$1;
2810
2897
  onChange?: ({ name, values }: {
2811
2898
  name?: string;
@@ -2839,7 +2926,7 @@ declare type SelectInputProps = Pick<BaseInputProps, 'label' | 'labelPosition' |
2839
2926
  *
2840
2927
  * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-select--with-single-select SelectInput Documentation}.
2841
2928
  */
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"> & {
2929
+ 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
2930
  icon?: IconComponent$1 | undefined;
2844
2931
  onChange?: (({ name, values }: {
2845
2932
  name?: string | undefined;
@@ -2860,7 +2947,7 @@ declare type IndicatorCommonProps = {
2860
2947
  * @default medium
2861
2948
  */
2862
2949
  size?: 'small' | 'medium' | 'large';
2863
- };
2950
+ } & TestID;
2864
2951
  declare type IndicatorWithoutA11yLabel = {
2865
2952
  /**
2866
2953
  * A text label to show alongside the indicator dot
@@ -2882,7 +2969,7 @@ declare type IndicatorWithA11yLabel = {
2882
2969
  children?: StringChildrenType;
2883
2970
  };
2884
2971
  declare type IndicatorProps = IndicatorCommonProps & (IndicatorWithA11yLabel | IndicatorWithoutA11yLabel);
2885
- declare const Indicator: ({ accessibilityLabel, children, size, intent, }: IndicatorProps) => ReactElement;
2972
+ declare const Indicator: ({ accessibilityLabel, children, size, intent, testID, }: IndicatorProps) => ReactElement;
2886
2973
 
2887
2974
  declare type ListItemProps = {
2888
2975
  /**
@@ -2900,9 +2987,9 @@ declare type ListItemProps = {
2900
2987
  *
2901
2988
  */
2902
2989
  _itemNumber?: undefined;
2903
- };
2990
+ } & TestID;
2904
2991
  declare const ListItem: {
2905
- ({ children, icon, _itemNumber }: ListItemProps): React__default.ReactElement;
2992
+ ({ children, icon, _itemNumber, testID, }: ListItemProps): React__default.ReactElement;
2906
2993
  componentId: string;
2907
2994
  };
2908
2995
 
@@ -2924,7 +3011,7 @@ declare type ListCommonProps = {
2924
3011
  * @default 'medium'
2925
3012
  */
2926
3013
  size?: 'small' | 'medium';
2927
- };
3014
+ } & TestID;
2928
3015
  declare type ListWithIconProps = ListCommonProps & {
2929
3016
  variant?: 'unordered';
2930
3017
  icon?: IconComponent;
@@ -2955,13 +3042,13 @@ declare type ListProps = ListWithIconProps | ListWithoutIconProps;
2955
3042
  * ```
2956
3043
  */
2957
3044
  declare const List: {
2958
- ({ variant, size, children, icon }: ListProps): React__default.ReactElement;
3045
+ ({ variant, size, children, icon, testID, }: ListProps): React__default.ReactElement;
2959
3046
  componentId: string;
2960
3047
  };
2961
3048
 
2962
3049
  declare type ListItemLinkProps = Exclude<LinkProps, 'size' | 'variant' | 'isDisabled'>;
2963
3050
  declare const ListItemLink: {
2964
- ({ accessibilityLabel, children, href, icon, iconPosition, onClick, rel, target, }: ListItemLinkProps): React.ReactElement;
3051
+ ({ accessibilityLabel, children, href, icon, iconPosition, onClick, rel, target, testID, }: ListItemLinkProps): React.ReactElement;
2965
3052
  componentId: string;
2966
3053
  };
2967
3054
 
@@ -2970,8 +3057,8 @@ declare type TitleProps = {
2970
3057
  contrast?: ColorContrastTypes;
2971
3058
  type?: TextTypes;
2972
3059
  children: StringChildrenType;
2973
- };
2974
- declare const Title: ({ size, type, contrast, children, }: TitleProps) => ReactElement;
3060
+ } & TestID;
3061
+ declare const Title: ({ size, type, contrast, children, testID, }: TitleProps) => ReactElement;
2975
3062
 
2976
3063
  declare type HeadingVariant = 'regular' | 'subheading';
2977
3064
  declare type HeadingSize = 'small' | 'medium' | 'large';
@@ -2979,7 +3066,7 @@ declare type HeadingCommonProps = {
2979
3066
  type?: TextTypes;
2980
3067
  contrast?: ColorContrastTypes;
2981
3068
  children: StringChildrenType;
2982
- };
3069
+ } & TestID;
2983
3070
  declare type HeadingNormalVariant = HeadingCommonProps & {
2984
3071
  variant?: Exclude<HeadingVariant, 'subheading'>;
2985
3072
  /**
@@ -3006,7 +3093,7 @@ declare type HeadingProps<T> = T extends {
3006
3093
  } ? Variant extends Exclude<HeadingVariant, 'subheading'> ? HeadingNormalVariant : Variant extends 'subheading' ? HeadingSubHeadingVariant : T : T;
3007
3094
  declare const Heading: <T extends {
3008
3095
  variant: HeadingVariant;
3009
- }>({ variant, size, type, weight, contrast, children, }: HeadingProps<T>) => ReactElement;
3096
+ }>({ variant, size, type, weight, contrast, children, testID, }: HeadingProps<T>) => ReactElement;
3010
3097
 
3011
3098
  declare type FeedbackColors = `feedback.text.${DotNotationColorStringToken<Theme$1['colors']['feedback']['text']>}`;
3012
3099
  declare type FeedbackActionColors = `feedback.${Feedback}.action.text.${DotNotationColorStringToken<Theme$1['colors']['feedback'][Feedback]['action']['text']>}`;
@@ -3037,7 +3124,7 @@ declare type BaseTextProps = {
3037
3124
  */
3038
3125
  numberOfLines?: number;
3039
3126
  componentName?: 'text' | 'title' | 'heading' | 'code';
3040
- };
3127
+ } & TestID;
3041
3128
 
3042
3129
  declare type TextCommonProps = {
3043
3130
  type?: TextTypes;
@@ -3049,7 +3136,8 @@ declare type TextCommonProps = {
3049
3136
  * **For Internal use only**: Sets the color of the Text component
3050
3137
  */
3051
3138
  color?: BaseTextProps['color'];
3052
- };
3139
+ textAlign?: BaseTextProps['textAlign'];
3140
+ } & TestID;
3053
3141
  declare type TextVariant = 'body' | 'caption';
3054
3142
  declare type TextBodyVariant = TextCommonProps & {
3055
3143
  variant?: Extract<TextVariant, 'body'>;
@@ -3071,10 +3159,10 @@ declare type TextForwardedAs = {
3071
3159
  };
3072
3160
  declare const getTextProps: <T extends {
3073
3161
  variant: TextVariant;
3074
- }>({ variant, type, weight, size, contrast, }: Pick<TextProps<T>, "size" | "variant" | "type" | "weight" | "contrast">) => Omit<BaseTextProps, 'children'> & TextForwardedAs;
3162
+ }>({ variant, type, weight, size, contrast, testID, textAlign, }: Pick<TextProps<T>, "testID" | "size" | "variant" | "type" | "weight" | "textAlign" | "contrast">) => Omit<BaseTextProps, 'children'> & TextForwardedAs;
3075
3163
  declare const Text: <T extends {
3076
3164
  variant: TextVariant;
3077
- }>({ variant, weight, size, type, contrast, truncateAfterLines, children, color, }: TextProps<T>) => ReactElement;
3165
+ }>({ variant, weight, size, type, contrast, truncateAfterLines, children, color, testID, textAlign, }: TextProps<T>) => ReactElement;
3078
3166
 
3079
3167
  declare type CodeProps = {
3080
3168
  children: StringChildrenType;
@@ -3084,7 +3172,7 @@ declare type CodeProps = {
3084
3172
  * @default small
3085
3173
  */
3086
3174
  size?: 'small' | 'medium';
3087
- };
3175
+ } & TestID;
3088
3176
  /**
3089
3177
  * Code component can be used for displaying token, variable names, or inlined code snippets.
3090
3178
  *
@@ -3111,11 +3199,11 @@ declare type CodeProps = {
3111
3199
  * </BaseBox>
3112
3200
  * ```
3113
3201
  */
3114
- declare const Code: ({ children, size }: CodeProps) => JSX.Element;
3202
+ declare const Code: ({ children, size, testID }: CodeProps) => JSX.Element;
3115
3203
 
3116
3204
  declare type ListItemCodeProps = Exclude<CodeProps, 'size'>;
3117
3205
  declare const ListItemCode: {
3118
- ({ children }: ListItemCodeProps): React.ReactElement;
3206
+ ({ children, testID }: ListItemCodeProps): React.ReactElement;
3119
3207
  componentId: string;
3120
3208
  };
3121
3209
 
@@ -3163,7 +3251,7 @@ declare type ProgressBarCommonProps = {
3163
3251
  * @default 100
3164
3252
  */
3165
3253
  max?: number;
3166
- };
3254
+ } & TestID;
3167
3255
  declare type ProgressBarVariant = 'progress' | 'meter';
3168
3256
  declare type ProgressBarProgressProps = ProgressBarCommonProps & {
3169
3257
  /**
@@ -3200,7 +3288,7 @@ declare type ProgressBarMeterProps = ProgressBarCommonProps & {
3200
3288
  showPercentage?: undefined;
3201
3289
  };
3202
3290
  declare type ProgressBarProps = ProgressBarProgressProps | ProgressBarMeterProps;
3203
- declare const ProgressBar: ({ accessibilityLabel, contrast, intent, isIndeterminate, label, showPercentage, size, value, variant, min, max, }: ProgressBarProps) => ReactElement;
3291
+ declare const ProgressBar: ({ accessibilityLabel, contrast, intent, isIndeterminate, label, showPercentage, size, value, variant, min, max, testID, }: ProgressBarProps) => ReactElement;
3204
3292
 
3205
3293
  declare type RadioProps = {
3206
3294
  /**
@@ -3228,8 +3316,34 @@ declare type RadioProps = {
3228
3316
  * @default "medium"
3229
3317
  */
3230
3318
  size?: 'small' | 'medium';
3231
- };
3232
- declare const Radio: React__default.ForwardRefExoticComponent<RadioProps & React__default.RefAttributes<BladeElementRef>>;
3319
+ } & TestID;
3320
+ declare const Radio: React__default.ForwardRefExoticComponent<{
3321
+ /**
3322
+ * Sets the label text of the Radio
3323
+ */
3324
+ children: StringChildrenType;
3325
+ /**
3326
+ * Help text for the Radio
3327
+ */
3328
+ helpText?: string | undefined;
3329
+ /**
3330
+ * The value to be used in the Radio input.
3331
+ * This is the value that will be returned on form submission.
3332
+ */
3333
+ value: string;
3334
+ /**
3335
+ * If `true`, the Radio will be disabled
3336
+ *
3337
+ * @default false
3338
+ */
3339
+ isDisabled?: boolean | undefined;
3340
+ /**
3341
+ * Size of the radios
3342
+ *
3343
+ * @default "medium"
3344
+ */
3345
+ size?: "small" | "medium" | undefined;
3346
+ } & TestID & React__default.RefAttributes<BladeElementRef>>;
3233
3347
 
3234
3348
  declare type RadioGroupProps = {
3235
3349
  /**
@@ -3304,8 +3418,8 @@ declare type RadioGroupProps = {
3304
3418
  * @default "medium"
3305
3419
  */
3306
3420
  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;
3421
+ } & TestID;
3422
+ declare const RadioGroup: ({ children, label, helpText, isDisabled, necessityIndicator, labelPosition, validationState, errorText, name, defaultValue, onChange, value, size, testID, }: RadioGroupProps) => React__default.ReactElement;
3309
3423
 
3310
3424
  declare type BaseSpinnerProps = {
3311
3425
  intent?: Feedback;
@@ -3337,10 +3451,10 @@ declare type BaseSpinnerProps = {
3337
3451
  *
3338
3452
  */
3339
3453
  accessibilityLabel: string;
3340
- };
3454
+ } & TestID;
3341
3455
 
3342
3456
  declare type SpinnerProps = Omit<BaseSpinnerProps, 'intent'>;
3343
- declare const Spinner: ({ label, labelPosition, accessibilityLabel, contrast, size, }: SpinnerProps) => React.ReactElement;
3457
+ declare const Spinner: ({ label, labelPosition, accessibilityLabel, contrast, size, testID, }: SpinnerProps) => React.ReactElement;
3344
3458
 
3345
3459
  declare type SkipNavLinkProps = {
3346
3460
  id?: string;
@@ -3351,9 +3465,9 @@ declare const SkipNavContent: (_props: SkipNavLinkProps) => never;
3351
3465
 
3352
3466
  declare type VisuallyHiddenProps = {
3353
3467
  children: React.ReactNode;
3354
- };
3468
+ } & TestID;
3355
3469
 
3356
- declare const VisuallyHidden: ({ children }: VisuallyHiddenProps) => JSX.Element;
3470
+ declare const VisuallyHidden: ({ children, testID }: VisuallyHiddenProps) => JSX.Element;
3357
3471
 
3358
3472
  /**
3359
3473
  * Screen reader class adapted from webaim