@fluentui-react-native/experimental-avatar 0.14.23 → 0.14.26
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.json +46 -1
- package/CHANGELOG.md +26 -2
- package/lib/JSAvatar.d.ts.map +1 -1
- package/lib/JSAvatar.js +9 -7
- package/lib/JSAvatar.js.map +1 -1
- package/lib/JSAvatar.styling.d.ts.map +1 -1
- package/lib/JSAvatar.styling.js +9 -12
- package/lib/JSAvatar.styling.js.map +1 -1
- package/lib/JSAvatar.types.d.ts +50 -7
- package/lib/JSAvatar.types.d.ts.map +1 -1
- package/lib/JSAvatar.types.js +2 -1
- package/lib/JSAvatar.types.js.map +1 -1
- package/lib/JSAvatarTokens.d.ts.map +1 -1
- package/lib/JSAvatarTokens.js +142 -56
- package/lib/JSAvatarTokens.js.map +1 -1
- package/lib/useAvatar.d.ts.map +1 -1
- package/lib/useAvatar.js +3 -1
- package/lib/useAvatar.js.map +1 -1
- package/lib-commonjs/JSAvatar.d.ts.map +1 -1
- package/lib-commonjs/JSAvatar.js +8 -6
- package/lib-commonjs/JSAvatar.js.map +1 -1
- package/lib-commonjs/JSAvatar.styling.d.ts.map +1 -1
- package/lib-commonjs/JSAvatar.styling.js +7 -10
- package/lib-commonjs/JSAvatar.styling.js.map +1 -1
- package/lib-commonjs/JSAvatar.types.d.ts +50 -7
- package/lib-commonjs/JSAvatar.types.d.ts.map +1 -1
- package/lib-commonjs/JSAvatar.types.js +3 -2
- package/lib-commonjs/JSAvatar.types.js.map +1 -1
- package/lib-commonjs/JSAvatarTokens.d.ts.map +1 -1
- package/lib-commonjs/JSAvatarTokens.js +142 -56
- package/lib-commonjs/JSAvatarTokens.js.map +1 -1
- package/lib-commonjs/useAvatar.d.ts.map +1 -1
- package/lib-commonjs/useAvatar.js +3 -1
- package/lib-commonjs/useAvatar.js.map +1 -1
- package/package.json +1 -1
- package/src/JSAvatar.styling.ts +8 -9
- package/src/JSAvatar.tsx +9 -7
- package/src/JSAvatar.types.ts +57 -7
- package/src/JSAvatarTokens.ts +142 -56
- package/src/useAvatar.ts +3 -1
package/src/JSAvatar.types.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { IViewProps } from '@fluentui-react-native/adapters';
|
|
2
2
|
import { ImageProps, ViewProps, TextProps, ColorValue } from 'react-native';
|
|
3
|
-
import { IBackgroundColorTokens, IForegroundColorTokens, IBorderTokens } from '@fluentui-react-native/tokens';
|
|
3
|
+
import { IBackgroundColorTokens, IForegroundColorTokens, IBorderTokens, FontTokens } from '@fluentui-react-native/tokens';
|
|
4
4
|
import { BadgeProps, PresenceBadgeProps, BadgeSize } from '@fluentui-react-native/badge';
|
|
5
5
|
import { IconProps, IconSourcesType } from '@fluentui-react-native/icon';
|
|
6
6
|
|
|
7
7
|
export const JSAvatarName = 'Avatar';
|
|
8
|
-
export const
|
|
8
|
+
export const AvatarSizesForTokens = [
|
|
9
9
|
'size20',
|
|
10
10
|
'size24',
|
|
11
11
|
'size28',
|
|
@@ -20,6 +20,8 @@ export const AvatarSizes = [
|
|
|
20
20
|
'size120',
|
|
21
21
|
] as const;
|
|
22
22
|
|
|
23
|
+
export const AvatarSizes = [20, 24, 28, 32, 36, 40, 48, 56, 64, 72, 96, 120] as const;
|
|
24
|
+
|
|
23
25
|
/**
|
|
24
26
|
* Sets color of the avatar when there is no picture. Uses fluent color names
|
|
25
27
|
*/
|
|
@@ -67,7 +69,6 @@ export type IconAlignment = 'start' | 'center' | 'end';
|
|
|
67
69
|
export interface RingConfig {
|
|
68
70
|
accent?: boolean;
|
|
69
71
|
transparent?: boolean;
|
|
70
|
-
ringColor?: ColorValue; // glow
|
|
71
72
|
ringBackgroundColor?: ColorValue; // inner/outer rings
|
|
72
73
|
ringThickness?: number;
|
|
73
74
|
innerGap?: number;
|
|
@@ -84,14 +85,33 @@ export interface AvatarConfigurableProps {
|
|
|
84
85
|
* @defaultvalue neutral
|
|
85
86
|
*/
|
|
86
87
|
avatarColor?: AvatarColor;
|
|
87
|
-
size?: AvatarSize;
|
|
88
88
|
ring?: RingConfig;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
export interface JSAvatarProps extends IViewProps, AvatarConfigurableProps {
|
|
92
|
+
/**
|
|
93
|
+
* Optional activity indicator
|
|
94
|
+
* * active: the avatar will be decorated according to activeAppearance
|
|
95
|
+
* * inactive: the avatar will be reduced in size and partially transparent
|
|
96
|
+
* * unset: normal display
|
|
97
|
+
*
|
|
98
|
+
* @defaultvalue unset
|
|
99
|
+
*/
|
|
92
100
|
active?: AvatarActive;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* The appearance when `active="active"`
|
|
104
|
+
*
|
|
105
|
+
* @defaultvalue ring
|
|
106
|
+
*/
|
|
93
107
|
activeAppearance?: AvatarActiveAppearance;
|
|
94
108
|
badge?: PresenceBadgeProps;
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Icon to be displayed when the avatar doesn't have an image or initials.
|
|
112
|
+
*
|
|
113
|
+
* @defaultvalue `PersonRegular` (the default icon's size depends on the Avatar's size)
|
|
114
|
+
*/
|
|
95
115
|
icon?: IconSourcesType;
|
|
96
116
|
|
|
97
117
|
/**
|
|
@@ -101,15 +121,45 @@ export interface JSAvatarProps extends IViewProps, AvatarConfigurableProps {
|
|
|
101
121
|
idForColor?: string | undefined;
|
|
102
122
|
|
|
103
123
|
image?: ImageProps;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* (optional) Custom initials.
|
|
127
|
+
*
|
|
128
|
+
* It is usually not necessary to specify custom initials; by default they will be derived from the `name` prop,
|
|
129
|
+
* using the `getInitials` function.
|
|
130
|
+
*
|
|
131
|
+
* The initials are displayed when there is no image (including while the image is loading).
|
|
132
|
+
*/
|
|
104
133
|
initials?: string;
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* The name of the person or entity represented by this Avatar. This should always be provided if it is available.
|
|
137
|
+
*
|
|
138
|
+
* The name will be used to determine the initials displayed when there is no icon, as well as provided to
|
|
139
|
+
* accessibility tools.
|
|
140
|
+
*/
|
|
105
141
|
name?: string;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Size of the avatar in pixels.
|
|
145
|
+
*
|
|
146
|
+
* Size is restricted to a limited set of supported values recommended for most uses (see `AvatarSizeValue`) and
|
|
147
|
+
* based on design guidelines for the Avatar control.
|
|
148
|
+
*
|
|
149
|
+
* @defaultvalue 24
|
|
150
|
+
*/
|
|
151
|
+
size?: AvatarSize;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* The avatar can have a circular or square shape.
|
|
155
|
+
* @defaultvalue circular
|
|
156
|
+
*/
|
|
106
157
|
shape?: AvatarShape;
|
|
107
158
|
src?: string;
|
|
108
159
|
}
|
|
109
160
|
|
|
110
|
-
export interface JSAvatarTokens extends IBackgroundColorTokens, IForegroundColorTokens, AvatarConfigurableProps, IBorderTokens {
|
|
161
|
+
export interface JSAvatarTokens extends IBackgroundColorTokens, IForegroundColorTokens, AvatarConfigurableProps, IBorderTokens, FontTokens {
|
|
111
162
|
iconSize?: number;
|
|
112
|
-
initialsSize?: number;
|
|
113
163
|
height?: number;
|
|
114
164
|
horizontalIconAlignment?: IconAlignment;
|
|
115
165
|
verticalIconAlignment?: IconAlignment;
|
|
@@ -117,7 +167,6 @@ export interface JSAvatarTokens extends IBackgroundColorTokens, IForegroundColor
|
|
|
117
167
|
square?: JSAvatarTokens;
|
|
118
168
|
inactive?: JSAvatarTokens;
|
|
119
169
|
avatarOpacity?: number;
|
|
120
|
-
ringColor?: ColorValue;
|
|
121
170
|
size20?: JSAvatarTokens;
|
|
122
171
|
size24?: JSAvatarTokens;
|
|
123
172
|
size28?: JSAvatarTokens;
|
|
@@ -179,6 +228,7 @@ export interface AvatarSlotProps {
|
|
|
179
228
|
export interface JSAvatarState {
|
|
180
229
|
showRing: boolean;
|
|
181
230
|
transparentRing: boolean;
|
|
231
|
+
showBadge: boolean;
|
|
182
232
|
}
|
|
183
233
|
|
|
184
234
|
export interface AvatarInfo {
|
package/src/JSAvatarTokens.ts
CHANGED
|
@@ -10,6 +10,11 @@ export const defaultJSAvatarTokens: TokenSettings<JSAvatarTokens, Theme> = (t: T
|
|
|
10
10
|
color: globalTokens.color.white,
|
|
11
11
|
backgroundColor: globalTokens.color.cornflower.primary,
|
|
12
12
|
avatarOpacity: 1,
|
|
13
|
+
fontFamily: t.typography.families.primary,
|
|
14
|
+
fontWeight: globalTokens.font.weight.semibold,
|
|
15
|
+
fontSize: globalTokens.font.size[200],
|
|
16
|
+
width: 24,
|
|
17
|
+
height: 24,
|
|
13
18
|
circular: {
|
|
14
19
|
borderRadius: globalTokens.corner.radius.circle,
|
|
15
20
|
},
|
|
@@ -23,184 +28,265 @@ export const defaultJSAvatarTokens: TokenSettings<JSAvatarTokens, Theme> = (t: T
|
|
|
23
28
|
width: 20,
|
|
24
29
|
height: 20,
|
|
25
30
|
badgeSize: 'smallest',
|
|
26
|
-
iconSize:
|
|
27
|
-
|
|
31
|
+
iconSize: 16,
|
|
32
|
+
fontSize: globalTokens.font.size[100],
|
|
33
|
+
square: {
|
|
34
|
+
borderRadius: globalTokens.corner.radius.small,
|
|
35
|
+
},
|
|
28
36
|
},
|
|
29
37
|
size24: {
|
|
30
38
|
width: 24,
|
|
31
39
|
height: 24,
|
|
32
40
|
badgeSize: 'smallest',
|
|
33
|
-
iconSize:
|
|
34
|
-
|
|
41
|
+
iconSize: 16,
|
|
42
|
+
fontSize: globalTokens.font.size[100],
|
|
43
|
+
square: {
|
|
44
|
+
borderRadius: globalTokens.corner.radius.small,
|
|
45
|
+
},
|
|
35
46
|
},
|
|
36
47
|
size28: {
|
|
37
48
|
width: 28,
|
|
38
49
|
height: 28,
|
|
39
50
|
badgeSize: 'smaller',
|
|
40
|
-
iconSize:
|
|
41
|
-
|
|
51
|
+
iconSize: 20,
|
|
52
|
+
fontWeight: globalTokens.font.weight.semibold,
|
|
53
|
+
fontSize: globalTokens.font.size[100],
|
|
42
54
|
},
|
|
43
55
|
size32: {
|
|
44
56
|
width: 32,
|
|
45
57
|
height: 32,
|
|
46
58
|
badgeSize: 'smaller',
|
|
47
|
-
iconSize:
|
|
48
|
-
|
|
59
|
+
iconSize: 20,
|
|
60
|
+
fontSize: globalTokens.font.size[100],
|
|
49
61
|
},
|
|
50
62
|
size36: {
|
|
51
63
|
width: 36,
|
|
52
64
|
height: 36,
|
|
53
65
|
badgeSize: 'smaller',
|
|
54
|
-
iconSize:
|
|
55
|
-
initialsSize: 20,
|
|
66
|
+
iconSize: 20,
|
|
56
67
|
},
|
|
57
68
|
size40: {
|
|
58
69
|
width: 40,
|
|
59
70
|
height: 40,
|
|
60
71
|
badgeSize: 'small',
|
|
61
|
-
iconSize:
|
|
62
|
-
initialsSize: 20,
|
|
72
|
+
iconSize: 20,
|
|
63
73
|
},
|
|
64
74
|
size48: {
|
|
65
75
|
width: 48,
|
|
66
76
|
height: 48,
|
|
67
77
|
badgeSize: 'small',
|
|
68
|
-
iconSize:
|
|
69
|
-
initialsSize: 24,
|
|
78
|
+
iconSize: 24,
|
|
70
79
|
},
|
|
71
80
|
size56: {
|
|
72
81
|
width: 56,
|
|
73
82
|
height: 56,
|
|
74
83
|
badgeSize: 'medium',
|
|
75
|
-
iconSize:
|
|
76
|
-
|
|
84
|
+
iconSize: 28,
|
|
85
|
+
fontSize: globalTokens.font.size[400],
|
|
86
|
+
square: {
|
|
87
|
+
borderRadius: globalTokens.corner.radius.large,
|
|
88
|
+
},
|
|
77
89
|
},
|
|
78
90
|
size64: {
|
|
79
91
|
width: 64,
|
|
80
92
|
height: 64,
|
|
81
93
|
badgeSize: 'large',
|
|
82
|
-
iconSize:
|
|
83
|
-
|
|
94
|
+
iconSize: 32,
|
|
95
|
+
fontSize: globalTokens.font.size[500],
|
|
96
|
+
square: {
|
|
97
|
+
borderRadius: globalTokens.corner.radius.large,
|
|
98
|
+
},
|
|
84
99
|
},
|
|
85
100
|
size72: {
|
|
86
101
|
width: 72,
|
|
87
102
|
height: 72,
|
|
88
103
|
badgeSize: 'large',
|
|
89
|
-
iconSize:
|
|
90
|
-
|
|
104
|
+
iconSize: 32,
|
|
105
|
+
fontSize: globalTokens.font.size[500],
|
|
106
|
+
square: {
|
|
107
|
+
borderRadius: globalTokens.corner.radius.large,
|
|
108
|
+
},
|
|
91
109
|
},
|
|
92
110
|
size96: {
|
|
93
111
|
width: 96,
|
|
94
112
|
height: 96,
|
|
95
113
|
badgeSize: 'largest',
|
|
96
|
-
iconSize:
|
|
97
|
-
|
|
114
|
+
iconSize: 48,
|
|
115
|
+
fontWeight: globalTokens.font.weight.regular,
|
|
116
|
+
fontSize: globalTokens.font.size[700],
|
|
117
|
+
square: {
|
|
118
|
+
borderRadius: globalTokens.corner.radius.extraLarge,
|
|
119
|
+
},
|
|
98
120
|
},
|
|
99
121
|
size120: {
|
|
100
122
|
width: 120,
|
|
101
123
|
height: 120,
|
|
102
124
|
badgeSize: 'largest',
|
|
103
|
-
iconSize:
|
|
104
|
-
|
|
125
|
+
iconSize: 48,
|
|
126
|
+
fontWeight: globalTokens.font.weight.regular,
|
|
127
|
+
fontSize: globalTokens.font.size[900],
|
|
128
|
+
square: {
|
|
129
|
+
borderRadius: globalTokens.corner.radius.extraLarge,
|
|
130
|
+
},
|
|
105
131
|
},
|
|
106
132
|
neutral: {
|
|
107
133
|
backgroundColor: t.colors.neutralBackground6,
|
|
108
134
|
color: t.colors.neutralForeground3,
|
|
109
|
-
|
|
135
|
+
borderColor: t.colors.defaultBorder,
|
|
110
136
|
},
|
|
111
137
|
brand: {
|
|
112
138
|
backgroundColor: t.colors.brandBackgroundStatic,
|
|
113
139
|
color: t.colors.neutralForegroundOnBrand,
|
|
114
|
-
|
|
140
|
+
borderColor: t.colors.brandedBorder,
|
|
115
141
|
},
|
|
116
142
|
darkRed: {
|
|
117
|
-
backgroundColor: globalTokens.color.darkRed.
|
|
143
|
+
backgroundColor: globalTokens.color.darkRed.tint40,
|
|
144
|
+
color: globalTokens.color.darkRed.shade30,
|
|
145
|
+
borderColor: globalTokens.color.darkRed.primary,
|
|
118
146
|
},
|
|
119
147
|
cranberry: {
|
|
120
|
-
backgroundColor: globalTokens.color.cranberry.
|
|
148
|
+
backgroundColor: globalTokens.color.cranberry.tint40,
|
|
149
|
+
color: globalTokens.color.cranberry.shade30,
|
|
150
|
+
borderColor: globalTokens.color.cranberry.primary,
|
|
121
151
|
},
|
|
122
152
|
red: {
|
|
123
|
-
backgroundColor: globalTokens.color.red.
|
|
153
|
+
backgroundColor: globalTokens.color.red.tint40,
|
|
154
|
+
color: globalTokens.color.red.shade30,
|
|
155
|
+
borderColor: globalTokens.color.red.primary,
|
|
124
156
|
},
|
|
125
157
|
pumpkin: {
|
|
126
|
-
backgroundColor: globalTokens.color.pumpkin.
|
|
158
|
+
backgroundColor: globalTokens.color.pumpkin.tint40,
|
|
159
|
+
color: globalTokens.color.pumpkin.shade30,
|
|
160
|
+
borderColor: globalTokens.color.pumpkin.primary,
|
|
127
161
|
},
|
|
128
162
|
peach: {
|
|
129
|
-
backgroundColor: globalTokens.color.peach.
|
|
163
|
+
backgroundColor: globalTokens.color.peach.tint40,
|
|
164
|
+
color: globalTokens.color.peach.shade30,
|
|
165
|
+
borderColor: globalTokens.color.peach.primary,
|
|
130
166
|
},
|
|
131
167
|
marigold: {
|
|
132
|
-
backgroundColor: globalTokens.color.marigold.
|
|
168
|
+
backgroundColor: globalTokens.color.marigold.tint40,
|
|
169
|
+
color: globalTokens.color.marigold.shade30,
|
|
170
|
+
borderColor: globalTokens.color.marigold.primary,
|
|
133
171
|
},
|
|
134
172
|
gold: {
|
|
135
|
-
backgroundColor: globalTokens.color.gold.
|
|
173
|
+
backgroundColor: globalTokens.color.gold.tint40,
|
|
174
|
+
color: globalTokens.color.gold.shade30,
|
|
175
|
+
borderColor: globalTokens.color.gold.primary,
|
|
136
176
|
},
|
|
137
177
|
brass: {
|
|
138
|
-
backgroundColor: globalTokens.color.brass.
|
|
178
|
+
backgroundColor: globalTokens.color.brass.tint40,
|
|
179
|
+
color: globalTokens.color.brass.shade30,
|
|
180
|
+
borderColor: globalTokens.color.brass.primary,
|
|
139
181
|
},
|
|
140
182
|
brown: {
|
|
141
|
-
backgroundColor: globalTokens.color.brown.
|
|
183
|
+
backgroundColor: globalTokens.color.brown.tint40,
|
|
184
|
+
color: globalTokens.color.brown.shade30,
|
|
185
|
+
borderColor: globalTokens.color.brown.primary,
|
|
142
186
|
},
|
|
143
187
|
forest: {
|
|
144
|
-
backgroundColor: globalTokens.color.forest.
|
|
188
|
+
backgroundColor: globalTokens.color.forest.tint40,
|
|
189
|
+
color: globalTokens.color.forest.shade30,
|
|
190
|
+
borderColor: globalTokens.color.forest.primary,
|
|
145
191
|
},
|
|
146
192
|
seafoam: {
|
|
147
|
-
backgroundColor: globalTokens.color.seafoam.
|
|
193
|
+
backgroundColor: globalTokens.color.seafoam.tint40,
|
|
194
|
+
color: globalTokens.color.seafoam.shade30,
|
|
195
|
+
borderColor: globalTokens.color.seafoam.primary,
|
|
148
196
|
},
|
|
149
197
|
darkGreen: {
|
|
150
|
-
backgroundColor: globalTokens.color.darkGreen.
|
|
198
|
+
backgroundColor: globalTokens.color.darkGreen.tint40,
|
|
199
|
+
color: globalTokens.color.darkGreen.shade30,
|
|
200
|
+
borderColor: globalTokens.color.darkGreen.primary,
|
|
151
201
|
},
|
|
152
202
|
lightTeal: {
|
|
153
|
-
backgroundColor: globalTokens.color.lightTeal.
|
|
203
|
+
backgroundColor: globalTokens.color.lightTeal.tint40,
|
|
204
|
+
color: globalTokens.color.lightTeal.shade30,
|
|
205
|
+
borderColor: globalTokens.color.lightTeal.primary,
|
|
154
206
|
},
|
|
155
207
|
teal: {
|
|
156
|
-
backgroundColor: globalTokens.color.teal.
|
|
208
|
+
backgroundColor: globalTokens.color.teal.tint40,
|
|
209
|
+
color: globalTokens.color.teal.shade30,
|
|
210
|
+
borderColor: globalTokens.color.teal.primary,
|
|
157
211
|
},
|
|
158
212
|
steel: {
|
|
159
|
-
backgroundColor: globalTokens.color.steel.
|
|
213
|
+
backgroundColor: globalTokens.color.steel.tint40,
|
|
214
|
+
color: globalTokens.color.steel.shade30,
|
|
215
|
+
borderColor: globalTokens.color.steel.primary,
|
|
160
216
|
},
|
|
161
217
|
blue: {
|
|
162
|
-
backgroundColor: globalTokens.color.blue.
|
|
218
|
+
backgroundColor: globalTokens.color.blue.tint40,
|
|
219
|
+
color: globalTokens.color.blue.shade30,
|
|
220
|
+
borderColor: globalTokens.color.blue.primary,
|
|
163
221
|
},
|
|
164
222
|
royalBlue: {
|
|
165
|
-
backgroundColor: globalTokens.color.royalBlue.
|
|
223
|
+
backgroundColor: globalTokens.color.royalBlue.tint40,
|
|
224
|
+
color: globalTokens.color.royalBlue.shade30,
|
|
225
|
+
borderColor: globalTokens.color.royalBlue.primary,
|
|
166
226
|
},
|
|
167
227
|
cornflower: {
|
|
168
|
-
backgroundColor: globalTokens.color.cornflower.
|
|
228
|
+
backgroundColor: globalTokens.color.cornflower.tint40,
|
|
229
|
+
color: globalTokens.color.cornflower.shade30,
|
|
230
|
+
borderColor: globalTokens.color.cornflower.primary,
|
|
169
231
|
},
|
|
170
232
|
navy: {
|
|
171
|
-
backgroundColor: globalTokens.color.navy.
|
|
233
|
+
backgroundColor: globalTokens.color.navy.tint40,
|
|
234
|
+
color: globalTokens.color.navy.shade30,
|
|
235
|
+
borderColor: globalTokens.color.navy.primary,
|
|
172
236
|
},
|
|
173
237
|
lavender: {
|
|
174
|
-
backgroundColor: globalTokens.color.lavender.
|
|
238
|
+
backgroundColor: globalTokens.color.lavender.tint40,
|
|
239
|
+
color: globalTokens.color.lavender.shade30,
|
|
240
|
+
borderColor: globalTokens.color.lavender.primary,
|
|
175
241
|
},
|
|
176
242
|
purple: {
|
|
177
|
-
backgroundColor: globalTokens.color.purple.
|
|
243
|
+
backgroundColor: globalTokens.color.purple.tint40,
|
|
244
|
+
color: globalTokens.color.purple.shade30,
|
|
245
|
+
borderColor: globalTokens.color.purple.primary,
|
|
178
246
|
},
|
|
179
247
|
grape: {
|
|
180
|
-
backgroundColor: globalTokens.color.grape.
|
|
248
|
+
backgroundColor: globalTokens.color.grape.tint40,
|
|
249
|
+
color: globalTokens.color.grape.shade30,
|
|
250
|
+
borderColor: globalTokens.color.grape.primary,
|
|
181
251
|
},
|
|
182
252
|
lilac: {
|
|
183
|
-
backgroundColor: globalTokens.color.lilac.
|
|
253
|
+
backgroundColor: globalTokens.color.lilac.tint40,
|
|
254
|
+
color: globalTokens.color.lilac.shade30,
|
|
255
|
+
borderColor: globalTokens.color.lilac.primary,
|
|
184
256
|
},
|
|
185
257
|
pink: {
|
|
186
|
-
backgroundColor: globalTokens.color.pink.
|
|
258
|
+
backgroundColor: globalTokens.color.pink.tint40,
|
|
259
|
+
color: globalTokens.color.pink.shade30,
|
|
260
|
+
borderColor: globalTokens.color.pink.primary,
|
|
187
261
|
},
|
|
188
262
|
magenta: {
|
|
189
|
-
backgroundColor: globalTokens.color.magenta.
|
|
263
|
+
backgroundColor: globalTokens.color.magenta.tint40,
|
|
264
|
+
color: globalTokens.color.magenta.shade30,
|
|
265
|
+
borderColor: globalTokens.color.magenta.primary,
|
|
190
266
|
},
|
|
191
267
|
plum: {
|
|
192
|
-
backgroundColor: globalTokens.color.plum.
|
|
268
|
+
backgroundColor: globalTokens.color.plum.tint40,
|
|
269
|
+
color: globalTokens.color.plum.shade30,
|
|
270
|
+
borderColor: globalTokens.color.plum.primary,
|
|
193
271
|
},
|
|
194
272
|
beige: {
|
|
195
|
-
backgroundColor: globalTokens.color.beige.
|
|
273
|
+
backgroundColor: globalTokens.color.beige.tint40,
|
|
274
|
+
color: globalTokens.color.beige.shade30,
|
|
275
|
+
borderColor: globalTokens.color.beige.primary,
|
|
196
276
|
},
|
|
197
277
|
mink: {
|
|
198
|
-
backgroundColor: globalTokens.color.mink.
|
|
278
|
+
backgroundColor: globalTokens.color.mink.tint40,
|
|
279
|
+
color: globalTokens.color.mink.shade30,
|
|
280
|
+
borderColor: globalTokens.color.mink.primary,
|
|
199
281
|
},
|
|
200
282
|
platinum: {
|
|
201
|
-
backgroundColor: globalTokens.color.platinum.
|
|
283
|
+
backgroundColor: globalTokens.color.platinum.tint40,
|
|
284
|
+
color: globalTokens.color.platinum.shade30,
|
|
285
|
+
borderColor: globalTokens.color.platinum.primary,
|
|
202
286
|
},
|
|
203
287
|
anchor: {
|
|
204
|
-
backgroundColor: globalTokens.color.anchor.
|
|
288
|
+
backgroundColor: globalTokens.color.anchor.tint40,
|
|
289
|
+
color: globalTokens.color.anchor.shade30,
|
|
290
|
+
borderColor: globalTokens.color.anchor.primary,
|
|
205
291
|
},
|
|
206
292
|
} as JSAvatarTokens);
|
package/src/useAvatar.ts
CHANGED
|
@@ -9,10 +9,11 @@ import { PresenceBadgeProps } from '@fluentui-react-native/badge';
|
|
|
9
9
|
* @returns configured props and state for FURN Avatar
|
|
10
10
|
*/
|
|
11
11
|
export const useAvatar = (props: JSAvatarProps): AvatarInfo => {
|
|
12
|
-
const { active, accessibilityLabel, activeAppearance, badge,
|
|
12
|
+
const { active, accessibilityLabel, activeAppearance, badge, ring, src, shape, ...rest } = props;
|
|
13
13
|
|
|
14
14
|
const showRing = active === 'active' && activeAppearance === 'ring';
|
|
15
15
|
const transparentRing = !!ring?.transparent;
|
|
16
|
+
const showBadge = (!active || active === 'unset') && !!badge && !!badge.status;
|
|
16
17
|
|
|
17
18
|
const imageProps: ImageProps = {
|
|
18
19
|
accessibilityLabel,
|
|
@@ -27,6 +28,7 @@ export const useAvatar = (props: JSAvatarProps): AvatarInfo => {
|
|
|
27
28
|
const state: JSAvatarState = {
|
|
28
29
|
showRing,
|
|
29
30
|
transparentRing,
|
|
31
|
+
showBadge,
|
|
30
32
|
};
|
|
31
33
|
|
|
32
34
|
return {
|