@transferwise/components 0.0.0-experimental-8b2d17e → 0.0.0-experimental-2e92e2c

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/main.css CHANGED
@@ -19403,10 +19403,13 @@ a[data-toggle="tooltip"] {
19403
19403
  position: absolute;
19404
19404
  background: #ffffff;
19405
19405
  background: var(--color-background-screen);
19406
- transform: translateX(0.5px) rotate(-45deg);
19406
+ transform: translateX(-1.5px) rotate(-45deg);
19407
19407
  transform-origin: left bottom;
19408
- inset-inline-start: 8px;
19409
- inset-inline-start: var(--size-8);
19408
+ }
19409
+ [dir="rtl"] .tw-checkbox-check::before,
19410
+ [dir="rtl"] .tw-checkbox-check::after {
19411
+ transform: translateX(-1.5px) rotate(-45deg) scaleX(-1);
19412
+ transform-origin: right bottom;
19410
19413
  }
19411
19414
  .tw-checkbox-check .has-error::before,
19412
19415
  .tw-checkbox-check .has-error::after {
@@ -21238,6 +21241,9 @@ a[data-toggle="tooltip"] {
21238
21241
  background: var(--color-background-screen);
21239
21242
  transform: translate(-50%, -50%);
21240
21243
  }
21244
+ [dir="rtl"] .np-tw-checkbox-indeterminate::after {
21245
+ transform: translateX(50%);
21246
+ }
21241
21247
  .np-tw-checkbox-indeterminate .has-error::after {
21242
21248
  background-color: #e74848;
21243
21249
  background-color: var(--color-interactive-negative);
@@ -26929,8 +26935,7 @@ button.np-link {
26929
26935
  .np-upload-input__item .np-upload-input__title,
26930
26936
  .np-upload-input__item .np-upload-input__text {
26931
26937
  margin: 0;
26932
- -moz-text-align-last: left;
26933
- text-align-last: left;
26938
+ text-align: start;
26934
26939
  color: #5d7079;
26935
26940
  color: var(--color-content-secondary);
26936
26941
  }
@@ -26986,7 +26991,7 @@ button.np-link {
26986
26991
  justify-content: center;
26987
26992
  }
26988
26993
  .np-upload-input__item .np-upload-input__item-action .np-upload-input__item-button:before {
26989
- content: '';
26994
+ content: "";
26990
26995
  display: block;
26991
26996
  inline-size: var(--clickAreaSize);
26992
26997
  block-size: var(--clickAreaSize);
@@ -27041,8 +27046,8 @@ button.np-link {
27041
27046
  padding-inline-start: var(--size-16);
27042
27047
  }
27043
27048
  .np-upload-input__item .np-upload-input-errors > li::before {
27044
- content: '•' ;
27045
- content: '•' / '';
27049
+ content: "•" ;
27050
+ content: "•" / "";
27046
27051
  position: absolute;
27047
27052
  display: block;
27048
27053
  inset-inline-start: 0;
@@ -32,6 +32,9 @@
32
32
  background: var(--color-background-screen);
33
33
  transform: translate(-50%, -50%);
34
34
  }
35
+ [dir="rtl"] .np-tw-checkbox-indeterminate::after {
36
+ transform: translateX(50%);
37
+ }
35
38
  .np-tw-checkbox-indeterminate .has-error::after {
36
39
  background-color: #e74848;
37
40
  background-color: var(--color-interactive-negative);
@@ -41,8 +41,7 @@
41
41
  .np-upload-input__item .np-upload-input__title,
42
42
  .np-upload-input__item .np-upload-input__text {
43
43
  margin: 0;
44
- -moz-text-align-last: left;
45
- text-align-last: left;
44
+ text-align: start;
46
45
  color: #5d7079;
47
46
  color: var(--color-content-secondary);
48
47
  }
@@ -98,7 +97,7 @@
98
97
  justify-content: center;
99
98
  }
100
99
  .np-upload-input__item .np-upload-input__item-action .np-upload-input__item-button:before {
101
- content: '';
100
+ content: "";
102
101
  display: block;
103
102
  inline-size: var(--clickAreaSize);
104
103
  block-size: var(--clickAreaSize);
@@ -153,8 +152,8 @@
153
152
  padding-inline-start: var(--size-16);
154
153
  }
155
154
  .np-upload-input__item .np-upload-input-errors > li::before {
156
- content: '•' ;
157
- content: '•' / '';
155
+ content: "•" ;
156
+ content: "•" / "";
158
157
  position: absolute;
159
158
  display: block;
160
159
  inset-inline-start: 0;
@@ -18811,10 +18811,13 @@ a[data-toggle="tooltip"] {
18811
18811
  position: absolute;
18812
18812
  background: #ffffff;
18813
18813
  background: var(--color-background-screen);
18814
- transform: translateX(0.5px) rotate(-45deg);
18814
+ transform: translateX(-1.5px) rotate(-45deg);
18815
18815
  transform-origin: left bottom;
18816
- inset-inline-start: 8px;
18817
- inset-inline-start: var(--size-8);
18816
+ }
18817
+ [dir="rtl"] .tw-checkbox-check::before,
18818
+ [dir="rtl"] .tw-checkbox-check::after {
18819
+ transform: translateX(-1.5px) rotate(-45deg) scaleX(-1);
18820
+ transform-origin: right bottom;
18818
18821
  }
18819
18822
  .tw-checkbox-check .has-error::before,
18820
18823
  .tw-checkbox-check .has-error::after {
@@ -10,10 +10,13 @@
10
10
  position: absolute;
11
11
  background: #ffffff;
12
12
  background: var(--color-background-screen);
13
- transform: translateX(0.5px) rotate(-45deg);
13
+ transform: translateX(-1.5px) rotate(-45deg);
14
14
  transform-origin: left bottom;
15
- inset-inline-start: 8px;
16
- inset-inline-start: var(--size-8);
15
+ }
16
+ [dir="rtl"] .tw-checkbox-check::before,
17
+ [dir="rtl"] .tw-checkbox-check::after {
18
+ transform: translateX(-1.5px) rotate(-45deg) scaleX(-1);
19
+ transform-origin: right bottom;
17
20
  }
18
21
  .tw-checkbox-check .has-error::before,
19
22
  .tw-checkbox-check .has-error::after {
@@ -19403,10 +19403,13 @@ a[data-toggle="tooltip"] {
19403
19403
  position: absolute;
19404
19404
  background: #ffffff;
19405
19405
  background: var(--color-background-screen);
19406
- transform: translateX(0.5px) rotate(-45deg);
19406
+ transform: translateX(-1.5px) rotate(-45deg);
19407
19407
  transform-origin: left bottom;
19408
- inset-inline-start: 8px;
19409
- inset-inline-start: var(--size-8);
19408
+ }
19409
+ [dir="rtl"] .tw-checkbox-check::before,
19410
+ [dir="rtl"] .tw-checkbox-check::after {
19411
+ transform: translateX(-1.5px) rotate(-45deg) scaleX(-1);
19412
+ transform-origin: right bottom;
19410
19413
  }
19411
19414
  .tw-checkbox-check .has-error::before,
19412
19415
  .tw-checkbox-check .has-error::after {
@@ -21238,6 +21241,9 @@ a[data-toggle="tooltip"] {
21238
21241
  background: var(--color-background-screen);
21239
21242
  transform: translate(-50%, -50%);
21240
21243
  }
21244
+ [dir="rtl"] .np-tw-checkbox-indeterminate::after {
21245
+ transform: translateX(50%);
21246
+ }
21241
21247
  .np-tw-checkbox-indeterminate .has-error::after {
21242
21248
  background-color: #e74848;
21243
21249
  background-color: var(--color-interactive-negative);
@@ -26929,8 +26935,7 @@ button.np-link {
26929
26935
  .np-upload-input__item .np-upload-input__title,
26930
26936
  .np-upload-input__item .np-upload-input__text {
26931
26937
  margin: 0;
26932
- -moz-text-align-last: left;
26933
- text-align-last: left;
26938
+ text-align: start;
26934
26939
  color: #5d7079;
26935
26940
  color: var(--color-content-secondary);
26936
26941
  }
@@ -26986,7 +26991,7 @@ button.np-link {
26986
26991
  justify-content: center;
26987
26992
  }
26988
26993
  .np-upload-input__item .np-upload-input__item-action .np-upload-input__item-button:before {
26989
- content: '';
26994
+ content: "";
26990
26995
  display: block;
26991
26996
  inline-size: var(--clickAreaSize);
26992
26997
  block-size: var(--clickAreaSize);
@@ -27041,8 +27046,8 @@ button.np-link {
27041
27046
  padding-inline-start: var(--size-16);
27042
27047
  }
27043
27048
  .np-upload-input__item .np-upload-input-errors > li::before {
27044
- content: '•' ;
27045
- content: '•' / '';
27049
+ content: "•" ;
27050
+ content: "•" / "";
27046
27051
  position: absolute;
27047
27052
  display: block;
27048
27053
  inset-inline-start: 0;
@@ -18811,10 +18811,13 @@ a[data-toggle="tooltip"] {
18811
18811
  position: absolute;
18812
18812
  background: #ffffff;
18813
18813
  background: var(--color-background-screen);
18814
- transform: translateX(0.5px) rotate(-45deg);
18814
+ transform: translateX(-1.5px) rotate(-45deg);
18815
18815
  transform-origin: left bottom;
18816
- inset-inline-start: 8px;
18817
- inset-inline-start: var(--size-8);
18816
+ }
18817
+ [dir="rtl"] .tw-checkbox-check::before,
18818
+ [dir="rtl"] .tw-checkbox-check::after {
18819
+ transform: translateX(-1.5px) rotate(-45deg) scaleX(-1);
18820
+ transform-origin: right bottom;
18818
18821
  }
18819
18822
  .tw-checkbox-check .has-error::before,
18820
18823
  .tw-checkbox-check .has-error::after {
@@ -10,10 +10,13 @@
10
10
  position: absolute;
11
11
  background: #ffffff;
12
12
  background: var(--color-background-screen);
13
- transform: translateX(0.5px) rotate(-45deg);
13
+ transform: translateX(-1.5px) rotate(-45deg);
14
14
  transform-origin: left bottom;
15
- inset-inline-start: 8px;
16
- inset-inline-start: var(--size-8);
15
+ }
16
+ [dir="rtl"] .tw-checkbox-check::before,
17
+ [dir="rtl"] .tw-checkbox-check::after {
18
+ transform: translateX(-1.5px) rotate(-45deg) scaleX(-1);
19
+ transform-origin: right bottom;
17
20
  }
18
21
  .tw-checkbox-check .has-error::before,
19
22
  .tw-checkbox-check .has-error::after {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@transferwise/components",
3
- "version": "0.0.0-experimental-8b2d17e",
3
+ "version": "0.0.0-experimental-2e92e2c",
4
4
  "description": "Neptune React components",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -91,7 +91,7 @@
91
91
  "storybook": "^10.5.4",
92
92
  "storybook-addon-tag-badges": "^3.1.0",
93
93
  "storybook-addon-test-codegen": "^3.0.4",
94
- "@transferwise/less-config": "0.0.0-experimental-8b2d17e",
94
+ "@transferwise/less-config": "0.0.0-experimental-2e92e2c",
95
95
  "@wise/components-theming": "1.10.3",
96
96
  "@wise/wds-configs": "0.0.0"
97
97
  },
@@ -32,6 +32,9 @@
32
32
  background: var(--color-background-screen);
33
33
  transform: translate(-50%, -50%);
34
34
  }
35
+ [dir="rtl"] .np-tw-checkbox-indeterminate::after {
36
+ transform: translateX(50%);
37
+ }
35
38
  .np-tw-checkbox-indeterminate .has-error::after {
36
39
  background-color: #e74848;
37
40
  background-color: var(--color-interactive-negative);
@@ -40,6 +40,10 @@
40
40
  left: 50%;
41
41
  background: var(--color-background-screen);
42
42
  transform: translate(-50%, -50%);
43
+
44
+ [dir="rtl"] & {
45
+ transform: translateX(50%);
46
+ }
43
47
  }
44
48
 
45
49
  .has-error {
@@ -60,7 +60,7 @@ export const SB_LIST_ITEM_CONTROLS: Record<SB_ListItem_ControlType, ReactNode> =
60
60
  ),
61
61
  navigation: <ListItem.Navigation href="https://wise.com" />,
62
62
  navigationAsButton: <ListItem.Navigation onClick={fn()} />,
63
- checkbox: <ListItem.Checkbox onChange={() => {}} />,
63
+ checkbox: <ListItem.Checkbox checked onChange={() => {}} />,
64
64
  radio: <ListItem.Radio name="radio" value={Math.random().toString()} onChange={() => {}} />,
65
65
  switch: <ListItem.Switch onClick={() => {}} />,
66
66
  iconButton: (
@@ -0,0 +1,23 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
+ import { withRTLDiff } from '../../../.storybook/decorators/RtlDiffDecorator';
3
+ import Loader from '..';
4
+
5
+ export default {
6
+ component: Loader,
7
+ title: 'Loading/Loader/Tests',
8
+ tags: ['!autodocs', '!manifest'],
9
+ } satisfies Meta<typeof Loader>;
10
+
11
+ type Story = StoryObj<typeof Loader>;
12
+
13
+ export const RTLDiff: Story = {
14
+ render: () => (
15
+ <>
16
+ <Loader size="sm" displayInstantly />
17
+ <Loader size="md" displayInstantly />
18
+ <Loader size="sm" displayInstantly label="Sending your money" />
19
+ <Loader size="md" displayInstantly label="Sending your money" />
20
+ </>
21
+ ),
22
+ ...withRTLDiff(),
23
+ };
@@ -10,28 +10,45 @@ export default {
10
10
 
11
11
  type Story = StoryObj<typeof Nudge>;
12
12
 
13
+ const MEDIA_NAMES = [
14
+ 'globe',
15
+ 'lock',
16
+ 'wallet',
17
+ 'gear',
18
+ 'invite-letter',
19
+ 'personal-card',
20
+ 'business-card',
21
+ 'heart',
22
+ 'multi-currency',
23
+ 'shopping-bag',
24
+ 'flower',
25
+ 'gift-box',
26
+ 'backpack',
27
+ 'documents',
28
+ ] as const;
29
+
13
30
  export const RTLDiff: Story = {
14
31
  render: () => (
15
32
  <>
33
+ {MEDIA_NAMES.map((mediaName) => (
34
+ <Nudge
35
+ key={mediaName}
36
+ mediaName={mediaName}
37
+ title={mediaName}
38
+ link="Link"
39
+ href="#"
40
+ onDismiss={() => {}}
41
+ />
42
+ ))}
16
43
  <Nudge
17
44
  mediaName="globe"
18
- title="With media and dismiss"
19
- link="Link"
20
- href="#"
21
- onDismiss={() => {}}
22
- />
23
- <div style={{ marginTop: 16 }} />
24
- <Nudge
25
- mediaName="globe"
26
- title="With media, action, and dismiss"
45
+ title="With action"
27
46
  action={{ text: 'Learn more', href: '#' }}
28
47
  onDismiss={() => {}}
29
48
  />
30
- <div style={{ marginTop: 16 }} />
31
49
  <Nudge title="Without media, with dismiss" link="Link" href="#" onDismiss={() => {}} />
32
- <div style={{ marginTop: 16 }} />
33
50
  <Nudge title="Without media, no dismiss" link="Link" href="#" />
34
51
  </>
35
52
  ),
36
- ...withRTLDiff(),
53
+ ...withRTLDiff({ width: 'stretch' }),
37
54
  };
@@ -41,8 +41,7 @@
41
41
  .np-upload-input__item .np-upload-input__title,
42
42
  .np-upload-input__item .np-upload-input__text {
43
43
  margin: 0;
44
- -moz-text-align-last: left;
45
- text-align-last: left;
44
+ text-align: start;
46
45
  color: #5d7079;
47
46
  color: var(--color-content-secondary);
48
47
  }
@@ -98,7 +97,7 @@
98
97
  justify-content: center;
99
98
  }
100
99
  .np-upload-input__item .np-upload-input__item-action .np-upload-input__item-button:before {
101
- content: '';
100
+ content: "";
102
101
  display: block;
103
102
  inline-size: var(--clickAreaSize);
104
103
  block-size: var(--clickAreaSize);
@@ -153,8 +152,8 @@
153
152
  padding-inline-start: var(--size-16);
154
153
  }
155
154
  .np-upload-input__item .np-upload-input-errors > li::before {
156
- content: '•' ;
157
- content: '•' / '';
155
+ content: "•" ;
156
+ content: "•" / "";
158
157
  position: absolute;
159
158
  display: block;
160
159
  inset-inline-start: 0;
@@ -39,7 +39,7 @@
39
39
  .np-upload-input__title,
40
40
  .np-upload-input__text {
41
41
  margin: 0;
42
- text-align-last: left;
42
+ text-align: left;
43
43
  color: var(--color-content-secondary);
44
44
  }
45
45
 
@@ -64,7 +64,7 @@
64
64
  --buttonTopRightOffset: var(--size-16);
65
65
  // Offset towards the parent's top-right edge
66
66
  // ensuring no overflow on smaller screens
67
- --clickAreaTopRightOffset: calc((var(--clickAreaSize) - var(--iconSize)) * -.5);
67
+ --clickAreaTopRightOffset: calc((var(--clickAreaSize) - var(--iconSize)) * -0.5);
68
68
 
69
69
  position: absolute;
70
70
  right: var(--buttonTopRightOffset);
@@ -84,14 +84,16 @@
84
84
  border: 0;
85
85
  background-color: var(--color-background-neutral);
86
86
  color: var(--color-interactive-primary);
87
- transition: color, background-color 0.15s ease-in-out;
87
+ transition:
88
+ color,
89
+ background-color 0.15s ease-in-out;
88
90
  outline-offset: 0;
89
91
  display: flex;
90
92
  align-items: center;
91
93
  justify-content: center;
92
94
 
93
95
  &:before {
94
- content: '';
96
+ content: "";
95
97
  display: block;
96
98
  width: var(--clickAreaSize);
97
99
  height: var(--clickAreaSize);
@@ -116,7 +118,6 @@
116
118
  padding: 0;
117
119
 
118
120
  &:hover:not(:has(.np-upload-input__item-button:hover)) {
119
-
120
121
  &:before,
121
122
  & + .np-upload-input__item:before {
122
123
  width: 100%;
@@ -158,7 +159,7 @@
158
159
  padding-left: var(--size-16);
159
160
 
160
161
  &::before {
161
- content: '•' / '';
162
+ content: "•" / "";
162
163
  position: absolute;
163
164
  display: block;
164
165
  left: 0;
@@ -345,5 +345,5 @@ export const RTLDiff: Story = {
345
345
  />
346
346
  </>
347
347
  ),
348
- ...withRTLDiff(),
348
+ ...withRTLDiff({ renderAs: 'iframe' }),
349
349
  };
package/src/main.css CHANGED
@@ -19403,10 +19403,13 @@ a[data-toggle="tooltip"] {
19403
19403
  position: absolute;
19404
19404
  background: #ffffff;
19405
19405
  background: var(--color-background-screen);
19406
- transform: translateX(0.5px) rotate(-45deg);
19406
+ transform: translateX(-1.5px) rotate(-45deg);
19407
19407
  transform-origin: left bottom;
19408
- inset-inline-start: 8px;
19409
- inset-inline-start: var(--size-8);
19408
+ }
19409
+ [dir="rtl"] .tw-checkbox-check::before,
19410
+ [dir="rtl"] .tw-checkbox-check::after {
19411
+ transform: translateX(-1.5px) rotate(-45deg) scaleX(-1);
19412
+ transform-origin: right bottom;
19410
19413
  }
19411
19414
  .tw-checkbox-check .has-error::before,
19412
19415
  .tw-checkbox-check .has-error::after {
@@ -21238,6 +21241,9 @@ a[data-toggle="tooltip"] {
21238
21241
  background: var(--color-background-screen);
21239
21242
  transform: translate(-50%, -50%);
21240
21243
  }
21244
+ [dir="rtl"] .np-tw-checkbox-indeterminate::after {
21245
+ transform: translateX(50%);
21246
+ }
21241
21247
  .np-tw-checkbox-indeterminate .has-error::after {
21242
21248
  background-color: #e74848;
21243
21249
  background-color: var(--color-interactive-negative);
@@ -26929,8 +26935,7 @@ button.np-link {
26929
26935
  .np-upload-input__item .np-upload-input__title,
26930
26936
  .np-upload-input__item .np-upload-input__text {
26931
26937
  margin: 0;
26932
- -moz-text-align-last: left;
26933
- text-align-last: left;
26938
+ text-align: start;
26934
26939
  color: #5d7079;
26935
26940
  color: var(--color-content-secondary);
26936
26941
  }
@@ -26986,7 +26991,7 @@ button.np-link {
26986
26991
  justify-content: center;
26987
26992
  }
26988
26993
  .np-upload-input__item .np-upload-input__item-action .np-upload-input__item-button:before {
26989
- content: '';
26994
+ content: "";
26990
26995
  display: block;
26991
26996
  inline-size: var(--clickAreaSize);
26992
26997
  block-size: var(--clickAreaSize);
@@ -27041,8 +27046,8 @@ button.np-link {
27041
27046
  padding-inline-start: var(--size-16);
27042
27047
  }
27043
27048
  .np-upload-input__item .np-upload-input-errors > li::before {
27044
- content: '•' ;
27045
- content: '•' / '';
27049
+ content: "•" ;
27050
+ content: "•" / "";
27046
27051
  position: absolute;
27047
27052
  display: block;
27048
27053
  inset-inline-start: 0;
@@ -18811,10 +18811,13 @@ a[data-toggle="tooltip"] {
18811
18811
  position: absolute;
18812
18812
  background: #ffffff;
18813
18813
  background: var(--color-background-screen);
18814
- transform: translateX(0.5px) rotate(-45deg);
18814
+ transform: translateX(-1.5px) rotate(-45deg);
18815
18815
  transform-origin: left bottom;
18816
- inset-inline-start: 8px;
18817
- inset-inline-start: var(--size-8);
18816
+ }
18817
+ [dir="rtl"] .tw-checkbox-check::before,
18818
+ [dir="rtl"] .tw-checkbox-check::after {
18819
+ transform: translateX(-1.5px) rotate(-45deg) scaleX(-1);
18820
+ transform-origin: right bottom;
18818
18821
  }
18819
18822
  .tw-checkbox-check .has-error::before,
18820
18823
  .tw-checkbox-check .has-error::after {
@@ -10,10 +10,13 @@
10
10
  position: absolute;
11
11
  background: #ffffff;
12
12
  background: var(--color-background-screen);
13
- transform: translateX(0.5px) rotate(-45deg);
13
+ transform: translateX(-1.5px) rotate(-45deg);
14
14
  transform-origin: left bottom;
15
- inset-inline-start: 8px;
16
- inset-inline-start: var(--size-8);
15
+ }
16
+ [dir="rtl"] .tw-checkbox-check::before,
17
+ [dir="rtl"] .tw-checkbox-check::after {
18
+ transform: translateX(-1.5px) rotate(-45deg) scaleX(-1);
19
+ transform-origin: right bottom;
17
20
  }
18
21
  .tw-checkbox-check .has-error::before,
19
22
  .tw-checkbox-check .has-error::after {
@@ -11,9 +11,13 @@
11
11
  content: "";
12
12
  position: absolute;
13
13
  background: var(--color-background-screen);
14
- transform: translateX(0.5px) rotate(-45deg);
14
+ transform: translateX(-1.5px) rotate(-45deg);
15
15
  transform-origin: left bottom;
16
- left: var(--size-8);
16
+
17
+ [dir="rtl"] & {
18
+ transform: translateX(-1.5px) rotate(-45deg) scaleX(-1);
19
+ transform-origin: right bottom;
20
+ }
17
21
  }
18
22
 
19
23
  .has-error {
@@ -34,4 +38,4 @@
34
38
  height: 2px;
35
39
  width: 11px;
36
40
  }
37
- }
41
+ }