@razorpay/blade 5.2.1 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @razorpay/blade
2
2
 
3
+ ## 5.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 26baa81: feat(blade): added Card component
8
+
3
9
  ## 5.2.1
4
10
 
5
11
  ### Patch Changes
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import * as React$1 from 'react';
3
- import React__default, { ReactChild, ReactElement, ReactNode, KeyboardEvent, SyntheticEvent } from 'react';
3
+ import React__default, { ReactChild, ReactElement, ReactNode, SyntheticEvent, KeyboardEvent } from 'react';
4
4
  import { AccessibilityRole, GestureResponderEvent } from 'react-native';
5
5
  import { CSSObject } from 'styled-components';
6
6
 
@@ -240,6 +240,16 @@ type DotNotationColorStringToken<TokenType> = {
240
240
  : DotNotationColorStringToken<TokenType[K]>}`;
241
241
  }[keyof TokenType];
242
242
 
243
+ /* eslint-disable @typescript-eslint/no-explicit-any */
244
+
245
+
246
+ /**
247
+ * A type defining React component with additional static prop `componentId`
248
+ */
249
+ type WithComponentId<Props> = ((props: Props) => React__default.ReactElement) & {
250
+ componentId: string;
251
+ };
252
+
243
253
  // All the WAI-ARIA 1.1 role attribute values from https://www.w3.org/TR/wai-aria-1.1/#role_definitions
244
254
  type AriaRoles =
245
255
  | Exclude<AccessibilityRole, 'header' | 'adjustable' | 'image' | 'none' | 'summary'>
@@ -1039,6 +1049,75 @@ declare type Theme = {
1039
1049
  typography: Typography;
1040
1050
  };
1041
1051
 
1052
+ declare type CardProps = {
1053
+ /**
1054
+ * Card contents
1055
+ */
1056
+ children: React__default.ReactNode;
1057
+ /**
1058
+ * Sets the background color of the Card according to the surface level tokens
1059
+ *
1060
+ * eg: `theme.colors.surface.background.level1`
1061
+ *
1062
+ * **Description:**
1063
+ *
1064
+ * - 2: Used in layouts which are on top of the main background
1065
+ * - 3: Used over the cards template or as a text input backgrounds.
1066
+ *
1067
+ * **Links:**
1068
+ * - Docs: https://blade.razorpay.com/?path=/docs/tokens-colors--page#-theme-tokens
1069
+ * - Figma: https://shorturl.at/fsvwK
1070
+ */
1071
+ surfaceLevel: 2 | 3;
1072
+ };
1073
+ declare const Card: ({ children, surfaceLevel }: CardProps) => React__default.ReactElement;
1074
+ declare type CardBodyProps = {
1075
+ children: React__default.ReactNode;
1076
+ };
1077
+ declare const CardBody: ({ children }: CardBodyProps) => React__default.ReactElement;
1078
+
1079
+ declare type LinkCommonProps = {
1080
+ variant?: 'anchor' | 'button';
1081
+ icon?: IconComponent$1;
1082
+ iconPosition?: 'left' | 'right';
1083
+ isDisabled?: boolean;
1084
+ onClick?: (event: SyntheticEvent) => void;
1085
+ href?: string;
1086
+ target?: string;
1087
+ accessibilityLabel?: string;
1088
+ /**
1089
+ * Sets the size of the link
1090
+ *
1091
+ * @default medium
1092
+ */
1093
+ size?: 'small' | 'medium';
1094
+ };
1095
+ declare type LinkWithoutIconProps = LinkCommonProps & {
1096
+ icon?: undefined;
1097
+ children: string;
1098
+ };
1099
+ declare type LinkWithIconProps = LinkCommonProps & {
1100
+ icon: IconComponent$1;
1101
+ children?: string;
1102
+ };
1103
+ declare type LinkPropsWithOrWithoutIcon = LinkWithIconProps | LinkWithoutIconProps;
1104
+ declare type LinkAnchorVariantProps = LinkPropsWithOrWithoutIcon & {
1105
+ variant?: 'anchor';
1106
+ href?: string;
1107
+ target?: string;
1108
+ rel?: string;
1109
+ isDisabled?: undefined;
1110
+ };
1111
+ declare type LinkButtonVariantProps = LinkPropsWithOrWithoutIcon & {
1112
+ variant?: 'button';
1113
+ isDisabled?: boolean;
1114
+ href?: undefined;
1115
+ target?: undefined;
1116
+ rel?: undefined;
1117
+ };
1118
+ declare type LinkProps = LinkAnchorVariantProps | LinkButtonVariantProps;
1119
+ declare const Link: ({ children, icon, iconPosition, isDisabled, onClick, variant, href, target, rel, accessibilityLabel, size, }: LinkProps) => ReactElement;
1120
+
1042
1121
  declare type ButtonCommonProps = {
1043
1122
  variant?: 'primary' | 'secondary' | 'tertiary';
1044
1123
  size?: 'xsmall' | 'small' | 'medium' | 'large';
@@ -1064,6 +1143,181 @@ declare type ButtonWithIconProps = ButtonCommonProps & {
1064
1143
  declare type ButtonProps = ButtonWithoutIconProps | ButtonWithIconProps;
1065
1144
  declare const Button: ({ children, icon, iconPosition, isDisabled, isFullWidth, isLoading, onClick, size, type, variant, accessibilityLabel, }: ButtonProps) => React.ReactElement;
1066
1145
 
1146
+ type FeedbackColors$1 = `feedback.text.${DotNotationColorStringToken<
1147
+ Theme$1['colors']['feedback']['text']
1148
+ >}`;
1149
+ type FeedbackActionColors$1 = `feedback.${Feedback}.action.text.${DotNotationColorStringToken<
1150
+ Theme$1['colors']['feedback'][Feedback]['action']['text']
1151
+ >}`;
1152
+ type SurfaceColors$1 = `surface.text.${DotNotationColorStringToken<
1153
+ Theme$1['colors']['surface']['text']
1154
+ >}`;
1155
+ type ActionColors$1 = `action.text.${DotNotationColorStringToken<Theme$1['colors']['action']['text']>}`;
1156
+ type BadgeTextColors$1 = `badge.text.${DotNotationColorStringToken<
1157
+ Theme$1['colors']['badge']['text']
1158
+ >}`;
1159
+
1160
+ type BaseTextProps$1 = {
1161
+ id?: string;
1162
+ color?: ActionColors$1 | FeedbackColors$1 | SurfaceColors$1 | FeedbackActionColors$1 | BadgeTextColors$1;
1163
+ fontFamily?: keyof Theme$1['typography']['fonts']['family'];
1164
+ fontSize?: keyof Theme$1['typography']['fonts']['size'];
1165
+ fontWeight?: keyof Theme$1['typography']['fonts']['weight'];
1166
+ fontStyle?: 'italic' | 'normal';
1167
+ textDecorationLine?: 'line-through' | 'none' | 'underline';
1168
+ lineHeight?: keyof Theme$1['typography']['lineHeights'];
1169
+ /**
1170
+ * Web only
1171
+ */
1172
+ as?: 'code' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span';
1173
+ textAlign?: 'center' | 'justify' | 'left' | 'right';
1174
+ truncateAfterLines?: number;
1175
+ className?: string;
1176
+ style?: React.CSSProperties;
1177
+ children: React.ReactNode;
1178
+ accessibilityProps?: Partial<AccessibilityProps>;
1179
+ /**
1180
+ * React Native only
1181
+ */
1182
+ numberOfLines?: number;
1183
+ componentName?: 'text' | 'title' | 'heading' | 'code';
1184
+ };
1185
+
1186
+ /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */
1187
+
1188
+
1189
+ type TextCommonProps$1 = {
1190
+ type?: TextTypes;
1191
+ contrast?: ColorContrastTypes;
1192
+ truncateAfterLines?: number;
1193
+ children: React.ReactNode;
1194
+ weight?: keyof Theme$1['typography']['fonts']['weight'];
1195
+ /**
1196
+ * **For Internal use only**: Sets the color of the Text component
1197
+ */
1198
+ color?: BaseTextProps$1['color'];
1199
+ };
1200
+
1201
+ type TextVariant$1 = 'body' | 'caption';
1202
+
1203
+ type TextBodyVariant$1 = TextCommonProps$1 & {
1204
+ variant?: Extract<TextVariant$1, 'body'>;
1205
+ size?: 'small' | 'medium';
1206
+ };
1207
+
1208
+ type TextCaptionVariant$1 = TextCommonProps$1 & {
1209
+ variant?: Extract<TextVariant$1, 'caption'>;
1210
+ size?: 'medium';
1211
+ };
1212
+
1213
+ /**
1214
+ * Conditionally changing props based on variant.
1215
+ * Overloads or union gives wrong intellisense.
1216
+ */
1217
+ type TextProps$1<T> = T extends {
1218
+ variant: infer Variant;
1219
+ }
1220
+ ? Variant extends 'caption'
1221
+ ? TextCaptionVariant$1
1222
+ : Variant extends 'body'
1223
+ ? TextBodyVariant$1
1224
+ : T
1225
+ : T;
1226
+
1227
+ type CounterProps$1 = {
1228
+ /**
1229
+ * Sets the value for the counter.
1230
+ */
1231
+ value: number;
1232
+ /**
1233
+ * Sets the max value for the counter.
1234
+ * If value exceedes `max` it will render `value+`
1235
+ */
1236
+ max?: number;
1237
+ /**
1238
+ * Sets the intent of the counter.
1239
+ *
1240
+ * @default 'neutral'
1241
+ */
1242
+ intent?: Feedback;
1243
+ /**
1244
+ * Sets the contrast of the counter.
1245
+ *
1246
+ * @default 'low'
1247
+ */
1248
+ contrast?: 'high' | 'low';
1249
+ /**
1250
+ * Sets the size of the counter.
1251
+ *
1252
+ * @default 'medium'
1253
+ */
1254
+ size?: 'small' | 'medium' | 'large';
1255
+ };
1256
+
1257
+ declare const CardHeaderIcon: WithComponentId<{
1258
+ icon: IconComponent$1;
1259
+ }>;
1260
+ declare const CardHeaderCounter: WithComponentId<CounterProps$1>;
1261
+ declare const CardHeaderBadge: WithComponentId<BadgeProps>;
1262
+ declare const CardHeaderText: WithComponentId<TextProps$1<{
1263
+ variant: TextVariant$1;
1264
+ }>>;
1265
+ declare const CardHeaderLink: WithComponentId<LinkProps>;
1266
+ declare type CardHeaderIconButtonProps = Omit<ButtonProps, 'variant' | 'size' | 'iconPosition' | 'isFullWidth' | 'children'> & {
1267
+ icon: IconComponent$1;
1268
+ };
1269
+ declare const CardHeaderIconButton: WithComponentId<CardHeaderIconButtonProps>;
1270
+ declare type CardHeaderProps = {
1271
+ children?: React__default.ReactNode;
1272
+ };
1273
+ declare const CardHeader: ({ children }: CardHeaderProps) => React__default.ReactElement;
1274
+ declare type CardHeaderLeadingProps = {
1275
+ title: string;
1276
+ subtitle?: string;
1277
+ /**
1278
+ * prefix element of Card
1279
+ *
1280
+ * Accepts: `CardHeaderIcon` component
1281
+ */
1282
+ prefix?: React__default.ReactNode;
1283
+ /**
1284
+ * suffix element of Card
1285
+ *
1286
+ * Accepts: `CardHeaderCounter` component
1287
+ */
1288
+ suffix?: React__default.ReactNode;
1289
+ };
1290
+ declare const CardHeaderLeading: ({ title, subtitle, prefix, suffix, }: CardHeaderLeadingProps) => React__default.ReactElement;
1291
+ declare type CardHeaderTrailingProps = {
1292
+ /**
1293
+ * Renders a visual ornament in card header trailing section
1294
+ *
1295
+ * Accepts: `CardHeaderLink`, `CardHeaderText`, `CardHeaderIconButton`, `CardHeaderBadge`
1296
+ */
1297
+ visual?: React__default.ReactNode;
1298
+ };
1299
+ declare const CardHeaderTrailing: ({ visual }: CardHeaderTrailingProps) => React__default.ReactElement;
1300
+
1301
+ declare type CardFooterAction = Pick<ButtonProps, 'type' | 'accessibilityLabel' | 'isLoading' | 'isDisabled' | 'icon' | 'iconPosition' | 'onClick'> & {
1302
+ text: ButtonProps['children'];
1303
+ };
1304
+ declare type CardFooterProps = {
1305
+ children?: React.ReactNode;
1306
+ };
1307
+ declare const CardFooter: ({ children }: CardFooterProps) => React.ReactElement;
1308
+ declare type CardFooterLeadingProps = {
1309
+ title?: string;
1310
+ subtitle?: string;
1311
+ };
1312
+ declare const CardFooterLeading: ({ title, subtitle }: CardFooterLeadingProps) => React.ReactElement;
1313
+ declare type CardFooterTrailingProps = {
1314
+ actions?: {
1315
+ primary?: CardFooterAction;
1316
+ secondary?: CardFooterAction;
1317
+ };
1318
+ };
1319
+ declare const CardFooterTrailing: ({ actions }: CardFooterTrailingProps) => React.ReactElement;
1320
+
1067
1321
  declare type IconButtonProps = {
1068
1322
  /**
1069
1323
  * Icon component to be rendered, eg. `CloseIcon`
@@ -1740,48 +1994,6 @@ declare type IndicatorWithA11yLabel = {
1740
1994
  declare type IndicatorProps = IndicatorCommonProps & (IndicatorWithA11yLabel | IndicatorWithoutA11yLabel);
1741
1995
  declare const Indicator: ({ accessibilityLabel, children, size, intent, }: IndicatorProps) => ReactElement;
1742
1996
 
1743
- declare type LinkCommonProps = {
1744
- variant?: 'anchor' | 'button';
1745
- icon?: IconComponent$1;
1746
- iconPosition?: 'left' | 'right';
1747
- isDisabled?: boolean;
1748
- onClick?: (event: SyntheticEvent) => void;
1749
- href?: string;
1750
- target?: string;
1751
- accessibilityLabel?: string;
1752
- /**
1753
- * Sets the size of the link
1754
- *
1755
- * @default medium
1756
- */
1757
- size?: 'small' | 'medium';
1758
- };
1759
- declare type LinkWithoutIconProps = LinkCommonProps & {
1760
- icon?: undefined;
1761
- children: string;
1762
- };
1763
- declare type LinkWithIconProps = LinkCommonProps & {
1764
- icon: IconComponent$1;
1765
- children?: string;
1766
- };
1767
- declare type LinkPropsWithOrWithoutIcon = LinkWithIconProps | LinkWithoutIconProps;
1768
- declare type LinkAnchorVariantProps = LinkPropsWithOrWithoutIcon & {
1769
- variant?: 'anchor';
1770
- href?: string;
1771
- target?: string;
1772
- rel?: string;
1773
- isDisabled?: undefined;
1774
- };
1775
- declare type LinkButtonVariantProps = LinkPropsWithOrWithoutIcon & {
1776
- variant?: 'button';
1777
- isDisabled?: boolean;
1778
- href?: undefined;
1779
- target?: undefined;
1780
- rel?: undefined;
1781
- };
1782
- declare type LinkProps = LinkAnchorVariantProps | LinkButtonVariantProps;
1783
- declare const Link: ({ children, icon, iconPosition, isDisabled, onClick, variant, href, target, rel, accessibilityLabel, size, }: LinkProps) => ReactElement;
1784
-
1785
1997
  declare type Assertiveness = AriaAttributes['liveRegion'];
1786
1998
 
1787
1999
  /**
@@ -2103,4 +2315,4 @@ declare const VisuallyHidden: ({ children }: VisuallyHiddenProps) => JSX.Element
2103
2315
 
2104
2316
  declare const screenReaderStyles: CSSObject;
2105
2317
 
2106
- export { Alert, AlertTriangleIcon as AlertOctagonIcon, AlertProps, AlertTriangleIcon$1 as AlertTriangleIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, ArrowUpRightIcon, Badge, BadgeProps, BladeProvider, BladeProviderProps, Button, ButtonProps, CheckCircleIcon, CheckIcon, Checkbox, CheckboxGroup, CheckboxGroupProps, CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, Code, CodeProps, Counter, CounterProps, CreditCardIcon, DollarIcon, DownloadIcon, EditIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileTextIcon, Heading, HeadingProps, HelpCircleIcon, HistoryIcon, HomeIcon, IconButton, IconButtonProps, IconComponent, IconProps, IconSize, Indicator, IndicatorProps, InfoIcon, Link, LinkIcon, LinkProps, LockIcon, MailIcon, MinusIcon, OTPInput, OTPInputProps, PasswordInput, PasswordInputProps, PauseIcon, PlusIcon, Radio, RadioGroup, RadioGroupProps, RadioProps, RefreshLeftIcon, RotateCounterClockWiseIcon, RupeeIcon, SearchIcon, SettingsIcon, SkipNavContent, SkipNavLink, SlashIcon, Spinner, SpinnerProps, Text, TextArea, TextAreaProps, TextInput, TextInputProps, TextProps, TextVariant, Theme, Title, TitleProps, TrashIcon, TrendingDownIcon, TrendingUpIcon, UsersIcon, VisuallyHidden, VisuallyHiddenProps, announce, clearAnnouncer, destroyAnnouncer, getTextProps, screenReaderStyles, useTheme };
2318
+ export { Alert, AlertTriangleIcon as AlertOctagonIcon, AlertProps, AlertTriangleIcon$1 as AlertTriangleIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, ArrowUpRightIcon, Badge, BadgeProps, BladeProvider, BladeProviderProps, Button, ButtonProps, Card, CardBody, CardFooter, CardFooterAction, CardFooterLeading, CardFooterTrailing, CardHeader, CardHeaderBadge, CardHeaderCounter, CardHeaderIcon, CardHeaderIconButton, CardHeaderLeading, CardHeaderLink, CardHeaderText, CardHeaderTrailing, CardProps, CheckCircleIcon, CheckIcon, Checkbox, CheckboxGroup, CheckboxGroupProps, CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, Code, CodeProps, Counter, CounterProps, CreditCardIcon, DollarIcon, DownloadIcon, EditIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileTextIcon, Heading, HeadingProps, HelpCircleIcon, HistoryIcon, HomeIcon, IconButton, IconButtonProps, IconComponent, IconProps, IconSize, Indicator, IndicatorProps, InfoIcon, Link, LinkIcon, LinkProps, LockIcon, MailIcon, MinusIcon, OTPInput, OTPInputProps, PasswordInput, PasswordInputProps, PauseIcon, PlusIcon, Radio, RadioGroup, RadioGroupProps, RadioProps, RefreshLeftIcon, RotateCounterClockWiseIcon, RupeeIcon, SearchIcon, SettingsIcon, SkipNavContent, SkipNavLink, SlashIcon, Spinner, SpinnerProps, Text, TextArea, TextAreaProps, TextInput, TextInputProps, TextProps, TextVariant, Theme, Title, TitleProps, TrashIcon, TrendingDownIcon, TrendingUpIcon, UsersIcon, VisuallyHidden, VisuallyHiddenProps, announce, clearAnnouncer, destroyAnnouncer, getTextProps, screenReaderStyles, useTheme };
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import * as React$1 from 'react';
3
- import React__default, { ReactChild, ReactElement, ReactNode, KeyboardEvent, SyntheticEvent } from 'react';
3
+ import React__default, { ReactChild, ReactElement, ReactNode, SyntheticEvent, KeyboardEvent } from 'react';
4
4
  import { AccessibilityRole, GestureResponderEvent } from 'react-native';
5
5
  import { CSSObject } from 'styled-components';
6
6
 
@@ -240,6 +240,16 @@ type DotNotationColorStringToken<TokenType> = {
240
240
  : DotNotationColorStringToken<TokenType[K]>}`;
241
241
  }[keyof TokenType];
242
242
 
243
+ /* eslint-disable @typescript-eslint/no-explicit-any */
244
+
245
+
246
+ /**
247
+ * A type defining React component with additional static prop `componentId`
248
+ */
249
+ type WithComponentId<Props> = ((props: Props) => React__default.ReactElement) & {
250
+ componentId: string;
251
+ };
252
+
243
253
  // All the WAI-ARIA 1.1 role attribute values from https://www.w3.org/TR/wai-aria-1.1/#role_definitions
244
254
  type AriaRoles =
245
255
  | Exclude<AccessibilityRole, 'header' | 'adjustable' | 'image' | 'none' | 'summary'>
@@ -1039,6 +1049,75 @@ declare type Theme = {
1039
1049
  typography: Typography;
1040
1050
  };
1041
1051
 
1052
+ declare type CardProps = {
1053
+ /**
1054
+ * Card contents
1055
+ */
1056
+ children: React__default.ReactNode;
1057
+ /**
1058
+ * Sets the background color of the Card according to the surface level tokens
1059
+ *
1060
+ * eg: `theme.colors.surface.background.level1`
1061
+ *
1062
+ * **Description:**
1063
+ *
1064
+ * - 2: Used in layouts which are on top of the main background
1065
+ * - 3: Used over the cards template or as a text input backgrounds.
1066
+ *
1067
+ * **Links:**
1068
+ * - Docs: https://blade.razorpay.com/?path=/docs/tokens-colors--page#-theme-tokens
1069
+ * - Figma: https://shorturl.at/fsvwK
1070
+ */
1071
+ surfaceLevel: 2 | 3;
1072
+ };
1073
+ declare const Card: ({ children, surfaceLevel }: CardProps) => React__default.ReactElement;
1074
+ declare type CardBodyProps = {
1075
+ children: React__default.ReactNode;
1076
+ };
1077
+ declare const CardBody: ({ children }: CardBodyProps) => React__default.ReactElement;
1078
+
1079
+ declare type LinkCommonProps = {
1080
+ variant?: 'anchor' | 'button';
1081
+ icon?: IconComponent$1;
1082
+ iconPosition?: 'left' | 'right';
1083
+ isDisabled?: boolean;
1084
+ onClick?: (event: SyntheticEvent) => void;
1085
+ href?: string;
1086
+ target?: string;
1087
+ accessibilityLabel?: string;
1088
+ /**
1089
+ * Sets the size of the link
1090
+ *
1091
+ * @default medium
1092
+ */
1093
+ size?: 'small' | 'medium';
1094
+ };
1095
+ declare type LinkWithoutIconProps = LinkCommonProps & {
1096
+ icon?: undefined;
1097
+ children: string;
1098
+ };
1099
+ declare type LinkWithIconProps = LinkCommonProps & {
1100
+ icon: IconComponent$1;
1101
+ children?: string;
1102
+ };
1103
+ declare type LinkPropsWithOrWithoutIcon = LinkWithIconProps | LinkWithoutIconProps;
1104
+ declare type LinkAnchorVariantProps = LinkPropsWithOrWithoutIcon & {
1105
+ variant?: 'anchor';
1106
+ href?: string;
1107
+ target?: string;
1108
+ rel?: string;
1109
+ isDisabled?: undefined;
1110
+ };
1111
+ declare type LinkButtonVariantProps = LinkPropsWithOrWithoutIcon & {
1112
+ variant?: 'button';
1113
+ isDisabled?: boolean;
1114
+ href?: undefined;
1115
+ target?: undefined;
1116
+ rel?: undefined;
1117
+ };
1118
+ declare type LinkProps = LinkAnchorVariantProps | LinkButtonVariantProps;
1119
+ declare const Link: ({ children, icon, iconPosition, isDisabled, onClick, variant, href, target, rel, accessibilityLabel, size, }: LinkProps) => ReactElement;
1120
+
1042
1121
  declare type ButtonCommonProps = {
1043
1122
  variant?: 'primary' | 'secondary' | 'tertiary';
1044
1123
  size?: 'xsmall' | 'small' | 'medium' | 'large';
@@ -1064,6 +1143,181 @@ declare type ButtonWithIconProps = ButtonCommonProps & {
1064
1143
  declare type ButtonProps = ButtonWithoutIconProps | ButtonWithIconProps;
1065
1144
  declare const Button: ({ children, icon, iconPosition, isDisabled, isFullWidth, isLoading, onClick, size, type, variant, accessibilityLabel, }: ButtonProps) => React.ReactElement;
1066
1145
 
1146
+ type FeedbackColors$1 = `feedback.text.${DotNotationColorStringToken<
1147
+ Theme$1['colors']['feedback']['text']
1148
+ >}`;
1149
+ type FeedbackActionColors$1 = `feedback.${Feedback}.action.text.${DotNotationColorStringToken<
1150
+ Theme$1['colors']['feedback'][Feedback]['action']['text']
1151
+ >}`;
1152
+ type SurfaceColors$1 = `surface.text.${DotNotationColorStringToken<
1153
+ Theme$1['colors']['surface']['text']
1154
+ >}`;
1155
+ type ActionColors$1 = `action.text.${DotNotationColorStringToken<Theme$1['colors']['action']['text']>}`;
1156
+ type BadgeTextColors$1 = `badge.text.${DotNotationColorStringToken<
1157
+ Theme$1['colors']['badge']['text']
1158
+ >}`;
1159
+
1160
+ type BaseTextProps$1 = {
1161
+ id?: string;
1162
+ color?: ActionColors$1 | FeedbackColors$1 | SurfaceColors$1 | FeedbackActionColors$1 | BadgeTextColors$1;
1163
+ fontFamily?: keyof Theme$1['typography']['fonts']['family'];
1164
+ fontSize?: keyof Theme$1['typography']['fonts']['size'];
1165
+ fontWeight?: keyof Theme$1['typography']['fonts']['weight'];
1166
+ fontStyle?: 'italic' | 'normal';
1167
+ textDecorationLine?: 'line-through' | 'none' | 'underline';
1168
+ lineHeight?: keyof Theme$1['typography']['lineHeights'];
1169
+ /**
1170
+ * Web only
1171
+ */
1172
+ as?: 'code' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span';
1173
+ textAlign?: 'center' | 'justify' | 'left' | 'right';
1174
+ truncateAfterLines?: number;
1175
+ className?: string;
1176
+ style?: React.CSSProperties;
1177
+ children: React.ReactNode;
1178
+ accessibilityProps?: Partial<AccessibilityProps>;
1179
+ /**
1180
+ * React Native only
1181
+ */
1182
+ numberOfLines?: number;
1183
+ componentName?: 'text' | 'title' | 'heading' | 'code';
1184
+ };
1185
+
1186
+ /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */
1187
+
1188
+
1189
+ type TextCommonProps$1 = {
1190
+ type?: TextTypes;
1191
+ contrast?: ColorContrastTypes;
1192
+ truncateAfterLines?: number;
1193
+ children: React.ReactNode;
1194
+ weight?: keyof Theme$1['typography']['fonts']['weight'];
1195
+ /**
1196
+ * **For Internal use only**: Sets the color of the Text component
1197
+ */
1198
+ color?: BaseTextProps$1['color'];
1199
+ };
1200
+
1201
+ type TextVariant$1 = 'body' | 'caption';
1202
+
1203
+ type TextBodyVariant$1 = TextCommonProps$1 & {
1204
+ variant?: Extract<TextVariant$1, 'body'>;
1205
+ size?: 'small' | 'medium';
1206
+ };
1207
+
1208
+ type TextCaptionVariant$1 = TextCommonProps$1 & {
1209
+ variant?: Extract<TextVariant$1, 'caption'>;
1210
+ size?: 'medium';
1211
+ };
1212
+
1213
+ /**
1214
+ * Conditionally changing props based on variant.
1215
+ * Overloads or union gives wrong intellisense.
1216
+ */
1217
+ type TextProps$1<T> = T extends {
1218
+ variant: infer Variant;
1219
+ }
1220
+ ? Variant extends 'caption'
1221
+ ? TextCaptionVariant$1
1222
+ : Variant extends 'body'
1223
+ ? TextBodyVariant$1
1224
+ : T
1225
+ : T;
1226
+
1227
+ type CounterProps$1 = {
1228
+ /**
1229
+ * Sets the value for the counter.
1230
+ */
1231
+ value: number;
1232
+ /**
1233
+ * Sets the max value for the counter.
1234
+ * If value exceedes `max` it will render `value+`
1235
+ */
1236
+ max?: number;
1237
+ /**
1238
+ * Sets the intent of the counter.
1239
+ *
1240
+ * @default 'neutral'
1241
+ */
1242
+ intent?: Feedback;
1243
+ /**
1244
+ * Sets the contrast of the counter.
1245
+ *
1246
+ * @default 'low'
1247
+ */
1248
+ contrast?: 'high' | 'low';
1249
+ /**
1250
+ * Sets the size of the counter.
1251
+ *
1252
+ * @default 'medium'
1253
+ */
1254
+ size?: 'small' | 'medium' | 'large';
1255
+ };
1256
+
1257
+ declare const CardHeaderIcon: WithComponentId<{
1258
+ icon: IconComponent$1;
1259
+ }>;
1260
+ declare const CardHeaderCounter: WithComponentId<CounterProps$1>;
1261
+ declare const CardHeaderBadge: WithComponentId<BadgeProps>;
1262
+ declare const CardHeaderText: WithComponentId<TextProps$1<{
1263
+ variant: TextVariant$1;
1264
+ }>>;
1265
+ declare const CardHeaderLink: WithComponentId<LinkProps>;
1266
+ declare type CardHeaderIconButtonProps = Omit<ButtonProps, 'variant' | 'size' | 'iconPosition' | 'isFullWidth' | 'children'> & {
1267
+ icon: IconComponent$1;
1268
+ };
1269
+ declare const CardHeaderIconButton: WithComponentId<CardHeaderIconButtonProps>;
1270
+ declare type CardHeaderProps = {
1271
+ children?: React__default.ReactNode;
1272
+ };
1273
+ declare const CardHeader: ({ children }: CardHeaderProps) => React__default.ReactElement;
1274
+ declare type CardHeaderLeadingProps = {
1275
+ title: string;
1276
+ subtitle?: string;
1277
+ /**
1278
+ * prefix element of Card
1279
+ *
1280
+ * Accepts: `CardHeaderIcon` component
1281
+ */
1282
+ prefix?: React__default.ReactNode;
1283
+ /**
1284
+ * suffix element of Card
1285
+ *
1286
+ * Accepts: `CardHeaderCounter` component
1287
+ */
1288
+ suffix?: React__default.ReactNode;
1289
+ };
1290
+ declare const CardHeaderLeading: ({ title, subtitle, prefix, suffix, }: CardHeaderLeadingProps) => React__default.ReactElement;
1291
+ declare type CardHeaderTrailingProps = {
1292
+ /**
1293
+ * Renders a visual ornament in card header trailing section
1294
+ *
1295
+ * Accepts: `CardHeaderLink`, `CardHeaderText`, `CardHeaderIconButton`, `CardHeaderBadge`
1296
+ */
1297
+ visual?: React__default.ReactNode;
1298
+ };
1299
+ declare const CardHeaderTrailing: ({ visual }: CardHeaderTrailingProps) => React__default.ReactElement;
1300
+
1301
+ declare type CardFooterAction = Pick<ButtonProps, 'type' | 'accessibilityLabel' | 'isLoading' | 'isDisabled' | 'icon' | 'iconPosition' | 'onClick'> & {
1302
+ text: ButtonProps['children'];
1303
+ };
1304
+ declare type CardFooterProps = {
1305
+ children?: React.ReactNode;
1306
+ };
1307
+ declare const CardFooter: ({ children }: CardFooterProps) => React.ReactElement;
1308
+ declare type CardFooterLeadingProps = {
1309
+ title?: string;
1310
+ subtitle?: string;
1311
+ };
1312
+ declare const CardFooterLeading: ({ title, subtitle }: CardFooterLeadingProps) => React.ReactElement;
1313
+ declare type CardFooterTrailingProps = {
1314
+ actions?: {
1315
+ primary?: CardFooterAction;
1316
+ secondary?: CardFooterAction;
1317
+ };
1318
+ };
1319
+ declare const CardFooterTrailing: ({ actions }: CardFooterTrailingProps) => React.ReactElement;
1320
+
1067
1321
  declare type IconButtonProps = {
1068
1322
  /**
1069
1323
  * Icon component to be rendered, eg. `CloseIcon`
@@ -1740,48 +1994,6 @@ declare type IndicatorWithA11yLabel = {
1740
1994
  declare type IndicatorProps = IndicatorCommonProps & (IndicatorWithA11yLabel | IndicatorWithoutA11yLabel);
1741
1995
  declare const Indicator: ({ accessibilityLabel, children, size, intent, }: IndicatorProps) => ReactElement;
1742
1996
 
1743
- declare type LinkCommonProps = {
1744
- variant?: 'anchor' | 'button';
1745
- icon?: IconComponent$1;
1746
- iconPosition?: 'left' | 'right';
1747
- isDisabled?: boolean;
1748
- onClick?: (event: SyntheticEvent) => void;
1749
- href?: string;
1750
- target?: string;
1751
- accessibilityLabel?: string;
1752
- /**
1753
- * Sets the size of the link
1754
- *
1755
- * @default medium
1756
- */
1757
- size?: 'small' | 'medium';
1758
- };
1759
- declare type LinkWithoutIconProps = LinkCommonProps & {
1760
- icon?: undefined;
1761
- children: string;
1762
- };
1763
- declare type LinkWithIconProps = LinkCommonProps & {
1764
- icon: IconComponent$1;
1765
- children?: string;
1766
- };
1767
- declare type LinkPropsWithOrWithoutIcon = LinkWithIconProps | LinkWithoutIconProps;
1768
- declare type LinkAnchorVariantProps = LinkPropsWithOrWithoutIcon & {
1769
- variant?: 'anchor';
1770
- href?: string;
1771
- target?: string;
1772
- rel?: string;
1773
- isDisabled?: undefined;
1774
- };
1775
- declare type LinkButtonVariantProps = LinkPropsWithOrWithoutIcon & {
1776
- variant?: 'button';
1777
- isDisabled?: boolean;
1778
- href?: undefined;
1779
- target?: undefined;
1780
- rel?: undefined;
1781
- };
1782
- declare type LinkProps = LinkAnchorVariantProps | LinkButtonVariantProps;
1783
- declare const Link: ({ children, icon, iconPosition, isDisabled, onClick, variant, href, target, rel, accessibilityLabel, size, }: LinkProps) => ReactElement;
1784
-
1785
1997
  declare type Assertiveness = AriaAttributes['liveRegion'];
1786
1998
 
1787
1999
  declare function announce(message: string, _assertiveness?: Assertiveness): void;
@@ -2091,4 +2303,4 @@ declare const VisuallyHidden: ({ children }: VisuallyHiddenProps) => JSX.Element
2091
2303
 
2092
2304
  declare const screenReaderStyles: CSSObject;
2093
2305
 
2094
- export { Alert, AlertTriangleIcon as AlertOctagonIcon, AlertProps, AlertTriangleIcon$1 as AlertTriangleIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, ArrowUpRightIcon, Badge, BadgeProps, BladeProvider, BladeProviderProps, Button, ButtonProps, CheckCircleIcon, CheckIcon, Checkbox, CheckboxGroup, CheckboxGroupProps, CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, Code, CodeProps, Counter, CounterProps, CreditCardIcon, DollarIcon, DownloadIcon, EditIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileTextIcon, Heading, HeadingProps, HelpCircleIcon, HistoryIcon, HomeIcon, IconButton, IconButtonProps, IconComponent, IconProps, IconSize, Indicator, IndicatorProps, InfoIcon, Link, LinkIcon, LinkProps, LockIcon, MailIcon, MinusIcon, OTPInput, OTPInputProps, PasswordInput, PasswordInputProps, PauseIcon, PlusIcon, Radio, RadioGroup, RadioGroupProps, RadioProps, RefreshLeftIcon, RotateCounterClockWiseIcon, RupeeIcon, SearchIcon, SettingsIcon, SkipNavContent, SkipNavLink, SlashIcon, Spinner, SpinnerProps, Text, TextArea, TextAreaProps, TextInput, TextInputProps, TextProps, TextVariant, Theme, Title, TitleProps, TrashIcon, TrendingDownIcon, TrendingUpIcon, UsersIcon, VisuallyHidden, VisuallyHiddenProps, announce, clearAnnouncer, destroyAnnouncer, getTextProps, screenReaderStyles, useTheme };
2306
+ export { Alert, AlertTriangleIcon as AlertOctagonIcon, AlertProps, AlertTriangleIcon$1 as AlertTriangleIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, ArrowUpRightIcon, Badge, BadgeProps, BladeProvider, BladeProviderProps, Button, ButtonProps, Card, CardBody, CardFooter, CardFooterAction, CardFooterLeading, CardFooterTrailing, CardHeader, CardHeaderBadge, CardHeaderCounter, CardHeaderIcon, CardHeaderIconButton, CardHeaderLeading, CardHeaderLink, CardHeaderText, CardHeaderTrailing, CardProps, CheckCircleIcon, CheckIcon, Checkbox, CheckboxGroup, CheckboxGroupProps, CheckboxProps, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, Code, CodeProps, Counter, CounterProps, CreditCardIcon, DollarIcon, DownloadIcon, EditIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileTextIcon, Heading, HeadingProps, HelpCircleIcon, HistoryIcon, HomeIcon, IconButton, IconButtonProps, IconComponent, IconProps, IconSize, Indicator, IndicatorProps, InfoIcon, Link, LinkIcon, LinkProps, LockIcon, MailIcon, MinusIcon, OTPInput, OTPInputProps, PasswordInput, PasswordInputProps, PauseIcon, PlusIcon, Radio, RadioGroup, RadioGroupProps, RadioProps, RefreshLeftIcon, RotateCounterClockWiseIcon, RupeeIcon, SearchIcon, SettingsIcon, SkipNavContent, SkipNavLink, SlashIcon, Spinner, SpinnerProps, Text, TextArea, TextAreaProps, TextInput, TextInputProps, TextProps, TextVariant, Theme, Title, TitleProps, TrashIcon, TrendingDownIcon, TrendingUpIcon, UsersIcon, VisuallyHidden, VisuallyHiddenProps, announce, clearAnnouncer, destroyAnnouncer, getTextProps, screenReaderStyles, useTheme };