@hero-design/rn 8.93.0 → 8.94.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.
Files changed (65) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/CHANGELOG.md +6 -0
  3. package/es/index.js +809 -57
  4. package/lib/index.js +808 -56
  5. package/package.json +1 -1
  6. package/src/components/{Empty → StatusScreens/Empty}/StyledEmpty.tsx +11 -2
  7. package/src/components/StatusScreens/Empty/__tests__/__snapshots__/index.spec.tsx.snap +468 -0
  8. package/src/components/{Empty → StatusScreens/Empty}/__tests__/index.spec.tsx +16 -2
  9. package/src/components/StatusScreens/Empty/index.tsx +97 -0
  10. package/src/components/{Error → StatusScreens/Error}/StyledError.tsx +4 -4
  11. package/src/components/{Error → StatusScreens/Error}/__tests__/__snapshots__/index.spec.tsx.snap +300 -0
  12. package/src/components/{Error → StatusScreens/Error}/__tests__/index.spec.tsx +13 -3
  13. package/src/components/{Error → StatusScreens/Error}/index.tsx +39 -7
  14. package/src/components/StatusScreens/StatusIcon/__tests__/index.spec.tsx +31 -0
  15. package/src/components/StatusScreens/StatusIcon/assets/Add.tsx +49 -0
  16. package/src/components/StatusScreens/StatusIcon/assets/Boom.tsx +61 -0
  17. package/src/components/StatusScreens/StatusIcon/assets/Build.tsx +45 -0
  18. package/src/components/StatusScreens/StatusIcon/assets/Clock.tsx +38 -0
  19. package/src/components/StatusScreens/StatusIcon/assets/Confetti.tsx +78 -0
  20. package/src/components/StatusScreens/StatusIcon/assets/Connections.tsx +57 -0
  21. package/src/components/StatusScreens/StatusIcon/assets/Error.tsx +55 -0
  22. package/src/components/StatusScreens/StatusIcon/assets/Info.tsx +35 -0
  23. package/src/components/StatusScreens/StatusIcon/assets/List.tsx +37 -0
  24. package/src/components/StatusScreens/StatusIcon/assets/Location.tsx +37 -0
  25. package/src/components/StatusScreens/StatusIcon/assets/Merge.tsx +59 -0
  26. package/src/components/StatusScreens/StatusIcon/assets/Notifications.tsx +26 -0
  27. package/src/components/StatusScreens/StatusIcon/assets/Search.tsx +36 -0
  28. package/src/components/StatusScreens/StatusIcon/assets/Star.tsx +37 -0
  29. package/src/components/StatusScreens/StatusIcon/assets/Success.tsx +41 -0
  30. package/src/components/StatusScreens/StatusIcon/assets/User.tsx +43 -0
  31. package/src/components/StatusScreens/StatusIcon/index.tsx +63 -0
  32. package/src/components/StatusScreens/StatusIcon/types.ts +5 -0
  33. package/src/components/{Success → StatusScreens/Success}/StyledSuccess.tsx +4 -4
  34. package/src/components/{Success → StatusScreens/Success}/__tests__/__snapshots__/index.spec.tsx.snap +263 -0
  35. package/src/components/{Success → StatusScreens/Success}/__tests__/index.spec.tsx +13 -4
  36. package/src/components/{Success → StatusScreens/Success}/index.tsx +38 -7
  37. package/src/index.ts +3 -3
  38. package/stats/8.94.0/rn-stats.html +4842 -0
  39. package/types/components/{Empty → StatusScreens/Empty}/StyledEmpty.d.ts +9 -3
  40. package/types/components/{Empty → StatusScreens/Empty}/index.d.ts +8 -3
  41. package/types/components/{Error → StatusScreens/Error}/StyledError.d.ts +6 -6
  42. package/types/components/{Error → StatusScreens/Error}/index.d.ts +6 -1
  43. package/types/components/StatusScreens/StatusIcon/assets/Add.d.ts +4 -0
  44. package/types/components/StatusScreens/StatusIcon/assets/Boom.d.ts +4 -0
  45. package/types/components/StatusScreens/StatusIcon/assets/Build.d.ts +4 -0
  46. package/types/components/StatusScreens/StatusIcon/assets/Clock.d.ts +4 -0
  47. package/types/components/StatusScreens/StatusIcon/assets/Confetti.d.ts +4 -0
  48. package/types/components/StatusScreens/StatusIcon/assets/Connections.d.ts +4 -0
  49. package/types/components/StatusScreens/StatusIcon/assets/Error.d.ts +4 -0
  50. package/types/components/StatusScreens/StatusIcon/assets/Info.d.ts +4 -0
  51. package/types/components/StatusScreens/StatusIcon/assets/List.d.ts +4 -0
  52. package/types/components/StatusScreens/StatusIcon/assets/Location.d.ts +4 -0
  53. package/types/components/StatusScreens/StatusIcon/assets/Merge.d.ts +4 -0
  54. package/types/components/StatusScreens/StatusIcon/assets/Notifications.d.ts +4 -0
  55. package/types/components/StatusScreens/StatusIcon/assets/Search.d.ts +4 -0
  56. package/types/components/StatusScreens/StatusIcon/assets/Star.d.ts +4 -0
  57. package/types/components/StatusScreens/StatusIcon/assets/Success.d.ts +4 -0
  58. package/types/components/StatusScreens/StatusIcon/assets/User.d.ts +4 -0
  59. package/types/components/StatusScreens/StatusIcon/index.d.ts +26 -0
  60. package/types/components/StatusScreens/StatusIcon/types.d.ts +5 -0
  61. package/types/components/{Success → StatusScreens/Success}/StyledSuccess.d.ts +5 -5
  62. package/types/components/{Success → StatusScreens/Success}/index.d.ts +6 -1
  63. package/types/index.d.ts +3 -3
  64. package/src/components/Empty/__tests__/__snapshots__/index.spec.tsx.snap +0 -218
  65. package/src/components/Empty/index.tsx +0 -73
@@ -147,6 +147,306 @@ exports[`Error renders error screen with custom image element correctly 1`] = `
147
147
  </View>
148
148
  `;
149
149
 
150
+ exports[`Error renders error screen with icon correctly 1`] = `
151
+ <View
152
+ style={
153
+ {
154
+ "flex": 1,
155
+ }
156
+ }
157
+ >
158
+ <View
159
+ style={
160
+ [
161
+ {
162
+ "backgroundColor": "#f6f6f7",
163
+ "display": "flex",
164
+ "flex": 1,
165
+ "flexDirection": "column",
166
+ },
167
+ undefined,
168
+ ]
169
+ }
170
+ themeVariant="in-page"
171
+ >
172
+ <View
173
+ style={
174
+ [
175
+ {
176
+ "alignItems": "center",
177
+ "display": "flex",
178
+ "flex": 1,
179
+ "flexDirection": "column",
180
+ "justifyContent": "center",
181
+ "padding": 24,
182
+ },
183
+ undefined,
184
+ ]
185
+ }
186
+ >
187
+ <View
188
+ style={
189
+ [
190
+ {
191
+ "alignItems": "center",
192
+ "height": 176,
193
+ "marginBottom": 24,
194
+ "width": 176,
195
+ },
196
+ undefined,
197
+ ]
198
+ }
199
+ >
200
+ <RNSVGSvgView
201
+ align="xMidYMid"
202
+ bbHeight="72"
203
+ bbWidth="72"
204
+ focusable={false}
205
+ height="72"
206
+ meetOrSlice={0}
207
+ minX={0}
208
+ minY={0}
209
+ style={
210
+ [
211
+ {
212
+ "backgroundColor": "transparent",
213
+ "borderWidth": 0,
214
+ },
215
+ {
216
+ "flex": 0,
217
+ "height": 72,
218
+ "width": 72,
219
+ },
220
+ ]
221
+ }
222
+ testID="error-icon"
223
+ vbHeight={72}
224
+ vbWidth={72}
225
+ width="72"
226
+ >
227
+ <RNSVGGroup
228
+ fill={
229
+ {
230
+ "payload": 4278190080,
231
+ "type": 0,
232
+ }
233
+ }
234
+ >
235
+ <RNSVGDefs>
236
+ <RNSVGClipPath
237
+ fill={
238
+ {
239
+ "payload": 4278190080,
240
+ "type": 0,
241
+ }
242
+ }
243
+ name="clip0_19647_1720"
244
+ >
245
+ <RNSVGRect
246
+ fill={
247
+ {
248
+ "payload": 4294967295,
249
+ "type": 0,
250
+ }
251
+ }
252
+ height="72"
253
+ propList={
254
+ [
255
+ "fill",
256
+ ]
257
+ }
258
+ width="71.6316"
259
+ x={0}
260
+ y={0}
261
+ />
262
+ </RNSVGClipPath>
263
+ </RNSVGDefs>
264
+ <RNSVGRect
265
+ fill={
266
+ {
267
+ "payload": 4278190080,
268
+ "type": 0,
269
+ }
270
+ }
271
+ height="60.6316"
272
+ propList={
273
+ [
274
+ "stroke",
275
+ ]
276
+ }
277
+ rx="20"
278
+ stroke={
279
+ {
280
+ "payload": 0,
281
+ "type": 0,
282
+ }
283
+ }
284
+ width="60.6316"
285
+ x={0}
286
+ y="11.3684"
287
+ />
288
+ <RNSVGRect
289
+ fill={
290
+ {
291
+ "payload": 0,
292
+ "type": 0,
293
+ }
294
+ }
295
+ height="56.6316"
296
+ propList={
297
+ [
298
+ "fill",
299
+ "stroke",
300
+ "strokeWidth",
301
+ ]
302
+ }
303
+ rx="18"
304
+ stroke={
305
+ {
306
+ "payload": 4282390880,
307
+ "type": 0,
308
+ }
309
+ }
310
+ strokeWidth="4"
311
+ width="56.6316"
312
+ x="13"
313
+ y="2"
314
+ />
315
+ <RNSVGRect
316
+ fill={
317
+ {
318
+ "payload": 4282390880,
319
+ "type": 0,
320
+ }
321
+ }
322
+ height="21.4"
323
+ propList={
324
+ [
325
+ "fill",
326
+ "stroke",
327
+ "strokeWidth",
328
+ ]
329
+ }
330
+ rx="1.2"
331
+ stroke={
332
+ {
333
+ "payload": 4282390880,
334
+ "type": 0,
335
+ }
336
+ }
337
+ strokeWidth="0.4"
338
+ width="4.4"
339
+ x="38.8"
340
+ y="15.8"
341
+ />
342
+ <RNSVGRect
343
+ fill={
344
+ {
345
+ "payload": 4282390880,
346
+ "type": 0,
347
+ }
348
+ }
349
+ height="4.4"
350
+ propList={
351
+ [
352
+ "fill",
353
+ "stroke",
354
+ "strokeWidth",
355
+ ]
356
+ }
357
+ rx="1.2"
358
+ stroke={
359
+ {
360
+ "payload": 4282390880,
361
+ "type": 0,
362
+ }
363
+ }
364
+ strokeWidth="0.4"
365
+ width="4.4"
366
+ x="38.8"
367
+ y="40.8"
368
+ />
369
+ </RNSVGGroup>
370
+ </RNSVGSvgView>
371
+ </View>
372
+ <Text
373
+ allowFontScaling={false}
374
+ style={
375
+ [
376
+ {
377
+ "color": "#001f23",
378
+ "fontFamily": "Saiga-Medium",
379
+ "fontSize": 24,
380
+ "letterSpacing": 0.24,
381
+ "lineHeight": 32,
382
+ },
383
+ [
384
+ {
385
+ "color": "#001f23",
386
+ "marginBottom": 8,
387
+ "textAlign": "center",
388
+ },
389
+ undefined,
390
+ ],
391
+ ]
392
+ }
393
+ themeIntent="body"
394
+ themeLevel="h4"
395
+ themeTypeface="playful"
396
+ >
397
+ We’re sorry, something went wrong
398
+ </Text>
399
+ <Text
400
+ allowFontScaling={false}
401
+ style={
402
+ [
403
+ {
404
+ "color": "#001f23",
405
+ "fontFamily": "Saiga-Regular",
406
+ "fontSize": 18,
407
+ "letterSpacing": 0.54,
408
+ "lineHeight": 26,
409
+ },
410
+ [
411
+ {
412
+ "color": "#4d6265",
413
+ "textAlign": "center",
414
+ },
415
+ undefined,
416
+ ],
417
+ ]
418
+ }
419
+ themeIntent="body"
420
+ themeTypeface="playful"
421
+ themeVariant="regular"
422
+ >
423
+ Please try again later
424
+ </Text>
425
+ </View>
426
+ </View>
427
+ <View
428
+ pointerEvents="box-none"
429
+ position="bottom"
430
+ style={
431
+ [
432
+ {
433
+ "bottom": 0,
434
+ "elevation": 9999,
435
+ "flexDirection": "column-reverse",
436
+ "left": 0,
437
+ "paddingHorizontal": 24,
438
+ "paddingVertical": 16,
439
+ "position": "absolute",
440
+ "right": 0,
441
+ "top": 0,
442
+ },
443
+ undefined,
444
+ ]
445
+ }
446
+ />
447
+ </View>
448
+ `;
449
+
150
450
  exports[`Error renders error screen with image correctly 1`] = `
151
451
  <View
152
452
  style={
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
2
  import { fireEvent } from '@testing-library/react-native';
3
- import renderWithTheme from '../../../testHelpers/renderWithTheme';
3
+ import renderWithTheme from '../../../../testHelpers/renderWithTheme';
4
4
  import Error from '..';
5
- import Image from '../../Image';
6
- import Portal from '../../Portal';
5
+ import Image from '../../../Image';
6
+ import Portal from '../../../Portal';
7
7
 
8
8
  const title = `We’re sorry, something went wrong`;
9
9
  const description = 'Please try again later';
@@ -45,6 +45,16 @@ describe('Error', () => {
45
45
  expect(getByTestId('error-image')).toBeTruthy();
46
46
  expect(toJSON()).toMatchSnapshot();
47
47
  });
48
+
49
+ it('renders error screen with icon correctly', () => {
50
+ const { getByTestId, toJSON } = renderWithTheme(
51
+ <Error title={title} description={description} icon="error" />
52
+ );
53
+
54
+ expect(toJSON()).toMatchSnapshot();
55
+ expect(getByTestId('error-icon')).toBeVisible();
56
+ });
57
+
48
58
  it('renders full screen error page correctly', () => {
49
59
  const { toJSON, getByText, getByTestId } = renderWithTheme(
50
60
  <Portal.Provider>
@@ -23,8 +23,10 @@ import {
23
23
  StyledErrorModal,
24
24
  StyledErrorTitle,
25
25
  } from './StyledError';
26
- import { useDeprecation } from '../../utils/hooks';
27
- import { ImageProps } from '../Image/index';
26
+ import { useDeprecation } from '../../../utils/hooks';
27
+ import { ImageProps } from '../../Image/index';
28
+ import StatusIcon from '../StatusIcon';
29
+ import type { StatusIconName } from '../StatusIcon';
28
30
 
29
31
  interface ErrorProps extends ViewProps {
30
32
  /**
@@ -72,6 +74,10 @@ interface ErrorProps extends ViewProps {
72
74
  * Callback when the secondary button is pressed.
73
75
  */
74
76
  onSecondaryCtaPress?: () => void;
77
+ /**
78
+ * Status icon to be displayed, this will replace the image prop.
79
+ */
80
+ icon?: StatusIconName;
75
81
  }
76
82
 
77
83
  type onCloseCallbackType = 'cta' | 'secondaryCta' | null;
@@ -93,6 +99,35 @@ const renderImage = (
93
99
  );
94
100
  };
95
101
 
102
+ const renderImageOrIcon = ({
103
+ image,
104
+ icon,
105
+ }: {
106
+ image?:
107
+ | ReactElement<ImageProps | RNImageProps>
108
+ | ImageSourcePropType
109
+ | string;
110
+ icon?: StatusIconName;
111
+ }) => {
112
+ if (icon) {
113
+ return (
114
+ <StyledErrorImageContainer>
115
+ <StatusIcon icon={icon} testID="error-icon" />
116
+ </StyledErrorImageContainer>
117
+ );
118
+ }
119
+
120
+ if (image) {
121
+ return (
122
+ <StyledErrorImageContainer>
123
+ {renderImage(image)}
124
+ </StyledErrorImageContainer>
125
+ );
126
+ }
127
+
128
+ return null;
129
+ };
130
+
96
131
  const ErrorPage = ({
97
132
  variant = 'in-page',
98
133
  title,
@@ -103,6 +138,7 @@ const ErrorPage = ({
103
138
  onCtaPress,
104
139
  secondaryCtaText,
105
140
  onSecondaryCtaPress,
141
+ icon,
106
142
  ...nativeProps
107
143
  }: ErrorProps): ReactElement => {
108
144
  const showCta = ctaText && onCtaPress !== undefined;
@@ -116,11 +152,7 @@ const ErrorPage = ({
116
152
  {...nativeProps}
117
153
  >
118
154
  <StyledErrorContent>
119
- {image && (
120
- <StyledErrorImageContainer>
121
- {renderImage(image)}
122
- </StyledErrorImageContainer>
123
- )}
155
+ {renderImageOrIcon({ image, icon })}
124
156
  <StyledErrorTitle level="h4" typeface="playful">
125
157
  {title}
126
158
  </StyledErrorTitle>
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import StatusIcon, { StatusIconName } from '..';
3
+ import renderWithTheme from '../../../../testHelpers/renderWithTheme';
4
+
5
+ describe('StatusIcon', () => {
6
+ it.each`
7
+ icon
8
+ ${'add'}
9
+ ${'boom'}
10
+ ${'build'}
11
+ ${'clock'}
12
+ ${'confetti'}
13
+ ${'connections'}
14
+ ${'error'}
15
+ ${'info'}
16
+ ${'list'}
17
+ ${'location'}
18
+ ${'merge'}
19
+ ${'notifications'}
20
+ ${'search'}
21
+ ${'star'}
22
+ ${'success'}
23
+ ${'user'}
24
+ `('should render correctly', ({ icon }) => {
25
+ const { getByTestId } = renderWithTheme(
26
+ <StatusIcon icon={icon as StatusIconName} testID={`${icon}-icon`} />
27
+ );
28
+
29
+ expect(getByTestId(`${icon}-icon`)).toBeVisible();
30
+ });
31
+ });
@@ -0,0 +1,49 @@
1
+ import React from 'react';
2
+ import Svg, { Line, Rect } from 'react-native-svg';
3
+ import { StatusSvgProps } from '../types';
4
+
5
+ const Add = ({ stroke, fill, testID }: StatusSvgProps) => {
6
+ return (
7
+ <Svg width="73" height="72" viewBox="0 0 73 72" testID={testID}>
8
+ <Rect
9
+ x="0.100098"
10
+ y="11.3684"
11
+ width="60.6316"
12
+ height="60.6316"
13
+ rx="20"
14
+ fill={fill}
15
+ stroke="transparent"
16
+ />
17
+ <Line
18
+ x1="30.1001"
19
+ y1="30"
20
+ x2="53.1001"
21
+ y2="30"
22
+ stroke={stroke}
23
+ strokeWidth="4"
24
+ strokeLinecap="round"
25
+ />
26
+ <Line
27
+ x1="41.6001"
28
+ y1="18.5"
29
+ x2="41.6001"
30
+ y2="41.5"
31
+ stroke={stroke}
32
+ strokeWidth="4"
33
+ strokeLinecap="round"
34
+ />
35
+ <Rect
36
+ x="13.4685"
37
+ y="2"
38
+ width="56.6316"
39
+ height="56.6316"
40
+ rx="18"
41
+ stroke={stroke}
42
+ fill="transparent"
43
+ strokeWidth="4"
44
+ />
45
+ </Svg>
46
+ );
47
+ };
48
+
49
+ export default Add;
@@ -0,0 +1,61 @@
1
+ import React from 'react';
2
+ import Svg, { Path, Mask, Rect } from 'react-native-svg';
3
+ import { StatusSvgProps } from '../types';
4
+
5
+ const Boom = ({ stroke, fill, testID }: StatusSvgProps) => {
6
+ return (
7
+ <Svg width={74} height={79} viewBox="0 0 74 79" testID={testID}>
8
+ <Path
9
+ d="M17.762 51.247v12.16L2.996 41.693v-3.91l2.172-2.17h3.474l-.868-2.172-1.738-6.515 2.606-2.605 2.606-2.172-.434-6.514 4.343-1.303 3.908 1.303 3.475-2.606h4.343l6.514 9.989h-5.646c-3.33 9.265-9.989 27.882-9.989 28.229z"
10
+ fill={fill}
11
+ />
12
+ <Mask
13
+ id="a"
14
+ maskUnits="userSpaceOnUse"
15
+ x={0}
16
+ y={10.4197}
17
+ width={74}
18
+ height={68}
19
+ fill="#000"
20
+ >
21
+ <Path fill="#fff" d="M0 10.4197H74V78.4197H0z" />
22
+ <Path d="M6.684 50.157c.67 1.054 1.425 2.303 2.257 3.66 3.266 5.374 7.329 12.056 10.944 15.345.266.245.542.453.81.67 2.999 3.275 6.912 5.515 10.585 6.704 2.71.882 5.316 1.308 7.818 1.308 7.238 0 13.572-3.637 18.566-10.758a9.692 9.692 0 011.9-2.004l11.314-9.035a5.593 5.593 0 002.094-3.845 5.582 5.582 0 00-1.298-4.18c-1.945-2.316-5.537-2.606-7.99-.647l-6.46 5.166c-.244.186-.556.222-.682.14-.068-.045-.15-.185-.2-.438v-.778c.037-.371.127-.833.326-1.426l3.045-9.436h-.014l4.158-12.866c.959-2.954-.67-6.139-3.624-7.098a5.492 5.492 0 00-3.556.059c.29-1.276.15-2.606-.461-3.778a5.572 5.572 0 00-3.289-2.791c-2.954-.959-6.139.67-7.098 3.624l-.407 1.262a5.558 5.558 0 00-2.814-2.072c-2.954-.95-6.139.67-7.098 3.623l-.832 2.584-5.791-9.116c-1.67-2.62-5.153-3.407-7.781-1.737a5.618 5.618 0 00-2.235 2.777c-.8-1.031-1.91-1.773-3.208-2.063a5.608 5.608 0 00-4.252.743c-2.62 1.669-3.407 5.152-1.737 7.78l.705 1.118a5.608 5.608 0 00-3.393.846 5.583 5.583 0 00-2.479 3.533 5.608 5.608 0 00.742 4.253l1.76 2.768a5.61 5.61 0 00-3.393.846 5.583 5.583 0 00-2.479 3.534 5.608 5.608 0 00.742 4.252l4.805 7.473zM4.892 36.816a3.331 3.331 0 012.502-.44c.869.2 1.597.707 2.072 1.462l6.75 10.622c.172.267.43.44.719.511-.683 2.57-1.172 5.004-1.276 7.008-.081 1.67.06 3.23.349 4.714-1.819-2.687-3.601-5.605-5.094-8.07-.833-1.367-1.597-2.63-2.28-3.697L3.86 41.412a3.331 3.331 0 01-.439-2.502 3.291 3.291 0 011.47-2.094zm1.91-9.31c.198-.87.705-1.598 1.46-2.073a3.314 3.314 0 014.574 1.018l7.483 11.78c-.892 2.584-1.855 5.411-2.674 8.175L11.42 36.6l-4.18-6.592a3.264 3.264 0 01-.439-2.502zm5.88-11.812a3.331 3.331 0 012.502-.44c.869.2 1.597.707 2.072 1.462l6.682 10.527-2.085 6.438c-.173.543-.372 1.122-.58 1.75l-6.487-10.215-3.13-4.949c-.973-1.538-.525-3.6 1.026-4.573zm9.673-1.462c1.538-.986 3.6-.52 4.587 1.018l3.904 6.148c-1.172-.185-2.375-.022-3.452.534a5.534 5.534 0 00-2.465 2.538l-3.592-5.65a3.342 3.342 0 011.018-4.588zM54.9 47.958l-.439 1.357a9.392 9.392 0 00-.43 2.005c.014.348.014.696 0 1.04.118 1.09.593 1.715 1.01 2.072.045.045.104.09.149.127.276.199.592.325.927.393.833.186 1.774-.022 2.56-.624l6.452-5.153c1.484-1.18 3.623-1.031 4.772.326.58.697.856 1.565.765 2.466a3.301 3.301 0 01-1.226 2.27l-11.314 9.035a11.756 11.756 0 00-2.353 2.488c-6.17 8.803-14.173 11.685-23.786 8.582-.2-.068-.407-.14-.602-.222a23.216 23.216 0 01-4.253-2.013c-1.75-1.054-3.429-2.375-4.854-3.963-2.723-3.045-4.542-7.066-4.306-12.056.126-2.687 1.09-6.415 2.248-10.156.29-.95.602-1.91.914-2.85.267-.801.534-1.575.787-2.34.163-.474.326-.95.488-1.401.09-.276.2-.557.29-.824.068-.199.127-.38.199-.579.439-1.298.855-2.488 1.194-3.533l1.493-4.61.923-2.868.326-.986a3.308 3.308 0 011.647-1.937 3.321 3.321 0 014.682 3.963l-.303.95-1.701 5.28-.462 1.434-.51 1.43-.937 2.881c-.023.09-.023.172-.037.267-.045.52.254 1.031.778 1.194a1.161 1.161 0 001.462-.742l.117-.357.326-.995.29-.905.036-.09.045-.14.461-1.426.082-.253 2.524-7.804.045-.15.014-.022.453-1.411v-.023l.452-1.412.013-.022 1.425-4.402a3.34 3.34 0 014.18-2.144 3.34 3.34 0 012.145 4.18l-3.117 9.636-.461 1.434-.453 1.389-1.47 4.528-.778 2.42a1.161 1.161 0 001.1 1.52c.022 0 .035-.013.058-.013.045 0 .09-.014.14-.023a.9.9 0 00.267-.081c.045-.023.09-.045.127-.068.081-.045.15-.104.222-.172.036-.036.067-.059.09-.09.09-.105.163-.231.208-.371l1.018-3.14.905-2.778.37-1.135.372-1.158 1.203-3.705 1.226-3.8 1.194-3.683.172-.534.602-1.854 1.031-3.185a3.34 3.34 0 014.18-2.145c.846.276 1.53.855 1.937 1.647.407.787.475 1.692.208 2.538l-.728 2.248-.43 1.308-.068.208-.439 1.357-1.841 5.687-2.895 8.962-1.679 5.198a1.161 1.161 0 001.1 1.52 1.16 1.16 0 001.099-.801l.325-1.018.037-.127 1.538-4.772 2.352-7.261.326-.996.914-2.814 1.122-3.487.244-.751a3.32 3.32 0 014.18-2.131 3.325 3.325 0 012.13 4.18L57.426 40.21l-1.737 5.375-.2.624-.588 1.75z" />
23
+ </Mask>
24
+ <Path
25
+ d="M6.684 50.157c.67 1.054 1.425 2.303 2.257 3.66 3.266 5.374 7.329 12.056 10.944 15.345.266.245.542.453.81.67 2.999 3.275 6.912 5.515 10.585 6.704 2.71.882 5.316 1.308 7.818 1.308 7.238 0 13.572-3.637 18.566-10.758a9.692 9.692 0 011.9-2.004l11.314-9.035a5.593 5.593 0 002.094-3.845 5.582 5.582 0 00-1.298-4.18c-1.945-2.316-5.537-2.606-7.99-.647l-6.46 5.166c-.244.186-.556.222-.682.14-.068-.045-.15-.185-.2-.438v-.778c.037-.371.127-.833.326-1.426l3.045-9.436h-.014l4.158-12.866c.959-2.954-.67-6.139-3.624-7.098a5.492 5.492 0 00-3.556.059c.29-1.276.15-2.606-.461-3.778a5.572 5.572 0 00-3.289-2.791c-2.954-.959-6.139.67-7.098 3.624l-.407 1.262a5.558 5.558 0 00-2.814-2.072c-2.954-.95-6.139.67-7.098 3.623l-.832 2.584-5.791-9.116c-1.67-2.62-5.153-3.407-7.781-1.737a5.618 5.618 0 00-2.235 2.777c-.8-1.031-1.91-1.773-3.208-2.063a5.608 5.608 0 00-4.252.743c-2.62 1.669-3.407 5.152-1.737 7.78l.705 1.118a5.608 5.608 0 00-3.393.846 5.583 5.583 0 00-2.479 3.533 5.608 5.608 0 00.742 4.253l1.76 2.768a5.61 5.61 0 00-3.393.846 5.583 5.583 0 00-2.479 3.534 5.608 5.608 0 00.742 4.252l4.805 7.473zM4.892 36.816a3.331 3.331 0 012.502-.44c.869.2 1.597.707 2.072 1.462l6.75 10.622c.172.267.43.44.719.511-.683 2.57-1.172 5.004-1.276 7.008-.081 1.67.06 3.23.349 4.714-1.819-2.687-3.601-5.605-5.094-8.07-.833-1.367-1.597-2.63-2.28-3.697L3.86 41.412a3.331 3.331 0 01-.439-2.502 3.291 3.291 0 011.47-2.094zm1.91-9.31c.198-.87.705-1.598 1.46-2.073a3.314 3.314 0 014.574 1.018l7.483 11.78c-.892 2.584-1.855 5.411-2.674 8.175L11.42 36.6l-4.18-6.592a3.264 3.264 0 01-.439-2.502zm5.88-11.812a3.331 3.331 0 012.502-.44c.869.2 1.597.707 2.072 1.462l6.682 10.527-2.085 6.438c-.173.543-.372 1.122-.58 1.75l-6.487-10.215-3.13-4.949c-.973-1.538-.525-3.6 1.026-4.573zm9.673-1.462c1.538-.986 3.6-.52 4.587 1.018l3.904 6.148c-1.172-.185-2.375-.022-3.452.534a5.534 5.534 0 00-2.465 2.538l-3.592-5.65a3.342 3.342 0 011.018-4.588zM54.9 47.958l-.439 1.357a9.392 9.392 0 00-.43 2.005c.014.348.014.696 0 1.04.118 1.09.593 1.715 1.01 2.072.045.045.104.09.149.127.276.199.592.325.927.393.833.186 1.774-.022 2.56-.624l6.452-5.153c1.484-1.18 3.623-1.031 4.772.326.58.697.856 1.565.765 2.466a3.301 3.301 0 01-1.226 2.27l-11.314 9.035a11.756 11.756 0 00-2.353 2.488c-6.17 8.803-14.173 11.685-23.786 8.582-.2-.068-.407-.14-.602-.222a23.216 23.216 0 01-4.253-2.013c-1.75-1.054-3.429-2.375-4.854-3.963-2.723-3.045-4.542-7.066-4.306-12.056.126-2.687 1.09-6.415 2.248-10.156.29-.95.602-1.91.914-2.85.267-.801.534-1.575.787-2.34.163-.474.326-.95.488-1.401.09-.276.2-.557.29-.824.068-.199.127-.38.199-.579.439-1.298.855-2.488 1.194-3.533l1.493-4.61.923-2.868.326-.986a3.308 3.308 0 011.647-1.937 3.321 3.321 0 014.682 3.963l-.303.95-1.701 5.28-.462 1.434-.51 1.43-.937 2.881c-.023.09-.023.172-.037.267-.045.52.254 1.031.778 1.194a1.161 1.161 0 001.462-.742l.117-.357.326-.995.29-.905.036-.09.045-.14.461-1.426.082-.253 2.524-7.804.045-.15.014-.022.453-1.411v-.023l.452-1.412.013-.022 1.425-4.402a3.34 3.34 0 014.18-2.144 3.34 3.34 0 012.145 4.18l-3.117 9.636-.461 1.434-.453 1.389-1.47 4.528-.778 2.42a1.161 1.161 0 001.1 1.52c.022 0 .035-.013.058-.013.045 0 .09-.014.14-.023a.9.9 0 00.267-.081c.045-.023.09-.045.127-.068.081-.045.15-.104.222-.172.036-.036.067-.059.09-.09.09-.105.163-.231.208-.371l1.018-3.14.905-2.778.37-1.135.372-1.158 1.203-3.705 1.226-3.8 1.194-3.683.172-.534.602-1.854 1.031-3.185a3.34 3.34 0 014.18-2.145c.846.276 1.53.855 1.937 1.647.407.787.475 1.692.208 2.538l-.728 2.248-.43 1.308-.068.208-.439 1.357-1.841 5.687-2.895 8.962-1.679 5.198a1.161 1.161 0 001.1 1.52 1.16 1.16 0 001.099-.801l.325-1.018.037-.127 1.538-4.772 2.352-7.261.326-.996.914-2.814 1.122-3.487.244-.751a3.32 3.32 0 014.18-2.131 3.325 3.325 0 012.13 4.18L57.426 40.21l-1.737 5.375-.2.624-.588 1.75z"
26
+ fill={stroke}
27
+ />
28
+ <Path
29
+ d="M6.684 50.157c.67 1.054 1.425 2.303 2.257 3.66 3.266 5.374 7.329 12.056 10.944 15.345.266.245.542.453.81.67 2.999 3.275 6.912 5.515 10.585 6.704 2.71.882 5.316 1.308 7.818 1.308 7.238 0 13.572-3.637 18.566-10.758a9.692 9.692 0 011.9-2.004l11.314-9.035a5.593 5.593 0 002.094-3.845 5.582 5.582 0 00-1.298-4.18c-1.945-2.316-5.537-2.606-7.99-.647l-6.46 5.166c-.244.186-.556.222-.682.14-.068-.045-.15-.185-.2-.438v-.778c.037-.371.127-.833.326-1.426l3.045-9.436h-.014l4.158-12.866c.959-2.954-.67-6.139-3.624-7.098a5.492 5.492 0 00-3.556.059c.29-1.276.15-2.606-.461-3.778a5.572 5.572 0 00-3.289-2.791c-2.954-.959-6.139.67-7.098 3.624l-.407 1.262a5.558 5.558 0 00-2.814-2.072c-2.954-.95-6.139.67-7.098 3.623l-.832 2.584-5.791-9.116c-1.67-2.62-5.153-3.407-7.781-1.737a5.618 5.618 0 00-2.235 2.777c-.8-1.031-1.91-1.773-3.208-2.063a5.608 5.608 0 00-4.252.743c-2.62 1.669-3.407 5.152-1.737 7.78l.705 1.118a5.608 5.608 0 00-3.393.846 5.583 5.583 0 00-2.479 3.533 5.608 5.608 0 00.742 4.253l1.76 2.768a5.61 5.61 0 00-3.393.846 5.583 5.583 0 00-2.479 3.534 5.608 5.608 0 00.742 4.252l4.805 7.473zM4.892 36.816a3.331 3.331 0 012.502-.44c.869.2 1.597.707 2.072 1.462l6.75 10.622c.172.267.43.44.719.511-.683 2.57-1.172 5.004-1.276 7.008-.081 1.67.06 3.23.349 4.714-1.819-2.687-3.601-5.605-5.094-8.07-.833-1.367-1.597-2.63-2.28-3.697L3.86 41.412a3.331 3.331 0 01-.439-2.502 3.291 3.291 0 011.47-2.094zm1.91-9.31c.198-.87.705-1.598 1.46-2.073a3.314 3.314 0 014.574 1.018l7.483 11.78c-.892 2.584-1.855 5.411-2.674 8.175L11.42 36.6l-4.18-6.592a3.264 3.264 0 01-.439-2.502zm5.88-11.812a3.331 3.331 0 012.502-.44c.869.2 1.597.707 2.072 1.462l6.682 10.527-2.085 6.438c-.173.543-.372 1.122-.58 1.75l-6.487-10.215-3.13-4.949c-.973-1.538-.525-3.6 1.026-4.573zm9.673-1.462c1.538-.986 3.6-.52 4.587 1.018l3.904 6.148c-1.172-.185-2.375-.022-3.452.534a5.534 5.534 0 00-2.465 2.538l-3.592-5.65a3.342 3.342 0 011.018-4.588zM54.9 47.958l-.439 1.357a9.392 9.392 0 00-.43 2.005c.014.348.014.696 0 1.04.118 1.09.593 1.715 1.01 2.072.045.045.104.09.149.127.276.199.592.325.927.393.833.186 1.774-.022 2.56-.624l6.452-5.153c1.484-1.18 3.623-1.031 4.772.326.58.697.856 1.565.765 2.466a3.301 3.301 0 01-1.226 2.27l-11.314 9.035a11.756 11.756 0 00-2.353 2.488c-6.17 8.803-14.173 11.685-23.786 8.582-.2-.068-.407-.14-.602-.222a23.216 23.216 0 01-4.253-2.013c-1.75-1.054-3.429-2.375-4.854-3.963-2.723-3.045-4.542-7.066-4.306-12.056.126-2.687 1.09-6.415 2.248-10.156.29-.95.602-1.91.914-2.85.267-.801.534-1.575.787-2.34.163-.474.326-.95.488-1.401.09-.276.2-.557.29-.824.068-.199.127-.38.199-.579.439-1.298.855-2.488 1.194-3.533l1.493-4.61.923-2.868.326-.986a3.308 3.308 0 011.647-1.937 3.321 3.321 0 014.682 3.963l-.303.95-1.701 5.28-.462 1.434-.51 1.43-.937 2.881c-.023.09-.023.172-.037.267-.045.52.254 1.031.778 1.194a1.161 1.161 0 001.462-.742l.117-.357.326-.995.29-.905.036-.09.045-.14.461-1.426.082-.253 2.524-7.804.045-.15.014-.022.453-1.411v-.023l.452-1.412.013-.022 1.425-4.402a3.34 3.34 0 014.18-2.144 3.34 3.34 0 012.145 4.18l-3.117 9.636-.461 1.434-.453 1.389-1.47 4.528-.778 2.42a1.161 1.161 0 001.1 1.52c.022 0 .035-.013.058-.013.045 0 .09-.014.14-.023a.9.9 0 00.267-.081c.045-.023.09-.045.127-.068.081-.045.15-.104.222-.172.036-.036.067-.059.09-.09.09-.105.163-.231.208-.371l1.018-3.14.905-2.778.37-1.135.372-1.158 1.203-3.705 1.226-3.8 1.194-3.683.172-.534.602-1.854 1.031-3.185a3.34 3.34 0 014.18-2.145c.846.276 1.53.855 1.937 1.647.407.787.475 1.692.208 2.538l-.728 2.248-.43 1.308-.068.208-.439 1.357-1.841 5.687-2.895 8.962-1.679 5.198a1.161 1.161 0 001.1 1.52 1.16 1.16 0 001.099-.801l.325-1.018.037-.127 1.538-4.772 2.352-7.261.326-.996.914-2.814 1.122-3.487.244-.751a3.32 3.32 0 014.18-2.131 3.325 3.325 0 012.13 4.18L57.426 40.21l-1.737 5.375-.2.624-.588 1.75z"
30
+ stroke={stroke}
31
+ mask="url(#a)"
32
+ />
33
+ <Rect
34
+ x={37.6458}
35
+ width={2.60578}
36
+ height={7.81735}
37
+ rx={1.30289}
38
+ transform="rotate(2.496 37.646 0)"
39
+ fill={stroke}
40
+ />
41
+ <Rect
42
+ x={45.5715}
43
+ y={2.60578}
44
+ width={2.60578}
45
+ height={7.81734}
46
+ rx={1.30289}
47
+ transform="rotate(23 45.572 2.606)"
48
+ fill={stroke}
49
+ />
50
+ <Rect
51
+ width={2.60578}
52
+ height={7.81735}
53
+ rx={1.30289}
54
+ transform="scale(-1 1) rotate(23 -22.347 -77.062)"
55
+ fill={stroke}
56
+ />
57
+ </Svg>
58
+ );
59
+ };
60
+
61
+ export default Boom;
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ import Svg, { Path, Rect, Circle } from 'react-native-svg';
3
+ import { StatusSvgProps } from '../types';
4
+
5
+ const Build = ({ stroke, fill, testID }: StatusSvgProps) => {
6
+ return (
7
+ <Svg width="73" height="72" viewBox="0 0 73 72" testID={testID}>
8
+ <Rect
9
+ x="0.615723"
10
+ y="11.3684"
11
+ width="60.6316"
12
+ height="60.6316"
13
+ rx="20"
14
+ fill={fill}
15
+ stroke="transparent"
16
+ />
17
+ <Rect
18
+ x="13.9841"
19
+ y="2"
20
+ width="56.6316"
21
+ height="56.6316"
22
+ rx="18"
23
+ strokeWidth="4"
24
+ stroke={stroke}
25
+ fill="transparent"
26
+ />
27
+ <Path
28
+ fillRule="evenodd"
29
+ clipRule="evenodd"
30
+ d="M33.0369 42.8913C32.7714 42.9823 32.4958 43.0278 32.2152 43.0278C31.3833 43.0278 30.602 42.6258 30.1141 41.9507C29.6286 41.2756 29.4971 40.4059 29.7626 39.617L34.9407 24.0827C35.1961 23.3115 35.8004 22.7047 36.5715 22.4443L52.1059 17.2662C53.0364 16.9552 54.0629 17.198 54.7556 17.8932C55.4484 18.5861 55.6911 19.6126 55.3801 20.543L50.202 36.0774C49.9467 36.8485 49.3424 37.4553 48.5712 37.7132L33.0369 42.8913Z"
31
+ stroke={stroke}
32
+ fill={stroke}
33
+ />
34
+ <Circle
35
+ cx="43.0267"
36
+ cy="29.589"
37
+ r="3.94521"
38
+ stroke={stroke}
39
+ fill={fill}
40
+ />
41
+ </Svg>
42
+ );
43
+ };
44
+
45
+ export default Build;
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ import Svg, { Path, Rect } from 'react-native-svg';
3
+ import { StatusSvgProps } from '../types';
4
+
5
+ const Clock = ({ stroke, fill, testID }: StatusSvgProps) => {
6
+ return (
7
+ <Svg width="73" height="73" viewBox="0 0 73 73" testID={testID}>
8
+ <Rect
9
+ x="0.384277"
10
+ y="12.3684"
11
+ width="60.6316"
12
+ height="60.6316"
13
+ rx="20"
14
+ fill={fill}
15
+ />
16
+ <Path
17
+ fillRule="evenodd"
18
+ clipRule="evenodd"
19
+ d="M30.6916 57.4391C33.3944 57.6293 36.8359 57.6316 41.7001 57.6316C46.5643 57.6316 50.0057 57.6293 52.7085 57.4391C55.3738 57.2516 57.0177 56.8957 58.3216 56.3366C62.0954 54.7183 65.1026 51.7111 66.7209 47.9374C67.28 46.6334 67.6358 44.9895 67.8234 42.3242C68.0136 39.6215 68.0159 36.18 68.0159 31.3158C68.0159 26.4516 68.0136 23.0101 67.8234 20.3073C67.6358 17.6421 67.28 15.9982 66.7209 14.6942C65.1026 10.9204 62.0954 7.91326 58.3216 6.29499C57.0177 5.73584 55.3738 5.38001 52.7085 5.19248C50.0057 5.0023 46.5643 5 41.7001 5C36.8359 5 33.3944 5.0023 30.6916 5.19248C28.0264 5.38001 26.3824 5.73584 25.0785 6.29499C21.3047 7.91326 18.2975 10.9204 16.6793 14.6942C16.1201 15.9982 15.7643 17.6421 15.5768 20.3073C15.3866 23.0101 15.3843 26.4516 15.3843 31.3158C15.3843 36.18 15.3866 39.6215 15.5768 42.3242C15.7643 44.9895 16.1201 46.6334 16.6793 47.9374C18.2975 51.7111 21.3047 54.7183 25.0785 56.3366C26.3824 56.8957 28.0264 57.2516 30.6916 57.4391ZM13.003 13.1178C11.3843 16.8927 11.3843 21.7004 11.3843 31.3158C11.3843 40.9312 11.3843 45.7389 13.003 49.5138C15.0259 54.231 18.7848 57.99 23.5021 60.0128C27.2769 61.6316 32.0847 61.6316 41.7001 61.6316C51.3155 61.6316 56.1232 61.6316 59.8981 60.0128C64.6153 57.99 68.3743 54.231 70.3971 49.5138C72.0159 45.7389 72.0159 40.9312 72.0159 31.3158C72.0159 21.7004 72.0159 16.8927 70.3971 13.1178C68.3743 8.40056 64.6153 4.64158 59.8981 2.61874C56.1232 1 51.3155 1 41.7001 1C32.0847 1 27.2769 1 23.5021 2.61874C18.7848 4.64158 15.0259 8.40056 13.003 13.1178Z"
20
+ fill={stroke}
21
+ />
22
+ <Path
23
+ d="M41.3843 14.8C32.4514 14.8 25.1843 22.0668 25.1843 31C25.1843 39.9332 32.4511 47.2 41.3843 47.2C50.3175 47.2 57.5843 39.9332 57.5843 31C57.5843 22.0668 50.3175 14.8 41.3843 14.8ZM41.3843 43.6011C34.4369 43.6011 28.7829 37.9474 28.7829 30.9996C28.7829 24.0509 34.4365 18.3982 41.3843 18.3982C48.332 18.3982 53.9857 24.0519 53.9857 30.9996C53.9857 37.9474 48.332 43.6011 41.3843 43.6011Z"
24
+ fill={stroke}
25
+ stroke={stroke}
26
+ strokeWidth="0.4"
27
+ />
28
+ <Path
29
+ d="M40.1357 32.5728L40.136 32.5731L45.0853 37.0085L45.0853 37.0085C45.4289 37.3162 45.8587 37.4677 46.2863 37.4677C46.7793 37.4677 47.2717 37.2663 47.6266 36.8693C48.2902 36.1289 48.2276 34.992 47.4874 34.3283L47.4874 34.3283L43.1717 30.46C43.1784 30.4064 43.1836 30.3487 43.1836 30.289V23.3144C43.1836 22.3209 42.3777 21.5151 41.3843 21.5151C40.3909 21.5151 39.585 22.3209 39.585 23.3144V30.289C39.585 30.2924 39.585 30.2968 39.585 30.302C39.5847 30.4004 39.5837 30.8131 39.6409 31.2636C39.671 31.5006 39.7179 31.7543 39.7923 31.9815C39.8651 32.2043 39.9717 32.4253 40.1357 32.5728Z"
30
+ fill={stroke}
31
+ stroke={stroke}
32
+ strokeWidth="0.4"
33
+ />
34
+ </Svg>
35
+ );
36
+ };
37
+
38
+ export default Clock;