@transferwise/components 0.0.0-experimental-604361d → 0.0.0-experimental-2a3da7e

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
@@ -1026,17 +1026,17 @@
1026
1026
  background-color: var(--color-background-neutral-active);
1027
1027
  }
1028
1028
  .np-icon-button-primary-default {
1029
- color: var(--color-interactive-control);
1029
+ color: var(--color-sentiment-interactive-control, var(--color-interactive-control));
1030
1030
  background-color: #00a2dd;
1031
- background-color: var(--color-interactive-accent);
1031
+ background-color: var(--color-sentiment-interactive-primary, var(--color-interactive-accent));
1032
1032
  }
1033
1033
  .np-icon-button-primary-default:not(.disabled):not(:disabled):hover {
1034
1034
  background-color: #008fc9;
1035
- background-color: var(--color-interactive-accent-hover);
1035
+ background-color: var(--color-sentiment-interactive-primary-hover, var(--color-interactive-accent-hover));
1036
1036
  }
1037
1037
  .np-icon-button-primary-default:not(.disabled):not(:disabled):active {
1038
1038
  background-color: #0081ba;
1039
- background-color: var(--color-interactive-accent-active);
1039
+ background-color: var(--color-sentiment-interactive-primary-active, var(--color-interactive-accent-active));
1040
1040
  }
1041
1041
  .np-icon-button-primary-negative {
1042
1042
  color: var(--color-contrast-overlay);
@@ -1064,14 +1064,14 @@
1064
1064
  background-color: var(--color-background-screen-active);
1065
1065
  }
1066
1066
  .np-icon-button-secondary-default {
1067
- color: var(--color-interactive-primary);
1068
- background-color: var(--color-interactive-neutral);
1067
+ color: var(--color-sentiment-content-primary, var(--color-interactive-primary));
1068
+ background-color: var(--color-sentiment-interactive-secondary-neutral, var(--color-interactive-neutral));
1069
1069
  }
1070
1070
  .np-icon-button-secondary-default:not(.disabled):not(:disabled):hover {
1071
- background-color: var(--color-interactive-neutral-hover);
1071
+ background-color: var(--color-sentiment-interactive-secondary-neutral-hover, var(--color-interactive-neutral-hover));
1072
1072
  }
1073
1073
  .np-icon-button-secondary-default:not(.disabled):not(:disabled):active {
1074
- background-color: var(--color-interactive-neutral-active);
1074
+ background-color: var(--color-sentiment-interactive-secondary-neutral-active, var(--color-interactive-neutral-active));
1075
1075
  }
1076
1076
  .np-theme-personal--bright-green .np-icon-button-secondary-default,
1077
1077
  .np-theme-personal--forest-green .np-icon-button-secondary-default {
@@ -13,17 +13,17 @@
13
13
  background-color: var(--color-background-neutral-active);
14
14
  }
15
15
  .np-icon-button-primary-default {
16
- color: var(--color-interactive-control);
16
+ color: var(--color-sentiment-interactive-control, var(--color-interactive-control));
17
17
  background-color: #00a2dd;
18
- background-color: var(--color-interactive-accent);
18
+ background-color: var(--color-sentiment-interactive-primary, var(--color-interactive-accent));
19
19
  }
20
20
  .np-icon-button-primary-default:not(.disabled):not(:disabled):hover {
21
21
  background-color: #008fc9;
22
- background-color: var(--color-interactive-accent-hover);
22
+ background-color: var(--color-sentiment-interactive-primary-hover, var(--color-interactive-accent-hover));
23
23
  }
24
24
  .np-icon-button-primary-default:not(.disabled):not(:disabled):active {
25
25
  background-color: #0081ba;
26
- background-color: var(--color-interactive-accent-active);
26
+ background-color: var(--color-sentiment-interactive-primary-active, var(--color-interactive-accent-active));
27
27
  }
28
28
  .np-icon-button-primary-negative {
29
29
  color: var(--color-contrast-overlay);
@@ -51,14 +51,14 @@
51
51
  background-color: var(--color-background-screen-active);
52
52
  }
53
53
  .np-icon-button-secondary-default {
54
- color: var(--color-interactive-primary);
55
- background-color: var(--color-interactive-neutral);
54
+ color: var(--color-sentiment-content-primary, var(--color-interactive-primary));
55
+ background-color: var(--color-sentiment-interactive-secondary-neutral, var(--color-interactive-neutral));
56
56
  }
57
57
  .np-icon-button-secondary-default:not(.disabled):not(:disabled):hover {
58
- background-color: var(--color-interactive-neutral-hover);
58
+ background-color: var(--color-sentiment-interactive-secondary-neutral-hover, var(--color-interactive-neutral-hover));
59
59
  }
60
60
  .np-icon-button-secondary-default:not(.disabled):not(:disabled):active {
61
- background-color: var(--color-interactive-neutral-active);
61
+ background-color: var(--color-sentiment-interactive-secondary-neutral-active, var(--color-interactive-neutral-active));
62
62
  }
63
63
  .np-theme-personal--bright-green .np-icon-button-secondary-default,
64
64
  .np-theme-personal--forest-green .np-icon-button-secondary-default {
@@ -1026,17 +1026,17 @@
1026
1026
  background-color: var(--color-background-neutral-active);
1027
1027
  }
1028
1028
  .np-icon-button-primary-default {
1029
- color: var(--color-interactive-control);
1029
+ color: var(--color-sentiment-interactive-control, var(--color-interactive-control));
1030
1030
  background-color: #00a2dd;
1031
- background-color: var(--color-interactive-accent);
1031
+ background-color: var(--color-sentiment-interactive-primary, var(--color-interactive-accent));
1032
1032
  }
1033
1033
  .np-icon-button-primary-default:not(.disabled):not(:disabled):hover {
1034
1034
  background-color: #008fc9;
1035
- background-color: var(--color-interactive-accent-hover);
1035
+ background-color: var(--color-sentiment-interactive-primary-hover, var(--color-interactive-accent-hover));
1036
1036
  }
1037
1037
  .np-icon-button-primary-default:not(.disabled):not(:disabled):active {
1038
1038
  background-color: #0081ba;
1039
- background-color: var(--color-interactive-accent-active);
1039
+ background-color: var(--color-sentiment-interactive-primary-active, var(--color-interactive-accent-active));
1040
1040
  }
1041
1041
  .np-icon-button-primary-negative {
1042
1042
  color: var(--color-contrast-overlay);
@@ -1064,14 +1064,14 @@
1064
1064
  background-color: var(--color-background-screen-active);
1065
1065
  }
1066
1066
  .np-icon-button-secondary-default {
1067
- color: var(--color-interactive-primary);
1068
- background-color: var(--color-interactive-neutral);
1067
+ color: var(--color-sentiment-content-primary, var(--color-interactive-primary));
1068
+ background-color: var(--color-sentiment-interactive-secondary-neutral, var(--color-interactive-neutral));
1069
1069
  }
1070
1070
  .np-icon-button-secondary-default:not(.disabled):not(:disabled):hover {
1071
- background-color: var(--color-interactive-neutral-hover);
1071
+ background-color: var(--color-sentiment-interactive-secondary-neutral-hover, var(--color-interactive-neutral-hover));
1072
1072
  }
1073
1073
  .np-icon-button-secondary-default:not(.disabled):not(:disabled):active {
1074
- background-color: var(--color-interactive-neutral-active);
1074
+ background-color: var(--color-sentiment-interactive-secondary-neutral-active, var(--color-interactive-neutral-active));
1075
1075
  }
1076
1076
  .np-theme-personal--bright-green .np-icon-button-secondary-default,
1077
1077
  .np-theme-personal--forest-green .np-icon-button-secondary-default {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@transferwise/components",
3
- "version": "0.0.0-experimental-604361d",
3
+ "version": "0.0.0-experimental-2a3da7e",
4
4
  "description": "Neptune React components",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -84,13 +84,13 @@
84
84
  "storybook-addon-tag-badges": "^2.0.2",
85
85
  "storybook-addon-test-codegen": "^2.0.1",
86
86
  "@transferwise/less-config": "3.1.2",
87
- "@transferwise/neptune-css": "0.0.0-experimental-604361d",
87
+ "@transferwise/neptune-css": "0.0.0-experimental-2a3da7e",
88
88
  "@wise/components-theming": "1.9.1",
89
89
  "@wise/wds-configs": "0.0.0"
90
90
  },
91
91
  "peerDependencies": {
92
92
  "@transferwise/icons": "^3 || ^4",
93
- "@transferwise/neptune-css": "0.0.0-experimental-604361d",
93
+ "@transferwise/neptune-css": "0.0.0-experimental-2a3da7e",
94
94
  "@wise/art": "^2.24.4",
95
95
  "@wise/components-theming": "^1.6.2",
96
96
  "react": ">=18",
@@ -950,5 +950,11 @@ export const SentimentAwareness: Story = {
950
950
  },
951
951
  },
952
952
  },
953
- decorators: [withComponentGrid()],
953
+ decorators: [
954
+ (Story) => (
955
+ <div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>
956
+ <Story />
957
+ </div>
958
+ ),
959
+ ],
954
960
  };
@@ -13,17 +13,17 @@
13
13
  background-color: var(--color-background-neutral-active);
14
14
  }
15
15
  .np-icon-button-primary-default {
16
- color: var(--color-interactive-control);
16
+ color: var(--color-sentiment-interactive-control, var(--color-interactive-control));
17
17
  background-color: #00a2dd;
18
- background-color: var(--color-interactive-accent);
18
+ background-color: var(--color-sentiment-interactive-primary, var(--color-interactive-accent));
19
19
  }
20
20
  .np-icon-button-primary-default:not(.disabled):not(:disabled):hover {
21
21
  background-color: #008fc9;
22
- background-color: var(--color-interactive-accent-hover);
22
+ background-color: var(--color-sentiment-interactive-primary-hover, var(--color-interactive-accent-hover));
23
23
  }
24
24
  .np-icon-button-primary-default:not(.disabled):not(:disabled):active {
25
25
  background-color: #0081ba;
26
- background-color: var(--color-interactive-accent-active);
26
+ background-color: var(--color-sentiment-interactive-primary-active, var(--color-interactive-accent-active));
27
27
  }
28
28
  .np-icon-button-primary-negative {
29
29
  color: var(--color-contrast-overlay);
@@ -51,14 +51,14 @@
51
51
  background-color: var(--color-background-screen-active);
52
52
  }
53
53
  .np-icon-button-secondary-default {
54
- color: var(--color-interactive-primary);
55
- background-color: var(--color-interactive-neutral);
54
+ color: var(--color-sentiment-content-primary, var(--color-interactive-primary));
55
+ background-color: var(--color-sentiment-interactive-secondary-neutral, var(--color-interactive-neutral));
56
56
  }
57
57
  .np-icon-button-secondary-default:not(.disabled):not(:disabled):hover {
58
- background-color: var(--color-interactive-neutral-hover);
58
+ background-color: var(--color-sentiment-interactive-secondary-neutral-hover, var(--color-interactive-neutral-hover));
59
59
  }
60
60
  .np-icon-button-secondary-default:not(.disabled):not(:disabled):active {
61
- background-color: var(--color-interactive-neutral-active);
61
+ background-color: var(--color-sentiment-interactive-secondary-neutral-active, var(--color-interactive-neutral-active));
62
62
  }
63
63
  .np-theme-personal--bright-green .np-icon-button-secondary-default,
64
64
  .np-theme-personal--forest-green .np-icon-button-secondary-default {
@@ -5,7 +5,21 @@
5
5
  }
6
6
 
7
7
  &-primary-default {
8
- .colors(--color-interactive-control, --color-interactive-accent);
8
+ color: var(--color-sentiment-interactive-control, var(--color-interactive-control));
9
+ background-color: var(--color-sentiment-interactive-primary, var(--color-interactive-accent));
10
+
11
+ &:not(.disabled, :disabled):hover {
12
+ background-color: var(
13
+ --color-sentiment-interactive-primary-hover,
14
+ var(--color-interactive-accent-hover)
15
+ );
16
+ }
17
+ &:not(.disabled, :disabled):active {
18
+ background-color: var(
19
+ --color-sentiment-interactive-primary-active,
20
+ var(--color-interactive-accent-active)
21
+ );
22
+ }
9
23
  }
10
24
 
11
25
  &-primary-negative {
@@ -22,7 +36,24 @@
22
36
  }
23
37
 
24
38
  &-secondary-default {
25
- .colors(--color-interactive-primary, --color-interactive-neutral);
39
+ color: var(--color-sentiment-content-primary, var(--color-interactive-primary));
40
+ background-color: var(
41
+ --color-sentiment-interactive-secondary-neutral,
42
+ var(--color-interactive-neutral)
43
+ );
44
+
45
+ &:not(.disabled, :disabled):hover {
46
+ background-color: var(
47
+ --color-sentiment-interactive-secondary-neutral-hover,
48
+ var(--color-interactive-neutral-hover)
49
+ );
50
+ }
51
+ &:not(.disabled, :disabled):active {
52
+ background-color: var(
53
+ --color-sentiment-interactive-secondary-neutral-active,
54
+ var(--color-interactive-neutral-active)
55
+ );
56
+ }
26
57
 
27
58
  .np-theme-personal--bright-green &,
28
59
  .np-theme-personal--forest-green & {
@@ -46,10 +77,10 @@
46
77
  background-color: var(@bg-color);
47
78
 
48
79
  &:not(.disabled, :disabled):hover {
49
- background-color:~"var(@{bg-color}-hover)";
80
+ background-color: ~"var(@{bg-color}-hover)";
50
81
  }
51
82
  &:not(.disabled, :disabled):active {
52
- background-color:~"var(@{bg-color}-active)";
83
+ background-color: ~"var(@{bg-color}-active)";
53
84
  }
54
85
  }
55
86
  }
@@ -1,9 +1,9 @@
1
- /* eslint-disable react/jsx-key */
2
1
  import { Meta, StoryObj } from '@storybook/react-webpack5';
3
2
  import { ArrowLeft, Cross, Defrost, Edit, Menu, Plus } from '@transferwise/icons';
4
3
  import IconButton, { Props } from './IconButton';
5
4
  import { action } from 'storybook/actions';
6
5
  import Body from '../body';
6
+ import SentimentSurface from '../sentimentSurface';
7
7
 
8
8
  export default {
9
9
  title: 'Actions/IconButton',
@@ -94,14 +94,83 @@ export const Basic: Story = {
94
94
  >
95
95
  {['Primary', 'Secondary', 'Tertiary', 'Minimal', 'Neg primary', 'Neg secondary'].map(
96
96
  (variant) => (
97
- <Body type="body-default-bold">{variant}</Body>
97
+ <Body key={variant} type="body-default-bold">
98
+ {variant}
99
+ </Body>
98
100
  ),
99
101
  )}
100
102
  {sizes.map((size) => (
101
- <Template size={size} />
103
+ <Template key={size} size={size} />
102
104
  ))}
103
105
  <Template size={72} disabled />
104
106
  </div>
105
107
  );
106
108
  },
107
109
  };
110
+
111
+ /**
112
+ * `IconButton` is sentiment-aware and will automatically adjust its
113
+ * colours if wrapped inside the [SentimentSurface](/?path=/docs/content-sentimentsurface--docs) component
114
+ */
115
+ export const SentimentAwareness: Story = {
116
+ render: () => {
117
+ return (
118
+ <>
119
+ {(['success', 'warning', 'negative', 'neutral', 'proposition'] as const).map(
120
+ (sentiment) => (
121
+ <SentimentSurface
122
+ key={sentiment}
123
+ sentiment={sentiment}
124
+ className="p-a-1 d-flex align-items-center"
125
+ style={{ gap: 'var(--size-8)' }}
126
+ >
127
+ <IconButton
128
+ size={32}
129
+ aria-label="Primary action"
130
+ priority="primary"
131
+ type="default"
132
+ onClick={action('button click')}
133
+ >
134
+ <Plus />
135
+ </IconButton>
136
+ <IconButton
137
+ size={32}
138
+ aria-label="Secondary action"
139
+ priority="secondary"
140
+ type="default"
141
+ onClick={action('button click')}
142
+ >
143
+ <Defrost />
144
+ </IconButton>
145
+ <IconButton
146
+ size={32}
147
+ aria-label="Disabled action"
148
+ priority="primary"
149
+ type="default"
150
+ disabled
151
+ onClick={action('button click')}
152
+ >
153
+ <Menu />
154
+ </IconButton>
155
+ </SentimentSurface>
156
+ ),
157
+ )}
158
+ </>
159
+ );
160
+ },
161
+ parameters: {
162
+ docs: {
163
+ source: { type: 'dynamic' },
164
+ canvas: {
165
+ sourceState: 'hidden',
166
+ },
167
+ },
168
+ },
169
+ decorators: [
170
+ (Story) => (
171
+ <div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>
172
+ <Story />
173
+ </div>
174
+ ),
175
+ ],
176
+ };
package/src/main.css CHANGED
@@ -1026,17 +1026,17 @@
1026
1026
  background-color: var(--color-background-neutral-active);
1027
1027
  }
1028
1028
  .np-icon-button-primary-default {
1029
- color: var(--color-interactive-control);
1029
+ color: var(--color-sentiment-interactive-control, var(--color-interactive-control));
1030
1030
  background-color: #00a2dd;
1031
- background-color: var(--color-interactive-accent);
1031
+ background-color: var(--color-sentiment-interactive-primary, var(--color-interactive-accent));
1032
1032
  }
1033
1033
  .np-icon-button-primary-default:not(.disabled):not(:disabled):hover {
1034
1034
  background-color: #008fc9;
1035
- background-color: var(--color-interactive-accent-hover);
1035
+ background-color: var(--color-sentiment-interactive-primary-hover, var(--color-interactive-accent-hover));
1036
1036
  }
1037
1037
  .np-icon-button-primary-default:not(.disabled):not(:disabled):active {
1038
1038
  background-color: #0081ba;
1039
- background-color: var(--color-interactive-accent-active);
1039
+ background-color: var(--color-sentiment-interactive-primary-active, var(--color-interactive-accent-active));
1040
1040
  }
1041
1041
  .np-icon-button-primary-negative {
1042
1042
  color: var(--color-contrast-overlay);
@@ -1064,14 +1064,14 @@
1064
1064
  background-color: var(--color-background-screen-active);
1065
1065
  }
1066
1066
  .np-icon-button-secondary-default {
1067
- color: var(--color-interactive-primary);
1068
- background-color: var(--color-interactive-neutral);
1067
+ color: var(--color-sentiment-content-primary, var(--color-interactive-primary));
1068
+ background-color: var(--color-sentiment-interactive-secondary-neutral, var(--color-interactive-neutral));
1069
1069
  }
1070
1070
  .np-icon-button-secondary-default:not(.disabled):not(:disabled):hover {
1071
- background-color: var(--color-interactive-neutral-hover);
1071
+ background-color: var(--color-sentiment-interactive-secondary-neutral-hover, var(--color-interactive-neutral-hover));
1072
1072
  }
1073
1073
  .np-icon-button-secondary-default:not(.disabled):not(:disabled):active {
1074
- background-color: var(--color-interactive-neutral-active);
1074
+ background-color: var(--color-sentiment-interactive-secondary-neutral-active, var(--color-interactive-neutral-active));
1075
1075
  }
1076
1076
  .np-theme-personal--bright-green .np-icon-button-secondary-default,
1077
1077
  .np-theme-personal--forest-green .np-icon-button-secondary-default {