@transferwise/components 46.77.0 → 46.78.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 (132) hide show
  1. package/build/avatar/Avatar.js +2 -7
  2. package/build/avatar/Avatar.js.map +1 -1
  3. package/build/avatar/Avatar.mjs +2 -7
  4. package/build/avatar/Avatar.mjs.map +1 -1
  5. package/build/badge/Badge.js +1 -10
  6. package/build/badge/Badge.js.map +1 -1
  7. package/build/badge/Badge.mjs +1 -10
  8. package/build/badge/Badge.mjs.map +1 -1
  9. package/build/circularButton/CircularButton.js +1 -1
  10. package/build/circularButton/CircularButton.js.map +1 -1
  11. package/build/circularButton/CircularButton.mjs +1 -1
  12. package/build/circularButton/CircularButton.mjs.map +1 -1
  13. package/build/common/circle/Circle.js +15 -2
  14. package/build/common/circle/Circle.js.map +1 -1
  15. package/build/common/circle/Circle.mjs +15 -2
  16. package/build/common/circle/Circle.mjs.map +1 -1
  17. package/build/i18n/de.json +5 -0
  18. package/build/i18n/de.json.js +5 -0
  19. package/build/i18n/de.json.js.map +1 -1
  20. package/build/i18n/de.json.mjs +5 -0
  21. package/build/i18n/de.json.mjs.map +1 -1
  22. package/build/i18n/es.json +5 -0
  23. package/build/i18n/es.json.js +5 -0
  24. package/build/i18n/es.json.js.map +1 -1
  25. package/build/i18n/es.json.mjs +5 -0
  26. package/build/i18n/es.json.mjs.map +1 -1
  27. package/build/i18n/fr.json +5 -0
  28. package/build/i18n/fr.json.js +5 -0
  29. package/build/i18n/fr.json.js.map +1 -1
  30. package/build/i18n/fr.json.mjs +5 -0
  31. package/build/i18n/fr.json.mjs.map +1 -1
  32. package/build/i18n/hu.json +5 -0
  33. package/build/i18n/hu.json.js +5 -0
  34. package/build/i18n/hu.json.js.map +1 -1
  35. package/build/i18n/hu.json.mjs +5 -0
  36. package/build/i18n/hu.json.mjs.map +1 -1
  37. package/build/i18n/id.json +5 -0
  38. package/build/i18n/id.json.js +5 -0
  39. package/build/i18n/id.json.js.map +1 -1
  40. package/build/i18n/id.json.mjs +5 -0
  41. package/build/i18n/id.json.mjs.map +1 -1
  42. package/build/i18n/it.json +5 -0
  43. package/build/i18n/it.json.js +5 -0
  44. package/build/i18n/it.json.js.map +1 -1
  45. package/build/i18n/it.json.mjs +5 -0
  46. package/build/i18n/it.json.mjs.map +1 -1
  47. package/build/i18n/ja.json +5 -0
  48. package/build/i18n/ja.json.js +5 -0
  49. package/build/i18n/ja.json.js.map +1 -1
  50. package/build/i18n/ja.json.mjs +5 -0
  51. package/build/i18n/ja.json.mjs.map +1 -1
  52. package/build/i18n/pl.json +5 -0
  53. package/build/i18n/pl.json.js +5 -0
  54. package/build/i18n/pl.json.js.map +1 -1
  55. package/build/i18n/pl.json.mjs +5 -0
  56. package/build/i18n/pl.json.mjs.map +1 -1
  57. package/build/i18n/pt.json +5 -0
  58. package/build/i18n/pt.json.js +5 -0
  59. package/build/i18n/pt.json.js.map +1 -1
  60. package/build/i18n/pt.json.mjs +5 -0
  61. package/build/i18n/pt.json.mjs.map +1 -1
  62. package/build/i18n/ro.json +5 -0
  63. package/build/i18n/ro.json.js +5 -0
  64. package/build/i18n/ro.json.js.map +1 -1
  65. package/build/i18n/ro.json.mjs +5 -0
  66. package/build/i18n/ro.json.mjs.map +1 -1
  67. package/build/i18n/ru.json +5 -0
  68. package/build/i18n/ru.json.js +5 -0
  69. package/build/i18n/ru.json.js.map +1 -1
  70. package/build/i18n/ru.json.mjs +5 -0
  71. package/build/i18n/ru.json.mjs.map +1 -1
  72. package/build/i18n/tr.json +5 -0
  73. package/build/i18n/tr.json.js +5 -0
  74. package/build/i18n/tr.json.js.map +1 -1
  75. package/build/i18n/tr.json.mjs +5 -0
  76. package/build/i18n/tr.json.mjs.map +1 -1
  77. package/build/main.css +46 -22
  78. package/build/statusIcon/StatusIcon.js +4 -4
  79. package/build/statusIcon/StatusIcon.js.map +1 -1
  80. package/build/statusIcon/StatusIcon.mjs +4 -4
  81. package/build/statusIcon/StatusIcon.mjs.map +1 -1
  82. package/build/styles/avatar/Avatar.css +29 -0
  83. package/build/styles/badge/Badge.css +6 -0
  84. package/build/styles/circularButton/CircularButton.css +2 -2
  85. package/build/styles/common/circle/Circle.css +4 -0
  86. package/build/styles/main.css +46 -22
  87. package/build/styles/statusIcon/StatusIcon.css +0 -20
  88. package/build/types/avatar/Avatar.d.ts.map +1 -1
  89. package/build/types/badge/Badge.d.ts.map +1 -1
  90. package/build/types/common/circle/Circle.d.ts +1 -1
  91. package/build/types/common/circle/Circle.d.ts.map +1 -1
  92. package/build/types/statusIcon/StatusIcon.d.ts +7 -3
  93. package/build/types/statusIcon/StatusIcon.d.ts.map +1 -1
  94. package/package.json +3 -3
  95. package/src/avatar/Avatar.css +29 -0
  96. package/src/avatar/Avatar.less +12 -0
  97. package/src/avatar/Avatar.tsx +4 -8
  98. package/src/avatarWrapper/__snapshots__/AvatarWrapper.spec.tsx.snap +11 -22
  99. package/src/badge/Badge.css +6 -0
  100. package/src/badge/Badge.less +6 -0
  101. package/src/badge/Badge.tsx +1 -11
  102. package/src/circularButton/CircularButton.css +2 -2
  103. package/src/circularButton/CircularButton.less +1 -1
  104. package/src/circularButton/CircularButton.story.tsx +3 -0
  105. package/src/circularButton/CircularButton.tsx +1 -1
  106. package/src/circularButton/__snapshots__/CircularButton.spec.tsx.snap +10 -10
  107. package/src/common/circle/Circle.css +4 -0
  108. package/src/common/circle/Circle.less +6 -0
  109. package/src/common/circle/Circle.story.tsx +2 -2
  110. package/src/common/circle/Circle.tsx +25 -2
  111. package/src/flowNavigation/__snapshots__/FlowNavigation.spec.js.snap +4 -8
  112. package/src/i18n/de.json +5 -0
  113. package/src/i18n/es.json +5 -0
  114. package/src/i18n/fr.json +5 -0
  115. package/src/i18n/hu.json +5 -0
  116. package/src/i18n/id.json +5 -0
  117. package/src/i18n/it.json +5 -0
  118. package/src/i18n/ja.json +5 -0
  119. package/src/i18n/pl.json +5 -0
  120. package/src/i18n/pt.json +5 -0
  121. package/src/i18n/ro.json +5 -0
  122. package/src/i18n/ru.json +5 -0
  123. package/src/i18n/tr.json +5 -0
  124. package/src/main.css +46 -22
  125. package/src/overlayHeader/__snapshots__/OverlayHeader.spec.tsx.snap +2 -4
  126. package/src/promoCard/PromoCard.spec.tsx +1 -1
  127. package/src/radio/__snapshots__/Radio.rtl.spec.tsx.snap +2 -4
  128. package/src/statusIcon/StatusIcon.css +0 -20
  129. package/src/statusIcon/StatusIcon.less +0 -17
  130. package/src/statusIcon/StatusIcon.spec.tsx +2 -21
  131. package/src/statusIcon/StatusIcon.story.tsx +32 -1
  132. package/src/statusIcon/StatusIcon.tsx +11 -10
@@ -52,11 +52,17 @@
52
52
 
53
53
  & > &__content {
54
54
  position: absolute;
55
+ width: var(--badge-size);
56
+ height: var(--badge-size);
55
57
  bottom: 0;
56
58
  .right(0);
57
59
 
58
60
  box-sizing: border-box;
61
+ border-radius: 50%;
59
62
  text-align: center;
63
+ display: flex;
64
+ align-items: center;
65
+ justify-content: center;
60
66
  overflow: hidden;
61
67
  user-select: none;
62
68
 
@@ -11,7 +11,6 @@ import {
11
11
  ThemeLight,
12
12
  CommonProps,
13
13
  } from '../common';
14
- import Circle, { CircleProps } from '../common/circle';
15
14
 
16
15
  /**
17
16
  * @deprecated Use `SizeSmall` or `SizeLarge` instead.
@@ -29,13 +28,6 @@ export type BadgeProps = {
29
28
  'aria-label'?: string;
30
29
  } & CommonProps;
31
30
 
32
- const mapLegacySize = {
33
- [String(Size.SMALL)]: 16,
34
- // medium is deprecated, so we map it to small
35
- [String(Size.MEDIUM)]: 16,
36
- [String(Size.LARGE)]: 24,
37
- } satisfies Record<string, CircleProps['size']>;
38
-
39
31
  const Badge = ({
40
32
  badge,
41
33
  className = undefined,
@@ -58,9 +50,7 @@ const Badge = ({
58
50
  return (
59
51
  <div aria-label={ariaLabel} className={classes}>
60
52
  <div className="tw-badge__children">{children}</div>
61
- <Circle size={mapLegacySize[size]} fixedSize className="tw-badge__content">
62
- {badge}
63
- </Circle>
53
+ <div className="tw-badge__content">{badge}</div>
64
54
  </div>
65
55
  );
66
56
  };
@@ -23,8 +23,8 @@
23
23
  }
24
24
  @media (max-width: 320px) {
25
25
  .np-circular-btn .tw-icon {
26
- top: 8px;
27
- top: var(--size-8);
26
+ top: 12px;
27
+ top: var(--size-12);
28
28
  }
29
29
  }
30
30
  .np-circular-btn .tw-icon > svg {
@@ -19,7 +19,7 @@
19
19
  .left(0);
20
20
 
21
21
  @media (--screen-400-zoom) {
22
- top: var(--size-8);
22
+ top: var(--size-12);
23
23
  }
24
24
 
25
25
  > svg {
@@ -4,6 +4,7 @@ import { ControlType, Priority } from '../common';
4
4
 
5
5
  import { Meta, StoryObj } from '@storybook/react';
6
6
  import CircularButton from './CircularButton';
7
+ import { storyConfig } from '../test-utils';
7
8
 
8
9
  export default {
9
10
  component: CircularButton,
@@ -64,3 +65,5 @@ export const All: Story = {
64
65
  );
65
66
  },
66
67
  };
68
+
69
+ export const All400Zoom: Story = storyConfig(All, { variants: ['400%'] });
@@ -38,7 +38,7 @@ const CircularButton = ({
38
38
  as="input"
39
39
  // @ts-expect-error it's input[type=button] element
40
40
  type="button"
41
- size={isTinyViewport ? 64 : 56}
41
+ size={isTinyViewport ? 72 : 56}
42
42
  aria-label={children}
43
43
  className={classes}
44
44
  disabled={disabled}
@@ -8,7 +8,7 @@ exports[`CircularButton defaults renders a button of type accent and priority pr
8
8
  <input
9
9
  aria-label="Add money"
10
10
  class="np-circle d-flex align-items-center justify-content-center btn np-btn m-b-1 btn-accent btn-priority-1"
11
- style="--circle-size: var(--size-56);"
11
+ style="--circle-size: var(--size-56); --circle-icon-size: 28px;"
12
12
  type="button"
13
13
  />
14
14
  <span
@@ -46,7 +46,7 @@ exports[`CircularButton priorities renders primary buttons 1`] = `
46
46
  <input
47
47
  aria-label="Add money"
48
48
  class="np-circle d-flex align-items-center justify-content-center btn np-btn m-b-1 btn-accent btn-priority-1"
49
- style="--circle-size: var(--size-56);"
49
+ style="--circle-size: var(--size-56); --circle-icon-size: 28px;"
50
50
  type="button"
51
51
  />
52
52
  <span
@@ -84,7 +84,7 @@ exports[`CircularButton priorities renders primary buttons 2`] = `
84
84
  <input
85
85
  aria-label="Add money"
86
86
  class="np-circle d-flex align-items-center justify-content-center btn np-btn m-b-1 btn-positive btn-priority-1"
87
- style="--circle-size: var(--size-56);"
87
+ style="--circle-size: var(--size-56); --circle-icon-size: 28px;"
88
88
  type="button"
89
89
  />
90
90
  <span
@@ -122,7 +122,7 @@ exports[`CircularButton priorities renders primary buttons 3`] = `
122
122
  <input
123
123
  aria-label="Add money"
124
124
  class="np-circle d-flex align-items-center justify-content-center btn np-btn m-b-1 btn-negative btn-priority-1"
125
- style="--circle-size: var(--size-56);"
125
+ style="--circle-size: var(--size-56); --circle-icon-size: 28px;"
126
126
  type="button"
127
127
  />
128
128
  <span
@@ -160,7 +160,7 @@ exports[`CircularButton priorities renders secondary buttons 1`] = `
160
160
  <input
161
161
  aria-label="Add money"
162
162
  class="np-circle d-flex align-items-center justify-content-center btn np-btn m-b-1 btn-accent btn-priority-2"
163
- style="--circle-size: var(--size-56);"
163
+ style="--circle-size: var(--size-56); --circle-icon-size: 28px;"
164
164
  type="button"
165
165
  />
166
166
  <span
@@ -198,7 +198,7 @@ exports[`CircularButton priorities renders secondary buttons 2`] = `
198
198
  <input
199
199
  aria-label="Add money"
200
200
  class="np-circle d-flex align-items-center justify-content-center btn np-btn m-b-1 btn-positive btn-priority-2"
201
- style="--circle-size: var(--size-56);"
201
+ style="--circle-size: var(--size-56); --circle-icon-size: 28px;"
202
202
  type="button"
203
203
  />
204
204
  <span
@@ -236,7 +236,7 @@ exports[`CircularButton priorities renders secondary buttons 3`] = `
236
236
  <input
237
237
  aria-label="Add money"
238
238
  class="np-circle d-flex align-items-center justify-content-center btn np-btn m-b-1 btn-negative btn-priority-2"
239
- style="--circle-size: var(--size-56);"
239
+ style="--circle-size: var(--size-56); --circle-icon-size: 28px;"
240
240
  type="button"
241
241
  />
242
242
  <span
@@ -274,7 +274,7 @@ exports[`CircularButton types renders accent buttons 1`] = `
274
274
  <input
275
275
  aria-label="Add money"
276
276
  class="np-circle d-flex align-items-center justify-content-center btn np-btn m-b-1 btn-accent btn-priority-1"
277
- style="--circle-size: var(--size-56);"
277
+ style="--circle-size: var(--size-56); --circle-icon-size: 28px;"
278
278
  type="button"
279
279
  />
280
280
  <span
@@ -312,7 +312,7 @@ exports[`CircularButton types renders negative buttons 1`] = `
312
312
  <input
313
313
  aria-label="Add money"
314
314
  class="np-circle d-flex align-items-center justify-content-center btn np-btn m-b-1 btn-negative btn-priority-1"
315
- style="--circle-size: var(--size-56);"
315
+ style="--circle-size: var(--size-56); --circle-icon-size: 28px;"
316
316
  type="button"
317
317
  />
318
318
  <span
@@ -350,7 +350,7 @@ exports[`CircularButton types renders positive buttons 1`] = `
350
350
  <input
351
351
  aria-label="Add money"
352
352
  class="np-circle d-flex align-items-center justify-content-center btn np-btn m-b-1 btn-positive btn-priority-1"
353
- style="--circle-size: var(--size-56);"
353
+ style="--circle-size: var(--size-56); --circle-icon-size: 28px;"
354
354
  type="button"
355
355
  />
356
356
  <span
@@ -5,3 +5,7 @@
5
5
  height: var(--circle-size);
6
6
  flex-shrink: 0;
7
7
  }
8
+ .np-circle .tw-icon > svg {
9
+ height: var(--circle-icon-size);
10
+ width: var(--circle-icon-size);
11
+ }
@@ -3,4 +3,10 @@
3
3
  width: var(--circle-size);
4
4
  height: var(--circle-size);
5
5
  flex-shrink: 0;
6
+
7
+ // circle like components has custom icon sizes
8
+ .tw-icon > svg {
9
+ height: var(--circle-icon-size);
10
+ width: var(--circle-icon-size);
11
+ }
6
12
  }
@@ -30,14 +30,14 @@ export const Sizes: Story = storyConfig(
30
30
  {
31
31
  render: () => {
32
32
  const content = <Profile size={16} />;
33
- const sizes: CircleProps['size'][] = [32, 40, 48, 56, 72];
33
+ const sizes: CircleProps['size'][] = [16, 24, 32, 40, 48, 56, 72];
34
34
  return (
35
35
  <div
36
36
  style={{
37
37
  gap: '1em',
38
38
  display: 'grid',
39
39
  justifyContent: 'space-between',
40
- gridTemplate: 'auto auto / repeat(5, min-content)',
40
+ gridTemplate: `auto auto / repeat(${sizes.length}, min-content)`,
41
41
  }}
42
42
  >
43
43
  {sizes.map((size) => (
@@ -1,7 +1,9 @@
1
1
  import { HTMLAttributes, forwardRef } from 'react';
2
2
  import { clsx } from 'clsx';
3
+ import { useMedia } from '../hooks/useMedia';
4
+ import { Breakpoint } from '../propsValues/breakpoint';
3
5
 
4
- export type ShapeSize = 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72;
6
+ export type ShapeSize = 16 | 24 | 32 | 40 | 48 | 56 | 72;
5
7
 
6
8
  export type Props = {
7
9
  /**
@@ -19,6 +21,19 @@ export type Props = {
19
21
  fixedSize?: boolean;
20
22
  } & HTMLAttributes<HTMLDivElement>;
21
23
 
24
+ /**
25
+ * circle like components has custom sizes for icons
26
+ */
27
+ const MAP_ICON_SIZE = {
28
+ 16: 12,
29
+ 24: 16,
30
+ 32: 18,
31
+ 40: 20,
32
+ 48: 24,
33
+ 56: 28,
34
+ 72: 36,
35
+ };
36
+
22
37
  const Circle = forwardRef(function Circle(
23
38
  {
24
39
  as: Element = 'div',
@@ -31,11 +46,19 @@ const Circle = forwardRef(function Circle(
31
46
  }: Props,
32
47
  ref,
33
48
  ) {
49
+ const isTinyViewport = useMedia(`(max-width: ${Breakpoint.ZOOM_400}px)`);
34
50
  return (
35
51
  <Element
36
52
  {...props}
37
53
  ref={ref}
38
- style={{ ...style, '--circle-size': fixedSize ? `${size}px` : `var(--size-${size})` }}
54
+ style={{
55
+ '--circle-size': fixedSize ? `${size}px` : `var(--size-${size})`,
56
+ '--circle-icon-size':
57
+ isTinyViewport && !fixedSize
58
+ ? `${MAP_ICON_SIZE[size] / 2}px`
59
+ : `${MAP_ICON_SIZE[size]}px`,
60
+ ...style,
61
+ }}
39
62
  className={clsx('np-circle', 'd-flex align-items-center justify-content-center', className)}
40
63
  >
41
64
  {children}
@@ -21,12 +21,10 @@ exports[`FlowNavigation on mobile renders as expected 1`] = `
21
21
  class="np-flow-header__right d-flex align-items-center justify-content-end order-2--lg"
22
22
  >
23
23
  <div
24
- class="np-circle d-flex align-items-center justify-content-center tw-avatar tw-avatar--48 tw-avatar--initials np-text-title-body"
25
- style="--circle-size: 48px;"
24
+ class="tw-avatar tw-avatar--48 tw-avatar--initials np-text-title-body"
26
25
  >
27
26
  <div
28
- class="np-circle d-flex align-items-center justify-content-center tw-avatar__content"
29
- style="--circle-size: 48px;"
27
+ class="tw-avatar__content"
30
28
  >
31
29
  TM
32
30
  </div>
@@ -138,12 +136,10 @@ exports[`FlowNavigation renders as expected 1`] = `
138
136
  class="np-flow-header__right d-flex align-items-center justify-content-end order-2--lg"
139
137
  >
140
138
  <div
141
- class="np-circle d-flex align-items-center justify-content-center tw-avatar tw-avatar--48 tw-avatar--initials np-text-title-body"
142
- style="--circle-size: 48px;"
139
+ class="tw-avatar tw-avatar--48 tw-avatar--initials np-text-title-body"
143
140
  >
144
141
  <div
145
- class="np-circle d-flex align-items-center justify-content-center tw-avatar__content"
146
- style="--circle-size: 48px;"
142
+ class="tw-avatar__content"
147
143
  >
148
144
  TM
149
145
  </div>
package/src/i18n/de.json CHANGED
@@ -27,6 +27,11 @@
27
27
  "neptune.SelectInput.noResultsFound": "Keine Ergebnisse gefunden",
28
28
  "neptune.SelectOption.action.label": "Auswählen",
29
29
  "neptune.SelectOption.selected.action.label": "Ausgewählte Option ändern",
30
+ "neptune.StatusIcon.iconLabel.error": "Fehler:",
31
+ "neptune.StatusIcon.iconLabel.information": "Auskünfte:",
32
+ "neptune.StatusIcon.iconLabel.pending": "Ausstehend:",
33
+ "neptune.StatusIcon.iconLabel.success": "Erfolgreich:",
34
+ "neptune.StatusIcon.iconLabel.warning": "Warnung:",
30
35
  "neptune.Summary.statusDone": "Schritt erledigt",
31
36
  "neptune.Summary.statusNotDone": "Schritt noch zu erledigen",
32
37
  "neptune.Summary.statusPending": "Schritt ausstehend",
package/src/i18n/es.json CHANGED
@@ -27,6 +27,11 @@
27
27
  "neptune.SelectInput.noResultsFound": "No se han encontrado resultados",
28
28
  "neptune.SelectOption.action.label": "Elegir",
29
29
  "neptune.SelectOption.selected.action.label": "Cambiar opción elegida",
30
+ "neptune.StatusIcon.iconLabel.error": "Error:",
31
+ "neptune.StatusIcon.iconLabel.information": "Información:",
32
+ "neptune.StatusIcon.iconLabel.pending": "Pendiente:",
33
+ "neptune.StatusIcon.iconLabel.success": "Éxito:",
34
+ "neptune.StatusIcon.iconLabel.warning": "Advertencia:",
30
35
  "neptune.Summary.statusDone": "Apartado listo",
31
36
  "neptune.Summary.statusNotDone": "Apartado a completar",
32
37
  "neptune.Summary.statusPending": "Apartado pendiente",
package/src/i18n/fr.json CHANGED
@@ -27,6 +27,11 @@
27
27
  "neptune.SelectInput.noResultsFound": "Aucun résultat trouvé",
28
28
  "neptune.SelectOption.action.label": "Sélectionner",
29
29
  "neptune.SelectOption.selected.action.label": "Modifier l'option choisie",
30
+ "neptune.StatusIcon.iconLabel.error": "Erreur:",
31
+ "neptune.StatusIcon.iconLabel.information": "Informations:",
32
+ "neptune.StatusIcon.iconLabel.pending": "En attente :",
33
+ "neptune.StatusIcon.iconLabel.success": "Terminé:",
34
+ "neptune.StatusIcon.iconLabel.warning": "Attention:",
30
35
  "neptune.Summary.statusDone": "Validé",
31
36
  "neptune.Summary.statusNotDone": "À compléter",
32
37
  "neptune.Summary.statusPending": "En attente",
package/src/i18n/hu.json CHANGED
@@ -27,6 +27,11 @@
27
27
  "neptune.SelectInput.noResultsFound": "Nincs találat",
28
28
  "neptune.SelectOption.action.label": "Kiválasztás",
29
29
  "neptune.SelectOption.selected.action.label": "Kiválasztott opció módosítása",
30
+ "neptune.StatusIcon.iconLabel.error": "Hiba:",
31
+ "neptune.StatusIcon.iconLabel.information": "Információ:",
32
+ "neptune.StatusIcon.iconLabel.pending": "Függőben:",
33
+ "neptune.StatusIcon.iconLabel.success": "Siker:",
34
+ "neptune.StatusIcon.iconLabel.warning": "Figyelmeztetés:",
30
35
  "neptune.Summary.statusDone": "Kész",
31
36
  "neptune.Summary.statusNotDone": "Hátravan",
32
37
  "neptune.Summary.statusPending": "Függőben",
package/src/i18n/id.json CHANGED
@@ -27,6 +27,11 @@
27
27
  "neptune.SelectInput.noResultsFound": "Hasil tidak ditemukan",
28
28
  "neptune.SelectOption.action.label": "Pilih",
29
29
  "neptune.SelectOption.selected.action.label": "Ubah opsi yang dipilih",
30
+ "neptune.StatusIcon.iconLabel.error": "Kesalahan:",
31
+ "neptune.StatusIcon.iconLabel.information": "Informasi:",
32
+ "neptune.StatusIcon.iconLabel.pending": "Tertunda:",
33
+ "neptune.StatusIcon.iconLabel.success": "Berhasil:",
34
+ "neptune.StatusIcon.iconLabel.warning": "Peringatan:",
30
35
  "neptune.Summary.statusDone": "Item selesai",
31
36
  "neptune.Summary.statusNotDone": "Item yang harus dilakukan",
32
37
  "neptune.Summary.statusPending": "Item tertunda",
package/src/i18n/it.json CHANGED
@@ -27,6 +27,11 @@
27
27
  "neptune.SelectInput.noResultsFound": "Nessun risultato trovato",
28
28
  "neptune.SelectOption.action.label": "Scegli",
29
29
  "neptune.SelectOption.selected.action.label": "Modifica l'opzione scelta",
30
+ "neptune.StatusIcon.iconLabel.error": "Errore:",
31
+ "neptune.StatusIcon.iconLabel.information": "Informazioni:",
32
+ "neptune.StatusIcon.iconLabel.pending": "In attesa:",
33
+ "neptune.StatusIcon.iconLabel.success": "Fatto:",
34
+ "neptune.StatusIcon.iconLabel.warning": "Attenzione:",
30
35
  "neptune.Summary.statusDone": "Completato",
31
36
  "neptune.Summary.statusNotDone": "Da completare",
32
37
  "neptune.Summary.statusPending": "In corso",
package/src/i18n/ja.json CHANGED
@@ -27,6 +27,11 @@
27
27
  "neptune.SelectInput.noResultsFound": "結果が見つかりませんでした",
28
28
  "neptune.SelectOption.action.label": "選択してください",
29
29
  "neptune.SelectOption.selected.action.label": "選択したオプションを変更する",
30
+ "neptune.StatusIcon.iconLabel.error": "エラー:",
31
+ "neptune.StatusIcon.iconLabel.information": "情報:",
32
+ "neptune.StatusIcon.iconLabel.pending": "保留中:",
33
+ "neptune.StatusIcon.iconLabel.success": "完了:",
34
+ "neptune.StatusIcon.iconLabel.warning": "警告:",
30
35
  "neptune.Summary.statusDone": "完了",
31
36
  "neptune.Summary.statusNotDone": "未完了",
32
37
  "neptune.Summary.statusPending": "保留中",
package/src/i18n/pl.json CHANGED
@@ -27,6 +27,11 @@
27
27
  "neptune.SelectInput.noResultsFound": "Nie znaleziono wyników",
28
28
  "neptune.SelectOption.action.label": "Wybierz",
29
29
  "neptune.SelectOption.selected.action.label": "Zmień wybraną opcję",
30
+ "neptune.StatusIcon.iconLabel.error": "Błąd:",
31
+ "neptune.StatusIcon.iconLabel.information": "Informacje:",
32
+ "neptune.StatusIcon.iconLabel.pending": "W toku:",
33
+ "neptune.StatusIcon.iconLabel.success": "Gotowe:",
34
+ "neptune.StatusIcon.iconLabel.warning": "Ostrzeżenie:",
30
35
  "neptune.Summary.statusDone": "Czynność wykonana",
31
36
  "neptune.Summary.statusNotDone": "Czynność do wykonania",
32
37
  "neptune.Summary.statusPending": "Czynność oczekująca",
package/src/i18n/pt.json CHANGED
@@ -27,6 +27,11 @@
27
27
  "neptune.SelectInput.noResultsFound": "Nenhum resultado encontrado",
28
28
  "neptune.SelectOption.action.label": "Selecionar",
29
29
  "neptune.SelectOption.selected.action.label": "Altere a opção escolhida",
30
+ "neptune.StatusIcon.iconLabel.error": "Erro:",
31
+ "neptune.StatusIcon.iconLabel.information": "Informação:",
32
+ "neptune.StatusIcon.iconLabel.pending": "Pendente:",
33
+ "neptune.StatusIcon.iconLabel.success": "Concluído:",
34
+ "neptune.StatusIcon.iconLabel.warning": "Aviso:",
30
35
  "neptune.Summary.statusDone": "Pronto",
31
36
  "neptune.Summary.statusNotDone": "Não iniciado",
32
37
  "neptune.Summary.statusPending": "Pendente",
package/src/i18n/ro.json CHANGED
@@ -27,6 +27,11 @@
27
27
  "neptune.SelectInput.noResultsFound": "Nu s-a găsit niciun rezultat",
28
28
  "neptune.SelectOption.action.label": "Alege",
29
29
  "neptune.SelectOption.selected.action.label": "Schimbă opțiunea aleasă",
30
+ "neptune.StatusIcon.iconLabel.error": "Eroare:",
31
+ "neptune.StatusIcon.iconLabel.information": "Informații:",
32
+ "neptune.StatusIcon.iconLabel.pending": "În așteptare:",
33
+ "neptune.StatusIcon.iconLabel.success": "Gata:",
34
+ "neptune.StatusIcon.iconLabel.warning": "Avertisment:",
30
35
  "neptune.Summary.statusDone": "Finalizat",
31
36
  "neptune.Summary.statusNotDone": "De făcut",
32
37
  "neptune.Summary.statusPending": "În așteptare",
package/src/i18n/ru.json CHANGED
@@ -27,6 +27,11 @@
27
27
  "neptune.SelectInput.noResultsFound": "Ничего не найдено",
28
28
  "neptune.SelectOption.action.label": "Выбрать",
29
29
  "neptune.SelectOption.selected.action.label": "Изменить выбранный вариант",
30
+ "neptune.StatusIcon.iconLabel.error": "Ошибка:",
31
+ "neptune.StatusIcon.iconLabel.information": "Информация:",
32
+ "neptune.StatusIcon.iconLabel.pending": "В ожидании:",
33
+ "neptune.StatusIcon.iconLabel.success": "Готово:",
34
+ "neptune.StatusIcon.iconLabel.warning": "Внимание:",
30
35
  "neptune.Summary.statusDone": "Этап завершен",
31
36
  "neptune.Summary.statusNotDone": "Этап к выполнению",
32
37
  "neptune.Summary.statusPending": "Этап в процессе",
package/src/i18n/tr.json CHANGED
@@ -27,6 +27,11 @@
27
27
  "neptune.SelectInput.noResultsFound": "Sonuç bulunamadı",
28
28
  "neptune.SelectOption.action.label": "Seç",
29
29
  "neptune.SelectOption.selected.action.label": "Seçilen opsiyonu değiştir",
30
+ "neptune.StatusIcon.iconLabel.error": "Hata:",
31
+ "neptune.StatusIcon.iconLabel.information": "Bilgi:",
32
+ "neptune.StatusIcon.iconLabel.pending": "Bekliyor:",
33
+ "neptune.StatusIcon.iconLabel.success": "Başarılı:",
34
+ "neptune.StatusIcon.iconLabel.warning": "Uyarı:",
30
35
  "neptune.Summary.statusDone": "Tamamlanan aşama",
31
36
  "neptune.Summary.statusNotDone": "Yapılacak",
32
37
  "neptune.Summary.statusPending": "Bekliyor",
package/src/main.css CHANGED
@@ -221,18 +221,27 @@ div.critical-comms .critical-comms-body {
221
221
  }
222
222
  .tw-avatar {
223
223
  position: relative;
224
+ border-radius: 50%;
224
225
  -webkit-user-select: none;
225
226
  -moz-user-select: none;
226
227
  user-select: none;
227
228
  box-sizing: border-box;
228
229
  }
229
230
  .tw-avatar .tw-avatar__content {
231
+ align-items: center;
230
232
  background-color: rgba(134,167,189,0.10196);
231
233
  background-color: #86a7bd1a;
232
234
  background-color: var(--color-background-neutral);
235
+ border-radius: 50%;
236
+ color: #37517e;
237
+ color: var(--color-content-primary);
238
+ display: flex;
239
+ height: 100%;
240
+ justify-content: center;
233
241
  max-height: 100%;
234
242
  max-width: 100%;
235
243
  overflow: hidden;
244
+ width: 100%;
236
245
  }
237
246
  .tw-avatar--outlined {
238
247
  border: 1px solid #00a2dd;
@@ -275,6 +284,11 @@ div.critical-comms .critical-comms-body {
275
284
  color: var(--color-dark-charcoal);
276
285
  line-height: 1;
277
286
  }
287
+ .tw-avatar--24 {
288
+ min-width: 24px;
289
+ width: 24px;
290
+ height: 24px;
291
+ }
278
292
  .tw-avatar--24.tw-avatar--emoji,
279
293
  .tw-avatar--24.tw-avatar--icon {
280
294
  font-size: 12px;
@@ -305,6 +319,11 @@ div.critical-comms .critical-comms-body {
305
319
  content: "";
306
320
  border-radius: 50%;
307
321
  }
322
+ .tw-avatar--40 {
323
+ min-width: 40px;
324
+ width: 40px;
325
+ height: 40px;
326
+ }
308
327
  .tw-avatar--40.tw-avatar--emoji,
309
328
  .tw-avatar--40.tw-avatar--icon {
310
329
  font-size: 20px;
@@ -335,6 +354,11 @@ div.critical-comms .critical-comms-body {
335
354
  content: "";
336
355
  border-radius: 50%;
337
356
  }
357
+ .tw-avatar--48 {
358
+ min-width: 48px;
359
+ width: 48px;
360
+ height: 48px;
361
+ }
338
362
  .tw-avatar--48.tw-avatar--emoji,
339
363
  .tw-avatar--48.tw-avatar--icon {
340
364
  font-size: 24px;
@@ -365,6 +389,11 @@ div.critical-comms .critical-comms-body {
365
389
  content: "";
366
390
  border-radius: 50%;
367
391
  }
392
+ .tw-avatar--56 {
393
+ min-width: 56px;
394
+ width: 56px;
395
+ height: 56px;
396
+ }
368
397
  .tw-avatar--56.tw-avatar--emoji,
369
398
  .tw-avatar--56.tw-avatar--icon {
370
399
  font-size: 28px;
@@ -395,6 +424,11 @@ div.critical-comms .critical-comms-body {
395
424
  content: "";
396
425
  border-radius: 50%;
397
426
  }
427
+ .tw-avatar--72 {
428
+ min-width: 72px;
429
+ width: 72px;
430
+ height: 72px;
431
+ }
398
432
  .tw-avatar--72.tw-avatar--emoji,
399
433
  .tw-avatar--72.tw-avatar--icon {
400
434
  font-size: 36px;
@@ -460,10 +494,16 @@ div.critical-comms .critical-comms-body {
460
494
  }
461
495
  .tw-badge > .tw-badge__content {
462
496
  position: absolute;
497
+ width: var(--badge-size);
498
+ height: var(--badge-size);
463
499
  bottom: 0;
464
500
  right: 0;
465
501
  box-sizing: border-box;
502
+ border-radius: 50%;
466
503
  text-align: center;
504
+ display: flex;
505
+ align-items: center;
506
+ justify-content: center;
467
507
  overflow: hidden;
468
508
  -webkit-user-select: none;
469
509
  -moz-user-select: none;
@@ -1016,8 +1056,8 @@ div.critical-comms .critical-comms-body {
1016
1056
  }
1017
1057
  @media (max-width: 320px) {
1018
1058
  .np-circular-btn .tw-icon {
1019
- top: 8px;
1020
- top: var(--size-8);
1059
+ top: 12px;
1060
+ top: var(--size-12);
1021
1061
  }
1022
1062
  }
1023
1063
  .np-circular-btn .tw-icon > svg {
@@ -1172,6 +1212,10 @@ div.critical-comms .critical-comms-body {
1172
1212
  height: var(--circle-size);
1173
1213
  flex-shrink: 0;
1174
1214
  }
1215
+ .np-circle .tw-icon > svg {
1216
+ height: var(--circle-icon-size);
1217
+ width: var(--circle-icon-size);
1218
+ }
1175
1219
  .np-bottom-sheet {
1176
1220
  border-radius: 10px 10px 0 0;
1177
1221
  }
@@ -4158,12 +4202,6 @@ html:not([dir="rtl"]) .np-navigation-option {
4158
4202
  transform: translateY(-24px);
4159
4203
  }
4160
4204
  }
4161
- .status-icon > svg {
4162
- height: 32px;
4163
- height: var(--size-32);
4164
- width: 32px;
4165
- width: var(--size-32);
4166
- }
4167
4205
  .status-circle .light {
4168
4206
  color: var(--color-contrast);
4169
4207
  }
@@ -4179,20 +4217,6 @@ html:not([dir="rtl"]) .np-navigation-option {
4179
4217
  .np-theme-personal .status-circle.pending .status-icon {
4180
4218
  color: var(--color-dark);
4181
4219
  }
4182
- .status-circle-sm .status-icon > svg {
4183
- height: 14px;
4184
- height: var(--size-14);
4185
- width: 14px;
4186
- width: var(--size-14);
4187
- }
4188
- @media (max-width: 320px) {
4189
- .status-circle-sm .status-icon > svg {
4190
- width: 24px;
4191
- width: var(--size-24);
4192
- height: 24px;
4193
- height: var(--size-24);
4194
- }
4195
- }
4196
4220
  .status-circle.negative,
4197
4221
  .status-circle.error {
4198
4222
  background-color: var(--color-sentiment-negative);
@@ -18,12 +18,10 @@ exports[`OverlayHeader renders as expected 1`] = `
18
18
  class="d-flex align-items-center order-2"
19
19
  >
20
20
  <div
21
- class="np-circle d-flex align-items-center justify-content-center tw-avatar tw-avatar--48 tw-avatar--initials np-text-title-body"
22
- style="--circle-size: 48px;"
21
+ class="tw-avatar tw-avatar--48 tw-avatar--initials np-text-title-body"
23
22
  >
24
23
  <div
25
- class="np-circle d-flex align-items-center justify-content-center tw-avatar__content"
26
- style="--circle-size: 48px;"
24
+ class="tw-avatar__content"
27
25
  >
28
26
  TM
29
27
  </div>
@@ -1,4 +1,4 @@
1
- import { render, fireEvent, screen } from '@testing-library/react';
1
+ import { render, fireEvent, screen } from '../test-utils';
2
2
  import React from 'react';
3
3
 
4
4
  import PromoCard, { PromoCardProps, PromoCardCheckedProps, PromoCardLinkProps } from './PromoCard';
@@ -34,12 +34,10 @@ exports[`Radio shows the avatar when supplied 1`] = `
34
34
  class="np-radio__avatar m-l-auto"
35
35
  >
36
36
  <div
37
- class="np-circle d-flex align-items-center justify-content-center tw-avatar tw-avatar--48 tw-avatar--initials np-text-title-body"
38
- style="--circle-size: 48px;"
37
+ class="tw-avatar tw-avatar--48 tw-avatar--initials np-text-title-body"
39
38
  >
40
39
  <div
41
- class="np-circle d-flex align-items-center justify-content-center tw-avatar__content"
42
- style="--circle-size: 48px;"
40
+ class="tw-avatar__content"
43
41
  >
44
42
  HD
45
43
  </div>