@transferwise/components 46.82.0 → 46.83.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/build/alert/Alert.js +2 -9
- package/build/alert/Alert.js.map +1 -1
- package/build/alert/Alert.mjs +2 -9
- package/build/alert/Alert.mjs.map +1 -1
- package/build/avatarLayout/AvatarLayout.js +111 -0
- package/build/avatarLayout/AvatarLayout.js.map +1 -0
- package/build/avatarLayout/AvatarLayout.mjs +109 -0
- package/build/avatarLayout/AvatarLayout.mjs.map +1 -0
- package/build/button/Button.js +1 -1
- package/build/button/Button.js.map +1 -1
- package/build/button/Button.mjs +1 -1
- package/build/button/Button.mjs.map +1 -1
- package/build/i18n/commonMessages/Button.messages.js.map +1 -0
- package/build/i18n/commonMessages/Button.messages.mjs.map +1 -0
- package/build/i18n/es.json +5 -0
- package/build/i18n/es.json.js +5 -0
- package/build/i18n/es.json.js.map +1 -1
- package/build/i18n/es.json.mjs +5 -0
- package/build/i18n/es.json.mjs.map +1 -1
- package/build/i18n/pl.json +5 -0
- package/build/i18n/pl.json.js +5 -0
- package/build/i18n/pl.json.js.map +1 -1
- package/build/i18n/pl.json.mjs +5 -0
- package/build/i18n/pl.json.mjs.map +1 -1
- package/build/i18n/ro.json +5 -0
- package/build/i18n/ro.json.js +5 -0
- package/build/i18n/ro.json.js.map +1 -1
- package/build/i18n/ro.json.mjs +5 -0
- package/build/i18n/ro.json.mjs.map +1 -1
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/build/index.mjs +1 -0
- package/build/index.mjs.map +1 -1
- package/build/logo/Logo.js +11 -131
- package/build/logo/Logo.js.map +1 -1
- package/build/logo/Logo.mjs +1 -121
- package/build/logo/Logo.mjs.map +1 -1
- package/build/logo/logo-assets.js +134 -0
- package/build/logo/logo-assets.js.map +1 -0
- package/build/logo/logo-assets.mjs +125 -0
- package/build/logo/logo-assets.mjs.map +1 -0
- package/build/main.css +30 -0
- package/build/styles/avatarLayout/AvatarLayout.css +30 -0
- package/build/styles/main.css +30 -0
- package/build/types/alert/Alert.d.ts +1 -5
- package/build/types/alert/Alert.d.ts.map +1 -1
- package/build/types/avatarLayout/AvatarLayout.d.ts +11 -0
- package/build/types/avatarLayout/AvatarLayout.d.ts.map +1 -0
- package/build/types/avatarLayout/index.d.ts +3 -0
- package/build/types/avatarLayout/index.d.ts.map +1 -0
- package/build/types/i18n/commonMessages/Button.messages.d.ts.map +1 -0
- package/build/types/index.d.ts +2 -0
- package/build/types/index.d.ts.map +1 -1
- package/build/types/logo/Logo.d.ts.map +1 -1
- package/build/types/logo/logo-assets.d.ts +10 -0
- package/build/types/logo/logo-assets.d.ts.map +1 -0
- package/build/types/primitives/PrimitiveAnchor/index.d.ts +3 -0
- package/build/types/primitives/PrimitiveAnchor/index.d.ts.map +1 -0
- package/build/types/primitives/PrimitiveAnchor/src/PrimitiveAnchor.d.ts +14 -0
- package/build/types/primitives/PrimitiveAnchor/src/PrimitiveAnchor.d.ts.map +1 -0
- package/build/types/primitives/PrimitiveAnchor/src/PrimitiveAnchor.types.d.ts +21 -0
- package/build/types/primitives/PrimitiveAnchor/src/PrimitiveAnchor.types.d.ts.map +1 -0
- package/build/types/primitives/PrimitiveAnchor/src/index.d.ts +3 -0
- package/build/types/primitives/PrimitiveAnchor/src/index.d.ts.map +1 -0
- package/build/types/primitives/PrimitiveButton/index.d.ts +3 -0
- package/build/types/primitives/PrimitiveButton/index.d.ts.map +1 -0
- package/build/types/primitives/PrimitiveButton/src/PrimitiveButton.d.ts +14 -0
- package/build/types/primitives/PrimitiveButton/src/PrimitiveButton.d.ts.map +1 -0
- package/build/types/primitives/PrimitiveButton/src/PrimitiveButton.types.d.ts +21 -0
- package/build/types/primitives/PrimitiveButton/src/PrimitiveButton.types.d.ts.map +1 -0
- package/build/types/primitives/PrimitiveButton/src/index.d.ts +3 -0
- package/build/types/primitives/PrimitiveButton/src/index.d.ts.map +1 -0
- package/build/types/primitives/index.d.ts +6 -0
- package/build/types/primitives/index.d.ts.map +1 -0
- package/build/types/primitives/types.d.ts +34 -0
- package/build/types/primitives/types.d.ts.map +1 -0
- package/build/types/test-utils/index.d.ts.map +1 -1
- package/package.json +1 -2
- package/src/alert/Alert.spec.story.tsx +0 -82
- package/src/alert/Alert.spec.tsx +0 -30
- package/src/alert/Alert.tsx +51 -67
- package/src/avatarLayout/AvatarLayout.css +30 -0
- package/src/avatarLayout/AvatarLayout.less +39 -0
- package/src/avatarLayout/AvatarLayout.story.tsx +277 -0
- package/src/avatarLayout/AvatarLayout.tsx +91 -0
- package/src/avatarLayout/index.ts +2 -0
- package/src/button/Button.spec.tsx +1 -1
- package/src/button/Button.tsx +1 -1
- package/src/i18n/es.json +5 -0
- package/src/i18n/pl.json +5 -0
- package/src/i18n/ro.json +5 -0
- package/src/index.ts +2 -0
- package/src/logo/Logo.tsx +10 -8
- package/src/logo/__snapshots__/Logo.spec.tsx.snap +16 -16
- package/src/logo/logo-assets.tsx +137 -0
- package/src/main.css +30 -0
- package/src/main.less +1 -0
- package/src/primitives/PrimitiveAnchor/index.ts +2 -0
- package/src/primitives/PrimitiveAnchor/src/PrimitiveAnchor.tsx +122 -0
- package/src/primitives/PrimitiveAnchor/src/PrimitiveAnchor.types.ts +28 -0
- package/src/primitives/PrimitiveAnchor/src/index.ts +6 -0
- package/src/primitives/PrimitiveAnchor/stories/PrimitiveAnchor.story.tsx +77 -0
- package/src/primitives/PrimitiveAnchor/stories/PrimitiveAnchor.tests.story.tsx +169 -0
- package/src/primitives/PrimitiveAnchor/test/PrimitiveAnchor.spec.tsx +95 -0
- package/src/primitives/PrimitiveButton/index.ts +2 -0
- package/src/primitives/PrimitiveButton/src/PrimitiveButton.tsx +131 -0
- package/src/primitives/PrimitiveButton/src/PrimitiveButton.types.ts +28 -0
- package/src/primitives/PrimitiveButton/src/index.ts +6 -0
- package/src/primitives/PrimitiveButton/stories/PrimitiveButton.story.tsx +73 -0
- package/src/primitives/PrimitiveButton/stories/PrimitiveButton.tests.story.tsx +230 -0
- package/src/primitives/PrimitiveButton/test/PrimitiveButton.spec.tsx +114 -0
- package/src/primitives/index.ts +14 -0
- package/src/primitives/types.ts +40 -0
- package/src/test-utils/index.tsx +1 -0
- package/build/button/Button.messages.js.map +0 -1
- package/build/button/Button.messages.mjs.map +0 -1
- package/build/logo/svg/flag-inverse.svg +0 -1
- package/build/logo/svg/flag-platform-white.svg +0 -1
- package/build/logo/svg/flag-platform.svg +0 -1
- package/build/logo/svg/flag.svg +0 -1
- package/build/logo/svg/logo-business-inverse.svg +0 -1
- package/build/logo/svg/logo-business.svg +0 -1
- package/build/logo/svg/logo-inverse.svg +0 -1
- package/build/logo/svg/logo-platform-white.svg +0 -1
- package/build/logo/svg/logo-platform.svg +0 -1
- package/build/logo/svg/logo.svg +0 -1
- package/build/types/button/Button.messages.d.ts.map +0 -1
- package/src/logo/svg/flag-inverse.svg +0 -1
- package/src/logo/svg/flag-platform-white.svg +0 -1
- package/src/logo/svg/flag-platform.svg +0 -1
- package/src/logo/svg/flag.svg +0 -1
- package/src/logo/svg/logo-business-inverse.svg +0 -1
- package/src/logo/svg/logo-business.svg +0 -1
- package/src/logo/svg/logo-inverse.svg +0 -1
- package/src/logo/svg/logo-platform-white.svg +0 -1
- package/src/logo/svg/logo-platform.svg +0 -1
- package/src/logo/svg/logo.svg +0 -1
- /package/build/{button → i18n/commonMessages}/Button.messages.js +0 -0
- /package/build/{button → i18n/commonMessages}/Button.messages.mjs +0 -0
- /package/build/types/{button → i18n/commonMessages}/Button.messages.d.ts +0 -0
- /package/src/{button → i18n/commonMessages}/Button.messages.ts +0 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
.np-avatar-layout {
|
|
2
|
+
display: inline-flex;
|
|
3
|
+
--np-avatar-layout-size: 48px;
|
|
4
|
+
--np-avatar-size: 32px;
|
|
5
|
+
|
|
6
|
+
&-diagonal {
|
|
7
|
+
width: var(--np-avatar-layout-size);
|
|
8
|
+
height: var(--np-avatar-layout-size);
|
|
9
|
+
|
|
10
|
+
&-mask {
|
|
11
|
+
mask-image:
|
|
12
|
+
radial-gradient(circle at bottom calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)) right calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)),
|
|
13
|
+
transparent 0,
|
|
14
|
+
transparent calc(var(--np-avatar-size) / 2 + 2px),
|
|
15
|
+
black 0);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&-child {
|
|
19
|
+
margin-left: calc(var(--np-avatar-layout-size) - var(--np-avatar-size) * 2);
|
|
20
|
+
margin-top: calc(var(--np-avatar-layout-size) - var(--np-avatar-size));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&-horizontal {
|
|
25
|
+
width: calc(var(--np-avatar-size) * 2 - var(--np-avatar-offset) - 2px);
|
|
26
|
+
height: var(--np-avatar-layout-size);
|
|
27
|
+
|
|
28
|
+
&-mask {
|
|
29
|
+
mask-image: radial-gradient(circle at top calc(100% - calc(var(--np-avatar-size) / 2)) left calc(100% + calc(var(--np-avatar-size) / 2) - var(--np-avatar-offset)),
|
|
30
|
+
transparent,
|
|
31
|
+
transparent calc(var(--np-avatar-size) / 2 + 2px),
|
|
32
|
+
black 0);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
&-child {
|
|
36
|
+
margin-left: calc(var(--np-avatar-offset) * -1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/* eslint-disable react/jsx-key */
|
|
2
|
+
import { Meta, StoryObj } from '@storybook/react';
|
|
3
|
+
import AvatarLayout, { AvatarLayoutProps } from '.';
|
|
4
|
+
import { Freeze, Graph, Plane, Rewards } from '@transferwise/icons';
|
|
5
|
+
import { Flag } from '@wise/art';
|
|
6
|
+
import Body from '../body';
|
|
7
|
+
|
|
8
|
+
export default {
|
|
9
|
+
title: 'Content/AvatarLayout',
|
|
10
|
+
} satisfies Meta<typeof AvatarLayout>;
|
|
11
|
+
|
|
12
|
+
type Story = StoryObj<typeof AvatarLayout>;
|
|
13
|
+
|
|
14
|
+
const sizes: AvatarLayoutProps['size'][] = [16, 24, 32, 40, 48, 56, 72];
|
|
15
|
+
|
|
16
|
+
export const Diagonal: Story = {
|
|
17
|
+
tags: ['autodocs'],
|
|
18
|
+
render: () => (
|
|
19
|
+
<div
|
|
20
|
+
style={{
|
|
21
|
+
gap: '1em',
|
|
22
|
+
display: 'grid',
|
|
23
|
+
justifyContent: 'center',
|
|
24
|
+
textAlign: 'center',
|
|
25
|
+
gridTemplate: `auto auto / repeat(${sizes.length}, min-content)`,
|
|
26
|
+
}}
|
|
27
|
+
>
|
|
28
|
+
{sizes.map((size) => (
|
|
29
|
+
<Body type="body-large-bold">{size}</Body>
|
|
30
|
+
))}
|
|
31
|
+
|
|
32
|
+
{sizes.map((size) => (
|
|
33
|
+
<AvatarLayout
|
|
34
|
+
key={size}
|
|
35
|
+
size={size}
|
|
36
|
+
orientation="diagonal"
|
|
37
|
+
avatars={[{ asset: <Freeze /> }, { asset: <Freeze /> }]}
|
|
38
|
+
/>
|
|
39
|
+
))}
|
|
40
|
+
|
|
41
|
+
{sizes.map((size) => (
|
|
42
|
+
<AvatarLayout
|
|
43
|
+
key={size}
|
|
44
|
+
size={size}
|
|
45
|
+
orientation="diagonal"
|
|
46
|
+
interactive
|
|
47
|
+
avatars={[{ asset: <Freeze /> }, { asset: <Freeze /> }]}
|
|
48
|
+
/>
|
|
49
|
+
))}
|
|
50
|
+
|
|
51
|
+
{sizes.map((size) => (
|
|
52
|
+
<AvatarLayout
|
|
53
|
+
key={size}
|
|
54
|
+
size={size}
|
|
55
|
+
orientation="diagonal"
|
|
56
|
+
avatars={[{ profileName: 'Jay Jay' }, { profileName: 'Amy Amy' }]}
|
|
57
|
+
/>
|
|
58
|
+
))}
|
|
59
|
+
|
|
60
|
+
{sizes.map((size) => (
|
|
61
|
+
<AvatarLayout
|
|
62
|
+
key={size}
|
|
63
|
+
size={size}
|
|
64
|
+
orientation="diagonal"
|
|
65
|
+
interactive
|
|
66
|
+
avatars={[{ profileName: 'Jay Jay' }, { profileName: 'Amy Amy' }]}
|
|
67
|
+
/>
|
|
68
|
+
))}
|
|
69
|
+
|
|
70
|
+
{sizes.map((size) => (
|
|
71
|
+
<AvatarLayout
|
|
72
|
+
key={size}
|
|
73
|
+
size={size}
|
|
74
|
+
orientation="diagonal"
|
|
75
|
+
avatars={[{ asset: <Flag code="br" /> }, { asset: <Flag code="jp" /> }]}
|
|
76
|
+
/>
|
|
77
|
+
))}
|
|
78
|
+
|
|
79
|
+
{sizes.map((size) => (
|
|
80
|
+
<AvatarLayout
|
|
81
|
+
key={size}
|
|
82
|
+
size={size}
|
|
83
|
+
orientation="diagonal"
|
|
84
|
+
avatars={[{ asset: <Flag code="eu" /> }, { asset: <Flag code="eu" /> }]}
|
|
85
|
+
/>
|
|
86
|
+
))}
|
|
87
|
+
|
|
88
|
+
{sizes.map((size) => (
|
|
89
|
+
<AvatarLayout
|
|
90
|
+
key={size}
|
|
91
|
+
size={size}
|
|
92
|
+
orientation="diagonal"
|
|
93
|
+
avatars={[{ imgSrc: '../tapestry-01.png' }, { imgSrc: '../tapestry-01.png' }]}
|
|
94
|
+
/>
|
|
95
|
+
))}
|
|
96
|
+
</div>
|
|
97
|
+
),
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
export const Horizontal: Story = {
|
|
101
|
+
tags: ['autodocs'],
|
|
102
|
+
render: () => (
|
|
103
|
+
<div
|
|
104
|
+
style={{
|
|
105
|
+
gap: '1em',
|
|
106
|
+
display: 'grid',
|
|
107
|
+
justifyContent: 'center',
|
|
108
|
+
textAlign: 'center',
|
|
109
|
+
gridTemplate: `auto auto / repeat(${sizes.length}, min-content)`,
|
|
110
|
+
}}
|
|
111
|
+
>
|
|
112
|
+
{sizes.map((size) => (
|
|
113
|
+
<Body type="body-large-bold">{size}</Body>
|
|
114
|
+
))}
|
|
115
|
+
|
|
116
|
+
{sizes.map((size) => (
|
|
117
|
+
<AvatarLayout
|
|
118
|
+
key={size}
|
|
119
|
+
size={size}
|
|
120
|
+
orientation="horizontal"
|
|
121
|
+
avatars={[{ asset: <Freeze /> }, { asset: <Freeze /> }]}
|
|
122
|
+
/>
|
|
123
|
+
))}
|
|
124
|
+
|
|
125
|
+
{sizes.map((size) => (
|
|
126
|
+
<AvatarLayout
|
|
127
|
+
key={size}
|
|
128
|
+
size={size}
|
|
129
|
+
orientation="horizontal"
|
|
130
|
+
interactive
|
|
131
|
+
avatars={[{ asset: <Freeze /> }, { asset: <Freeze /> }]}
|
|
132
|
+
/>
|
|
133
|
+
))}
|
|
134
|
+
|
|
135
|
+
{sizes.map((size) => (
|
|
136
|
+
<AvatarLayout
|
|
137
|
+
key={size}
|
|
138
|
+
size={size}
|
|
139
|
+
orientation="horizontal"
|
|
140
|
+
avatars={[{ profileName: 'Jay Jay' }, { profileName: 'Amy Amy' }]}
|
|
141
|
+
/>
|
|
142
|
+
))}
|
|
143
|
+
|
|
144
|
+
{sizes.map((size) => (
|
|
145
|
+
<AvatarLayout
|
|
146
|
+
key={size}
|
|
147
|
+
size={size}
|
|
148
|
+
orientation="horizontal"
|
|
149
|
+
interactive
|
|
150
|
+
avatars={[{ profileName: 'Jay Jay' }, { profileName: 'Amy Amy' }]}
|
|
151
|
+
/>
|
|
152
|
+
))}
|
|
153
|
+
|
|
154
|
+
{sizes.map((size) => (
|
|
155
|
+
<AvatarLayout
|
|
156
|
+
key={size}
|
|
157
|
+
size={size}
|
|
158
|
+
orientation="horizontal"
|
|
159
|
+
avatars={[{ asset: <Flag code="br" /> }, { asset: <Flag code="jp" /> }]}
|
|
160
|
+
/>
|
|
161
|
+
))}
|
|
162
|
+
|
|
163
|
+
{sizes.map((size) => (
|
|
164
|
+
<AvatarLayout
|
|
165
|
+
key={size}
|
|
166
|
+
size={size}
|
|
167
|
+
orientation="horizontal"
|
|
168
|
+
avatars={[{ asset: <Flag code="eu" /> }, { asset: <Flag code="eu" /> }]}
|
|
169
|
+
/>
|
|
170
|
+
))}
|
|
171
|
+
|
|
172
|
+
{sizes.map((size) => (
|
|
173
|
+
<AvatarLayout
|
|
174
|
+
key={size}
|
|
175
|
+
size={size}
|
|
176
|
+
orientation="horizontal"
|
|
177
|
+
avatars={[{ imgSrc: '../tapestry-01.png' }, { imgSrc: '../tapestry-01.png' }]}
|
|
178
|
+
/>
|
|
179
|
+
))}
|
|
180
|
+
</div>
|
|
181
|
+
),
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
export const EdgeInstances: Story = {
|
|
185
|
+
tags: ['autodocs'],
|
|
186
|
+
render: () => (
|
|
187
|
+
<div
|
|
188
|
+
style={{
|
|
189
|
+
gap: '1em',
|
|
190
|
+
display: 'grid',
|
|
191
|
+
justifyContent: 'space-between',
|
|
192
|
+
gridTemplate: `auto auto / repeat(2, min-content)`,
|
|
193
|
+
}}
|
|
194
|
+
>
|
|
195
|
+
<AvatarLayout
|
|
196
|
+
orientation="diagonal"
|
|
197
|
+
avatars={[{ asset: <Flag code="gb" /> }, { asset: <Flag code="jp" /> }]}
|
|
198
|
+
/>
|
|
199
|
+
|
|
200
|
+
<AvatarLayout
|
|
201
|
+
orientation="horizontal"
|
|
202
|
+
interactive
|
|
203
|
+
avatars={[
|
|
204
|
+
{ imgSrc: '../avatar-squere-dude.webp' },
|
|
205
|
+
{ asset: null, style: { border: '1px dashed var(--color-border-neutral)' } },
|
|
206
|
+
]}
|
|
207
|
+
/>
|
|
208
|
+
|
|
209
|
+
<AvatarLayout
|
|
210
|
+
orientation="horizontal"
|
|
211
|
+
interactive
|
|
212
|
+
avatars={[
|
|
213
|
+
{ imgSrc: '../avatar-square-dude.webp' },
|
|
214
|
+
{
|
|
215
|
+
asset: <Plane />,
|
|
216
|
+
style: { backgroundColor: 'var(--color-bright-pink)' },
|
|
217
|
+
},
|
|
218
|
+
]}
|
|
219
|
+
/>
|
|
220
|
+
|
|
221
|
+
<AvatarLayout
|
|
222
|
+
orientation="horizontal"
|
|
223
|
+
interactive
|
|
224
|
+
avatars={[
|
|
225
|
+
{
|
|
226
|
+
asset: <Graph />,
|
|
227
|
+
style: { color: 'rgb(22, 51, 0)', backgroundColor: 'rgb(203, 217, 195)' },
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
asset: <Rewards />,
|
|
231
|
+
style: { color: 'rgb(203, 217, 195)', backgroundColor: 'rgb(22, 51, 0)' },
|
|
232
|
+
},
|
|
233
|
+
]}
|
|
234
|
+
/>
|
|
235
|
+
|
|
236
|
+
<AvatarLayout
|
|
237
|
+
orientation="horizontal"
|
|
238
|
+
interactive
|
|
239
|
+
avatars={[
|
|
240
|
+
{ asset: <Flag code="gb" /> },
|
|
241
|
+
{ asset: '3+', style: { border: '1px dashed var(--color-border-neutral)' } },
|
|
242
|
+
]}
|
|
243
|
+
/>
|
|
244
|
+
|
|
245
|
+
<AvatarLayout
|
|
246
|
+
orientation="horizontal"
|
|
247
|
+
avatars={[{ imgSrc: '../avatar-rectangle-fox.webp' }, { profileName: 'Jay Jay' }]}
|
|
248
|
+
/>
|
|
249
|
+
|
|
250
|
+
<AvatarLayout
|
|
251
|
+
interactive
|
|
252
|
+
orientation="horizontal"
|
|
253
|
+
avatars={[
|
|
254
|
+
{ imgSrc: '../avatar-rectangle-fox.webp' },
|
|
255
|
+
{ imgSrc: '../avatar-square-dude.webp' },
|
|
256
|
+
{ asset: '7+' },
|
|
257
|
+
]}
|
|
258
|
+
/>
|
|
259
|
+
|
|
260
|
+
<AvatarLayout
|
|
261
|
+
interactive
|
|
262
|
+
orientation="horizontal"
|
|
263
|
+
avatars={[{ asset: <Flag code="gb" /> }, { asset: <Flag code="br" /> }, { asset: '3+' }]}
|
|
264
|
+
/>
|
|
265
|
+
|
|
266
|
+
<AvatarLayout
|
|
267
|
+
orientation="horizontal"
|
|
268
|
+
avatars={[
|
|
269
|
+
{ asset: <Flag code="gb" /> },
|
|
270
|
+
{ asset: <Flag code="br" /> },
|
|
271
|
+
{ asset: <Flag code="jp" /> },
|
|
272
|
+
{ asset: '3+' },
|
|
273
|
+
]}
|
|
274
|
+
/>
|
|
275
|
+
</div>
|
|
276
|
+
),
|
|
277
|
+
};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { clsx } from 'clsx';
|
|
2
|
+
import AvatarView, { AvatarViewProps } from '../avatarView';
|
|
3
|
+
|
|
4
|
+
type SingleAvatarType = { asset?: AvatarViewProps['children'] } & Omit<
|
|
5
|
+
AvatarViewProps,
|
|
6
|
+
'notification' | 'selected' | 'size' | 'badge' | 'children' | 'interactive'
|
|
7
|
+
>;
|
|
8
|
+
|
|
9
|
+
export type Props = {
|
|
10
|
+
avatars: SingleAvatarType[];
|
|
11
|
+
orientation?: 'horizontal' | 'diagonal';
|
|
12
|
+
} & Pick<
|
|
13
|
+
AvatarViewProps,
|
|
14
|
+
'size' | 'interactive' | 'className' | 'role' | 'aria-label' | 'aria-labelledby' | 'aria-hidden'
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
export default function AvatarLayout({
|
|
18
|
+
avatars = [],
|
|
19
|
+
orientation = 'horizontal',
|
|
20
|
+
size = 48,
|
|
21
|
+
className,
|
|
22
|
+
interactive,
|
|
23
|
+
...restProps
|
|
24
|
+
}: Props) {
|
|
25
|
+
const isDiagonal = orientation === 'diagonal';
|
|
26
|
+
const avatarSize = isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size]?.avatarSize : size;
|
|
27
|
+
return (
|
|
28
|
+
<div
|
|
29
|
+
className={clsx('np-avatar-layout', `np-avatar-layout-${orientation}`, className)}
|
|
30
|
+
style={{
|
|
31
|
+
// @ts-expect-error CSS custom props allowed
|
|
32
|
+
'--np-avatar-layout-size': `${size}px`,
|
|
33
|
+
'--np-avatar-size': `${avatarSize}px`,
|
|
34
|
+
'--np-avatar-offset': `${isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size].offset : HORIZONTAL_LAYOUT_OFFSET[size]}px`,
|
|
35
|
+
}}
|
|
36
|
+
{...restProps}
|
|
37
|
+
>
|
|
38
|
+
{avatars.length < 2 || (size === 16 && isDiagonal)
|
|
39
|
+
? null
|
|
40
|
+
: avatars.map(({ asset, style, ...avatar }, index) => (
|
|
41
|
+
<div
|
|
42
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
43
|
+
key={index}
|
|
44
|
+
className={clsx(
|
|
45
|
+
{ [`np-avatar-layout-${orientation}-child`]: index !== 0 },
|
|
46
|
+
{ [`np-avatar-layout-${orientation}-mask`]: index !== avatars.length - 1 },
|
|
47
|
+
)}
|
|
48
|
+
>
|
|
49
|
+
<AvatarView
|
|
50
|
+
{...avatar}
|
|
51
|
+
size={avatarSize as Props['size']}
|
|
52
|
+
style={{
|
|
53
|
+
...(isDiagonal && {
|
|
54
|
+
'--circle-size': `${avatarSize}px`,
|
|
55
|
+
'--circle-icon-size': `${DIAGONAL_LAYOUT_STYLE_CONFIG[size].iconSize}px`,
|
|
56
|
+
'--circle-font-size': `${DIAGONAL_LAYOUT_STYLE_CONFIG[size].fontSize}px`,
|
|
57
|
+
}),
|
|
58
|
+
...style,
|
|
59
|
+
}}
|
|
60
|
+
interactive={interactive}
|
|
61
|
+
>
|
|
62
|
+
{asset}
|
|
63
|
+
</AvatarView>
|
|
64
|
+
</div>
|
|
65
|
+
))}
|
|
66
|
+
</div>
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** Diagonal layout have custom sizes for avatar, font and icon */
|
|
71
|
+
const DIAGONAL_LAYOUT_STYLE_CONFIG = {
|
|
72
|
+
// Diagonal layout doesn't support 16 size
|
|
73
|
+
16: { avatarSize: undefined, offset: undefined, fontSize: undefined, iconSize: undefined },
|
|
74
|
+
24: { avatarSize: 15, offset: 2.5, fontSize: 8, iconSize: 11.25 },
|
|
75
|
+
32: { avatarSize: 20, offset: 2.5, fontSize: 12, iconSize: 15 },
|
|
76
|
+
40: { avatarSize: 24, offset: 4.5, fontSize: 12, iconSize: 18 },
|
|
77
|
+
48: { avatarSize: 30, offset: 3.5, fontSize: 14, iconSize: 16.87 },
|
|
78
|
+
56: { avatarSize: 34, offset: 5, fontSize: 14, iconSize: 19.12 },
|
|
79
|
+
72: { avatarSize: 44, offset: 6, fontSize: 22, iconSize: 22 },
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/** Horizontal layout have custom offset between avatars */
|
|
83
|
+
const HORIZONTAL_LAYOUT_OFFSET = {
|
|
84
|
+
16: 2,
|
|
85
|
+
24: 2,
|
|
86
|
+
32: 4,
|
|
87
|
+
40: 4,
|
|
88
|
+
48: 4,
|
|
89
|
+
56: 5,
|
|
90
|
+
72: 5,
|
|
91
|
+
};
|
|
@@ -4,7 +4,7 @@ import { ControlType, Type, Priority, Size } from '../common';
|
|
|
4
4
|
import { render, screen, userEvent } from '../test-utils';
|
|
5
5
|
|
|
6
6
|
import Button from '.';
|
|
7
|
-
import messages from '
|
|
7
|
+
import messages from '../i18n/commonMessages/Button.messages';
|
|
8
8
|
import { ButtonReferenceType } from './Button';
|
|
9
9
|
|
|
10
10
|
const { ACCENT, POSITIVE, NEGATIVE } = ControlType;
|
package/src/button/Button.tsx
CHANGED
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
} from '../common';
|
|
20
20
|
import ProcessIndicator from '../processIndicator';
|
|
21
21
|
|
|
22
|
-
import messages from '
|
|
22
|
+
import messages from '../i18n/commonMessages/Button.messages';
|
|
23
23
|
import { typeClassMap, priorityClassMap } from './classMap';
|
|
24
24
|
import { establishNewPriority, establishNewType, logDeprecationNotices } from './legacyUtils';
|
|
25
25
|
|
package/src/i18n/es.json
CHANGED
|
@@ -35,6 +35,11 @@
|
|
|
35
35
|
"neptune.Summary.statusDone": "Apartado listo",
|
|
36
36
|
"neptune.Summary.statusNotDone": "Apartado a completar",
|
|
37
37
|
"neptune.Summary.statusPending": "Apartado pendiente",
|
|
38
|
+
"neptune.Table.actionHeader": "Acción",
|
|
39
|
+
"neptune.Table.emptyData": "No se han encontrado resultados",
|
|
40
|
+
"neptune.Table.loaded": "Los datos de la tabla se han cargado",
|
|
41
|
+
"neptune.Table.loading": "Los datos de la tabla se están cargando",
|
|
42
|
+
"neptune.Table.refreshPage": "Actualizar página",
|
|
38
43
|
"neptune.Upload.csButtonText": "¿Quieres subir otro archivo?",
|
|
39
44
|
"neptune.Upload.csFailureText": "La carga del archivo ha fallado. Por favor, inténtalo de nuevo",
|
|
40
45
|
"neptune.Upload.csSuccessText": "¡Se ha subido el archivo!",
|
package/src/i18n/pl.json
CHANGED
|
@@ -35,6 +35,11 @@
|
|
|
35
35
|
"neptune.Summary.statusDone": "Czynność wykonana",
|
|
36
36
|
"neptune.Summary.statusNotDone": "Czynność do wykonania",
|
|
37
37
|
"neptune.Summary.statusPending": "Czynność oczekująca",
|
|
38
|
+
"neptune.Table.actionHeader": "Akcja",
|
|
39
|
+
"neptune.Table.emptyData": "Nie znaleziono wyników",
|
|
40
|
+
"neptune.Table.loaded": "Wczytano dane tabeli",
|
|
41
|
+
"neptune.Table.loading": "Wczytywanie danych tabeli",
|
|
42
|
+
"neptune.Table.refreshPage": "Odśwież stronę",
|
|
38
43
|
"neptune.Upload.csButtonText": "Prześlij kolejny plik?",
|
|
39
44
|
"neptune.Upload.csFailureText": "Przesyłanie nie powiodło się. Proszę spróbować ponownie",
|
|
40
45
|
"neptune.Upload.csSuccessText": "Przesyłanie zakończone!",
|
package/src/i18n/ro.json
CHANGED
|
@@ -35,6 +35,11 @@
|
|
|
35
35
|
"neptune.Summary.statusDone": "Finalizat",
|
|
36
36
|
"neptune.Summary.statusNotDone": "De făcut",
|
|
37
37
|
"neptune.Summary.statusPending": "În așteptare",
|
|
38
|
+
"neptune.Table.actionHeader": "Acțiune",
|
|
39
|
+
"neptune.Table.emptyData": "Nu s-a găsit niciun rezultat",
|
|
40
|
+
"neptune.Table.loaded": "Datele din tabel au fost încărcate",
|
|
41
|
+
"neptune.Table.loading": "Datele din tabel se încarcă",
|
|
42
|
+
"neptune.Table.refreshPage": "Reîncarcă pagina",
|
|
38
43
|
"neptune.Upload.csButtonText": "Încarci un alt fișier?",
|
|
39
44
|
"neptune.Upload.csFailureText": "Încărcare eșuată. Te rugăm să încerci din nou",
|
|
40
45
|
"neptune.Upload.csSuccessText": "Încărcare completă!",
|
package/src/index.ts
CHANGED
|
@@ -9,6 +9,7 @@ export type { SelectOptionProps, SelectOptionValue, SelectOptiopsSection } from
|
|
|
9
9
|
export type { AlertAction, AlertProps, AlertType } from './alert';
|
|
10
10
|
export type { AvatarProps } from './avatar';
|
|
11
11
|
export type { AvatarViewProps } from './avatarView';
|
|
12
|
+
export type { AvatarLayoutProps } from './avatarLayout';
|
|
12
13
|
export type { BadgeProps } from './badge';
|
|
13
14
|
export type { CardProps } from './card';
|
|
14
15
|
export type { CarouselProps } from './carousel';
|
|
@@ -105,6 +106,7 @@ export { default as SelectOption } from './selectOption';
|
|
|
105
106
|
export { default as Alert } from './alert';
|
|
106
107
|
export { default as Avatar } from './avatar';
|
|
107
108
|
export { default as AvatarView } from './avatarView';
|
|
109
|
+
export { default as avatarLayout } from './avatarLayout';
|
|
108
110
|
export { default as AvatarWrapper } from './avatarWrapper';
|
|
109
111
|
export { default as Badge } from './badge';
|
|
110
112
|
export { default as Body } from './body';
|
package/src/logo/Logo.tsx
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { clsx } from 'clsx';
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
import {
|
|
4
|
+
LogoWise,
|
|
5
|
+
LogoWiseInverse,
|
|
6
|
+
LogoWisePlatform,
|
|
7
|
+
LogoWisePlatformInverse,
|
|
8
|
+
LogoFlag,
|
|
9
|
+
LogoFlagInverse,
|
|
10
|
+
LogoFlagPlatform,
|
|
11
|
+
LogoFlagPlatformInverse,
|
|
12
|
+
} from './logo-assets';
|
|
11
13
|
|
|
12
14
|
const svgPaths = {
|
|
13
15
|
WISE: LogoWise,
|