@@ -34,13 +34,15 @@ export const allowedCardFrameProps = [
34
34
] as const satisfies FramePropsKeys [ ] ;
35
35
type AllowedFrameProps = Pick < FrameProps , ( typeof allowedCardFrameProps ) [ number ] > ;
36
36
37
- const Container = styled . div < { $fillType : FillType } & TransientProps < AllowedFrameProps > > `
37
+ const Container = styled . div <
38
+ { $fillType : FillType ; $border ?: string } & TransientProps < AllowedFrameProps >
39
+ > `
38
40
width: 100%;
39
41
border-radius: ${ borders . radii . md } ;
40
42
background: ${ ( { theme, $fillType } ) =>
41
43
$fillType !== 'none' && theme . backgroundTertiaryDefaultOnElevation0 } ;
42
44
padding: ${ spacingsPx . xxxs } ;
43
-
45
+ border: ${ ( { $border } ) => $border || 'none' } ;
44
46
${ withFrameProps }
45
47
` ;
46
48
@@ -57,6 +59,7 @@ const CardContainer = styled.div<
57
59
$isClickable : boolean ;
58
60
$variant ?: CardVariant ;
59
61
$hasLabel : boolean ;
62
+ $border ?: string ;
60
63
} & TransientProps < AllowedFrameProps >
61
64
> `
62
65
width: 100%;
@@ -65,6 +68,7 @@ const CardContainer = styled.div<
65
68
position: relative;
66
69
padding: ${ mapPaddingTypeToPadding } ;
67
70
border-radius: ${ borders . radii . md } ;
71
+ border: ${ ( { $border } ) => $border || 'none' } ;
68
72
transition:
69
73
background 0.3s,
70
74
box-shadow 0.2s,
@@ -103,6 +107,7 @@ type CommonCardProps = AccessibilityProps & {
103
107
label ?: ReactNode ;
104
108
variant ?: CardVariant ;
105
109
'data-testid' ?: string ;
110
+ border ?: string ;
106
111
} ;
107
112
108
113
export type CardPropsWithTransientProps = CommonCardProps & TransientProps < AllowedFrameProps > ;
@@ -122,6 +127,7 @@ const CardComponent = forwardRef<HTMLDivElement, CardPropsWithTransientProps>(
122
127
label,
123
128
variant,
124
129
'data-testid' : dataTest ,
130
+ border,
125
131
...rest
126
132
} ,
127
133
ref ,
@@ -137,6 +143,7 @@ const CardComponent = forwardRef<HTMLDivElement, CardPropsWithTransientProps>(
137
143
$isClickable = { Boolean ( onClick ) }
138
144
$variant = { variant }
139
145
$hasLabel = { Boolean ( label ) }
146
+ $border = { border }
140
147
onClick = { onClick }
141
148
onMouseEnter = { onMouseEnter }
142
149
className = { className }
@@ -165,6 +172,7 @@ export const Card = forwardRef<HTMLDivElement, CardProps>(
165
172
children,
166
173
variant,
167
174
'data-testid' : dataTest ,
175
+ border,
168
176
...rest
169
177
} ,
170
178
ref ,
@@ -181,16 +189,17 @@ export const Card = forwardRef<HTMLDivElement, CardProps>(
181
189
label,
182
190
variant,
183
191
'data-testid' : dataTest ,
192
+ border,
184
193
} ;
185
194
const frameProps = pickAndPrepareFrameProps ( rest , allowedCardFrameProps ) ;
186
195
187
196
return label ? (
188
- < Container $fillType = { fillType } { ...frameProps } >
197
+ < Container $fillType = { fillType } { ...frameProps } $border = { border } >
189
198
< LabelContainer $paddingType = { paddingType } > { label } </ LabelContainer >
190
199
< CardComponent { ...commonProps } ref = { ref } />
191
200
</ Container >
192
201
) : (
193
- < CardComponent { ...commonProps } { ...frameProps } ref = { ref } />
202
+ < CardComponent { ...commonProps } { ...frameProps } border = { border } ref = { ref } />
194
203
) ;
195
204
} ,
196
205
) ;
0 commit comments