@transferwise/components 0.0.0-experimental-28eac06 → 0.0.0-experimental-9b6d886

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 (202) hide show
  1. package/build/alert/Alert.js +17 -17
  2. package/build/alert/Alert.js.map +1 -1
  3. package/build/alert/Alert.mjs +14 -14
  4. package/build/alert/Alert.mjs.map +1 -1
  5. package/build/avatarLayout/AvatarLayout.js +2 -9
  6. package/build/avatarLayout/AvatarLayout.js.map +1 -1
  7. package/build/avatarLayout/AvatarLayout.mjs +2 -9
  8. package/build/avatarLayout/AvatarLayout.mjs.map +1 -1
  9. package/build/button/Button.js +79 -86
  10. package/build/button/Button.js.map +1 -1
  11. package/build/button/Button.mjs +80 -87
  12. package/build/button/Button.mjs.map +1 -1
  13. package/build/circularButton/CircularButton.js.map +1 -1
  14. package/build/circularButton/CircularButton.mjs.map +1 -1
  15. package/build/common/action/Action.js +15 -26
  16. package/build/common/action/Action.js.map +1 -1
  17. package/build/common/action/Action.mjs +15 -26
  18. package/build/common/action/Action.mjs.map +1 -1
  19. package/build/common/propsValues/sentiment.js +0 -1
  20. package/build/common/propsValues/sentiment.js.map +1 -1
  21. package/build/common/propsValues/sentiment.mjs +0 -1
  22. package/build/common/propsValues/sentiment.mjs.map +1 -1
  23. package/build/criticalBanner/CriticalCommsBanner.js +73 -10
  24. package/build/criticalBanner/CriticalCommsBanner.js.map +1 -1
  25. package/build/criticalBanner/CriticalCommsBanner.mjs +74 -11
  26. package/build/criticalBanner/CriticalCommsBanner.mjs.map +1 -1
  27. package/build/header/Header.js +2 -2
  28. package/build/header/Header.js.map +1 -1
  29. package/build/header/Header.mjs +1 -1
  30. package/build/i18n/en.json +0 -1
  31. package/build/i18n/en.json.js +0 -1
  32. package/build/i18n/en.json.js.map +1 -1
  33. package/build/i18n/en.json.mjs +0 -1
  34. package/build/i18n/en.json.mjs.map +1 -1
  35. package/build/i18n/ja.json +1 -0
  36. package/build/i18n/ja.json.js +1 -0
  37. package/build/i18n/ja.json.js.map +1 -1
  38. package/build/i18n/ja.json.mjs +1 -0
  39. package/build/i18n/ja.json.mjs.map +1 -1
  40. package/build/i18n/pt.json +1 -0
  41. package/build/i18n/pt.json.js +1 -0
  42. package/build/i18n/pt.json.js.map +1 -1
  43. package/build/i18n/pt.json.mjs +1 -0
  44. package/build/i18n/pt.json.mjs.map +1 -1
  45. package/build/i18n/ru.json +1 -0
  46. package/build/i18n/ru.json.js +1 -0
  47. package/build/i18n/ru.json.js.map +1 -1
  48. package/build/i18n/ru.json.mjs +1 -0
  49. package/build/i18n/ru.json.mjs.map +1 -1
  50. package/build/i18n/zh-HK.json +1 -0
  51. package/build/i18n/zh-HK.json.js +1 -0
  52. package/build/i18n/zh-HK.json.js.map +1 -1
  53. package/build/i18n/zh-HK.json.mjs +1 -0
  54. package/build/i18n/zh-HK.json.mjs.map +1 -1
  55. package/build/index.js +2 -2
  56. package/build/index.mjs +1 -1
  57. package/build/link/Link.js +3 -8
  58. package/build/link/Link.js.map +1 -1
  59. package/build/link/Link.mjs +3 -8
  60. package/build/link/Link.mjs.map +1 -1
  61. package/build/main.css +70 -267
  62. package/build/primitives/PrimitiveAnchor/src/PrimitiveAnchor.js +4 -2
  63. package/build/primitives/PrimitiveAnchor/src/PrimitiveAnchor.js.map +1 -1
  64. package/build/primitives/PrimitiveAnchor/src/PrimitiveAnchor.mjs +4 -2
  65. package/build/primitives/PrimitiveAnchor/src/PrimitiveAnchor.mjs.map +1 -1
  66. package/build/primitives/PrimitiveButton/src/PrimitiveButton.js +5 -3
  67. package/build/primitives/PrimitiveButton/src/PrimitiveButton.js.map +1 -1
  68. package/build/primitives/PrimitiveButton/src/PrimitiveButton.mjs +5 -3
  69. package/build/primitives/PrimitiveButton/src/PrimitiveButton.mjs.map +1 -1
  70. package/build/select/Select.js +2 -2
  71. package/build/select/Select.js.map +1 -1
  72. package/build/select/Select.mjs +1 -1
  73. package/build/statusIcon/StatusIcon.js +1 -5
  74. package/build/statusIcon/StatusIcon.js.map +1 -1
  75. package/build/statusIcon/StatusIcon.messages.js +0 -3
  76. package/build/statusIcon/StatusIcon.messages.js.map +1 -1
  77. package/build/statusIcon/StatusIcon.messages.mjs +0 -3
  78. package/build/statusIcon/StatusIcon.messages.mjs.map +1 -1
  79. package/build/statusIcon/StatusIcon.mjs +1 -5
  80. package/build/statusIcon/StatusIcon.mjs.map +1 -1
  81. package/build/styles/avatarLayout/AvatarLayout.css +0 -11
  82. package/build/styles/button/Button.css +15 -230
  83. package/build/styles/criticalBanner/CriticalCommsBanner.css +73 -21
  84. package/build/styles/main.css +70 -267
  85. package/build/types/alert/Alert.d.ts +4 -3
  86. package/build/types/alert/Alert.d.ts.map +1 -1
  87. package/build/types/avatarLayout/AvatarLayout.d.ts.map +1 -1
  88. package/build/types/button/Button.d.ts +23 -2
  89. package/build/types/button/Button.d.ts.map +1 -1
  90. package/build/types/button/index.d.ts +2 -2
  91. package/build/types/button/index.d.ts.map +1 -1
  92. package/build/types/circularButton/CircularButton.d.ts.map +1 -1
  93. package/build/types/common/action/Action.d.ts +2 -5
  94. package/build/types/common/action/Action.d.ts.map +1 -1
  95. package/build/types/common/propsValues/sentiment.d.ts +0 -1
  96. package/build/types/common/propsValues/sentiment.d.ts.map +1 -1
  97. package/build/types/criticalBanner/CriticalCommsBanner.d.ts.map +1 -1
  98. package/build/types/index.d.ts +1 -0
  99. package/build/types/index.d.ts.map +1 -1
  100. package/build/types/link/Link.d.ts +2 -2
  101. package/build/types/link/Link.d.ts.map +1 -1
  102. package/build/types/primitives/PrimitiveAnchor/src/PrimitiveAnchor.d.ts.map +1 -1
  103. package/build/types/primitives/PrimitiveAnchor/src/PrimitiveAnchor.types.d.ts +2 -6
  104. package/build/types/primitives/PrimitiveAnchor/src/PrimitiveAnchor.types.d.ts.map +1 -1
  105. package/build/types/primitives/PrimitiveButton/src/PrimitiveButton.d.ts.map +1 -1
  106. package/build/types/statusIcon/StatusIcon.d.ts.map +1 -1
  107. package/build/types/statusIcon/StatusIcon.messages.d.ts +0 -5
  108. package/build/types/statusIcon/StatusIcon.messages.d.ts.map +1 -1
  109. package/build/types/test-utils/index.d.ts +0 -2
  110. package/build/types/test-utils/index.d.ts.map +1 -1
  111. package/build/types/test-utils/story-config.d.ts +1 -1
  112. package/build/types/test-utils/story-config.d.ts.map +1 -1
  113. package/build/upload/steps/completeStep/completeStep.js +2 -2
  114. package/build/upload/steps/completeStep/completeStep.js.map +1 -1
  115. package/build/upload/steps/completeStep/completeStep.mjs +1 -1
  116. package/build/upload/steps/processingStep/processingStep.js +2 -2
  117. package/build/upload/steps/processingStep/processingStep.js.map +1 -1
  118. package/build/upload/steps/processingStep/processingStep.mjs +1 -1
  119. package/build/uploadInput/UploadInput.js +3 -3
  120. package/build/uploadInput/UploadInput.js.map +1 -1
  121. package/build/uploadInput/UploadInput.mjs +1 -1
  122. package/package.json +3 -3
  123. package/src/alert/Alert.spec.tsx +30 -0
  124. package/src/alert/Alert.story.tsx +1 -34
  125. package/src/alert/Alert.tests.story.tsx +1 -1
  126. package/src/alert/Alert.tsx +15 -20
  127. package/src/avatarLayout/AvatarLayout.css +0 -11
  128. package/src/avatarLayout/AvatarLayout.less +1 -18
  129. package/src/avatarLayout/AvatarLayout.tsx +2 -10
  130. package/src/button/Button.css +15 -230
  131. package/src/button/Button.less +14 -242
  132. package/src/button/Button.spec.tsx +226 -215
  133. package/src/button/Button.story.tsx +134 -761
  134. package/src/button/Button.tsx +132 -103
  135. package/src/button/__snapshots__/Button.spec.tsx.snap +309 -0
  136. package/src/button/index.ts +3 -2
  137. package/src/circularButton/CircularButton.tsx +0 -1
  138. package/src/common/action/Action.tsx +22 -40
  139. package/src/common/propsValues/sentiment.ts +0 -1
  140. package/src/criticalBanner/CriticalCommsBanner.css +73 -21
  141. package/src/criticalBanner/CriticalCommsBanner.less +70 -24
  142. package/src/criticalBanner/CriticalCommsBanner.story.tsx +4 -26
  143. package/src/criticalBanner/CriticalCommsBanner.tsx +50 -8
  144. package/src/field/Field.story.tsx +1 -1
  145. package/src/flowNavigation/__snapshots__/FlowNavigation.spec.js.snap +2 -1
  146. package/src/i18n/en.json +0 -1
  147. package/src/i18n/ja.json +1 -0
  148. package/src/i18n/pt.json +1 -0
  149. package/src/i18n/ru.json +1 -0
  150. package/src/i18n/zh-HK.json +1 -0
  151. package/src/index.ts +1 -0
  152. package/src/inputs/SelectInput.story.tsx +1 -1
  153. package/src/label/Label.story.tsx +1 -1
  154. package/src/link/Link.tsx +6 -15
  155. package/src/main.css +70 -267
  156. package/src/main.less +0 -1
  157. package/src/primitives/PrimitiveAnchor/src/PrimitiveAnchor.tsx +8 -2
  158. package/src/primitives/PrimitiveAnchor/src/PrimitiveAnchor.types.ts +2 -7
  159. package/src/primitives/PrimitiveAnchor/test/PrimitiveAnchor.spec.tsx +3 -1
  160. package/src/primitives/PrimitiveButton/src/PrimitiveButton.tsx +12 -4
  161. package/src/primitives/PrimitiveButton/test/PrimitiveButton.spec.tsx +13 -16
  162. package/src/radio/Radio.spec.tsx +73 -0
  163. package/src/radio/Radio.story.tsx +22 -52
  164. package/src/radioGroup/RadioGroup.spec.tsx +91 -0
  165. package/src/radioGroup/RadioGroup.story.tsx +3 -5
  166. package/src/statusIcon/StatusIcon.less +0 -1
  167. package/src/statusIcon/StatusIcon.messages.ts +0 -6
  168. package/src/statusIcon/StatusIcon.tsx +1 -8
  169. package/src/test-utils/Parameters.d.ts +1 -9
  170. package/src/test-utils/story-config.ts +1 -10
  171. package/build/button/Button.resolver.js +0 -74
  172. package/build/button/Button.resolver.js.map +0 -1
  173. package/build/button/Button.resolver.mjs +0 -72
  174. package/build/button/Button.resolver.mjs.map +0 -1
  175. package/build/button/LegacyButton.js +0 -114
  176. package/build/button/LegacyButton.js.map +0 -1
  177. package/build/button/LegacyButton.mjs +0 -112
  178. package/build/button/LegacyButton.mjs.map +0 -1
  179. package/build/styles/button/Button.vars.css +0 -46
  180. package/build/styles/button/LegacyButton.css +0 -23
  181. package/build/types/button/Button.resolver.d.ts +0 -35
  182. package/build/types/button/Button.resolver.d.ts.map +0 -1
  183. package/build/types/button/Button.types.d.ts +0 -70
  184. package/build/types/button/Button.types.d.ts.map +0 -1
  185. package/build/types/button/LegacyButton.d.ts +0 -44
  186. package/build/types/button/LegacyButton.d.ts.map +0 -1
  187. package/src/button/Button.accessibility.docs.mdx +0 -103
  188. package/src/button/Button.resolver.tsx +0 -73
  189. package/src/button/Button.tests.story.tsx +0 -27
  190. package/src/button/Button.types.ts +0 -92
  191. package/src/button/Button.vars.css +0 -46
  192. package/src/button/Button.vars.less +0 -55
  193. package/src/button/LegacyButton.css +0 -23
  194. package/src/button/LegacyButton.less +0 -24
  195. package/src/button/LegacyButton.spec.tsx +0 -147
  196. package/src/button/LegacyButton.story.tsx +0 -228
  197. package/src/button/LegacyButton.tsx +0 -177
  198. package/src/radio/Radio.rtl.spec.tsx +0 -24
  199. package/src/radio/Radio.spec.js +0 -76
  200. package/src/radio/__snapshots__/Radio.rtl.spec.tsx.snap +0 -49
  201. package/src/radioGroup/RadioGroup.rtl.spec.tsx +0 -30
  202. package/src/radioGroup/RadioGroup.spec.js +0 -90
@@ -1,238 +1,23 @@
1
- .wds-Button {
2
- --Button-background: var(--color-interactive-accent);
3
- --Button-background-hover: var(--color-interactive-accent-hover);
4
- --Button-background-active: var(--color-interactive-accent-active);
5
- --Button-color: var(--color-interactive-control);
6
- --Button-border-radius: var(--radius-full);
7
- --Button-label-gap: var(--size-4);
8
- --Button-large-padding: var(--size-12) var(--size-16);
9
- --Button-medium-padding: var(--size-8) var(--size-12);
10
- --Button-small-padding: var(--size-5) var(--size-12);
11
- --Button-avatar-border-color: var(--color-border-neutral);
12
- --Button-transition-duration: 150ms;
13
- --Button-transition-easing: ease-in-out;
14
- --Button-secondary-background: var(--color-interactive-neutral);
15
- --Button-secondary-background-hover: var(--color-interactive-neutral-hover);
16
- --Button-secondary-background-active: var(--color-interactive-neutral-active);
17
- --Button-secondary-color: var(--color-interactive-primary);
18
- --Button-tertiary-background: var(--color-background-neutral);
19
- --Button-tertiary-background-hover: var(--color-background-neutral-hover);
20
- --Button-tertiary-background-active: var(--color-background-neutral-active);
21
- --Button-tertiary-color: var(--color-content-primary);
22
- --Button-minimal-background: transparent;
23
- --Button-minimal-background-hover: var(--color-background-screen-hover);
24
- --Button-minimal-background-active: var(--color-background-screen-active);
25
- --Button-minimal-color: var(--color-interactive-primary);
26
- --Button-primary-negative-background: var(--color-sentiment-negative-primary);
27
- --Button-primary-negative-background-hover: var(--color-sentiment-negative-primary-hover);
28
- --Button-primary-negative-background-active: var(--color-sentiment-negative-primary-active);
29
- --Button-primary-negative-color: var(--color-contrast-overlay);
30
- --Button-secondary-negative-background: var(--color-sentiment-negative-secondary);
31
- --Button-secondary-negative-background-hover: var(--color-sentiment-negative-secondary-hover);
32
- --Button-secondary-negative-background-active: var(--color-sentiment-negative-secondary-active);
33
- --Button-secondary-negative-color: var(--color-sentiment-negative-primary);
34
- }
35
- .np-theme-personal--bright-green .wds-Button {
36
- --Button-primary-negative-color: var(--color-white);
37
- --Button-secondary-color: var(--color-interactive-control);
38
- --Button-secondary-negative-color: var(--color-white);
39
- }
40
- .np-theme-personal--forest-green .wds-Button {
41
- --Button-secondary-background: var(--color-interactive-neutral);
42
- --Button-secondary-negative-background: var(--color-sentiment-negative-primary);
43
- --Button-secondary-negative-background-hover: var(--color-sentiment-negative-primary-hover);
44
- --Button-secondary-negative-background-active: var(--color-sentiment-negative-primary-active);
45
- --Button-secondary-negative-color: var(--color-contrast-overlay);
46
- }
47
- /* Button Styles */
48
- .wds-Button {
49
- display: inline-flex;
50
- flex: none;
51
- width: auto;
52
- align-items: center;
53
- justify-content: center;
54
- vertical-align: middle;
55
- text-align: center;
56
- white-space: nowrap;
57
- word-wrap: break-word;
58
- -webkit-appearance: none;
59
- -moz-appearance: none;
60
- appearance: none;
61
- background-color: var(--Button-background);
62
- border: none;
63
- border-radius: var(--Button-border-radius);
64
- color: var(--Button-color);
65
- cursor: pointer;
66
- transition: color, background-color var(--Button-transition-duration) var(--Button-transition-easing);
67
- }
68
- .wds-Button,
69
- .wds-Button:hover,
70
- .wds-Button:active,
71
- .wds-Button:focus {
72
- -webkit-text-decoration: none;
73
- text-decoration: none;
74
- }
75
- .wds-Button:hover {
76
- background-color: var(--Button-background-hover);
77
- }
78
- .wds-Button:active {
79
- background-color: var(--Button-background-active);
80
- }
81
- .wds-Button.wds-Button--disabled,
82
- .wds-Button:disabled {
83
- filter: none;
84
- mix-blend-mode: luminosity;
85
- opacity: 0.45;
86
- cursor: not-allowed;
87
- }
88
- .wds-Button.wds-Button--disabled,
89
- .wds-Button:disabled,
90
- .wds-Button.wds-Button--disabled:hover,
91
- .wds-Button:disabled:hover,
92
- .wds-Button.wds-Button--disabled:active,
93
- .wds-Button:disabled:active {
94
- background-color: var(--Button-background);
95
- }
96
- .wds-Button--secondary {
97
- --Button-background: var(--Button-secondary-background);
98
- --Button-background-hover: var(--Button-secondary-background-hover);
99
- --Button-background-active: var(--Button-secondary-background-active);
100
- --Button-color: var(--Button-secondary-color);
101
- }
102
- .wds-Button--tertiary {
103
- --Button-background: var(--Button-tertiary-background);
104
- --Button-background-hover: var(--Button-tertiary-background-hover);
105
- --Button-background-active: var(--Button-tertiary-background-active);
106
- --Button-color: var(--Button-tertiary-color);
107
- }
108
- .wds-Button--tertiary .wds-Button-icon--end {
109
- color: var(--color-interactive-primary);
110
- }
111
- .wds-Button--minimal {
112
- --Button-background: var(--Button-minimal-background);
113
- --Button-background-hover: var(--Button-minimal-background-hover);
114
- --Button-background-active: var(--Button-minimal-background-active);
115
- --Button-color: var(--Button-minimal-color);
116
- }
117
- .wds-Button--minimal,
118
- .wds-Button--minimal:hover,
119
- .wds-Button--minimal:active,
120
- .wds-Button--minimal:focus {
121
- -webkit-text-decoration: underline;
122
- text-decoration: underline;
123
- text-underline-offset: 3px;
124
- text-decoration-thickness: 1px;
125
- }
126
- .wds-Button--negative.wds-Button--primary {
127
- --Button-background: var(--Button-primary-negative-background);
128
- --Button-background-hover: var(--Button-primary-negative-background-hover);
129
- --Button-background-active: var(--Button-primary-negative-background-active);
130
- --Button-color: var(--Button-primary-negative-color);
131
- }
132
- .wds-Button--negative.wds-Button--secondary {
133
- --Button-background: var(--Button-secondary-negative-background);
134
- --Button-background-hover: var(--Button-secondary-negative-background-hover);
135
- --Button-background-active: var(--Button-secondary-negative-background-active);
136
- --Button-color: var(--Button-secondary-negative-color);
137
- }
138
- .wds-Button--large {
139
- padding: var(--Button-large-padding);
140
- }
141
- .wds-Button--medium {
142
- padding: var(--Button-medium-padding);
143
- }
144
- .wds-Button--medium:has(.wds-Button-avatars) {
145
- padding-inline-start: 8px;
146
- padding-inline-start: var(--size-8);
147
- }
148
- .wds-Button--medium:has(.wds-Button-icon--end) {
149
- padding-inline-end: 8px;
150
- padding-inline-end: var(--size-8);
151
- }
152
- .wds-Button--medium .wds-Button-icon--start {
153
- margin-inline-end: var(--Button-label-gap);
154
- }
155
- .wds-Button--small {
156
- padding: var(--Button-small-padding);
157
- }
158
- .wds-Button--small:has(.wds-Button-icon--start) {
159
- padding-inline-start: 8px;
160
- padding-inline-start: var(--size-8);
161
- }
162
- .wds-Button--small:has(.wds-Button-icon--end) {
163
- padding-inline-end: 8px;
164
- padding-inline-end: var(--size-8);
165
- }
166
- .wds-Button--block {
167
- width: 100%;
168
- }
169
- .wds-Button-avatars {
170
- display: inline-flex;
171
- }
172
- .wds-Button-avatars .np-avatar-view .np-avatar-view-content {
173
- color: var(--Button-color);
174
- }
175
- .wds-Button-icon {
176
- display: inline-block;
177
- }
178
- .wds-Button-icon--md {
179
- --Button-iconSize: calc(var(--size-10) + var(--size-8));
180
- }
181
- .wds-Button-icon--sm {
182
- --Button-iconSize: var(--size-16);
183
- }
184
- .wds-Button-icon svg {
185
- width: var(--Button-iconSize);
186
- height: var(--Button-iconSize);
187
- }
188
- .wds-Button-content {
1
+ .np-btn {
189
2
  position: relative;
190
3
  }
191
- .wds-Button-content--loading .wds-Button-label,
192
- .wds-Button-content--loading .wds-Button-media,
193
- .wds-Button-content--loading .wds-Button-icon {
194
- visibility: hidden;
195
- opacity: 0;
196
- }
197
- .wds-Button-label {
198
- display: flex;
199
- justify-content: center;
200
- align-items: center;
201
- gap: var(--Button-label-gap);
202
- position: relative;
203
- }
204
- .wds-Button-loader {
4
+ .np-btn.np-btn-block > span.btn-loader {
205
5
  position: absolute;
206
- width: 100%;
207
- height: 100%;
208
- }
209
- .wds-Button-loader .process-circle {
210
- stroke: var(--Button-color);
211
- }
212
- /* Avatar border transparency */
213
- /* dark buttons get 20% transparency, light buttons get 12% */
214
- .wds-Button-avatars .np-circle {
215
- --circle-border-color: color-mix(in srgb, var(--Button-color) 20%, transparent);
216
- }
217
- .np-theme-personal:not(.np-theme-personal--dark):not(.np-theme-personal--forest-green):not(.np-theme-personal--bright-green) .wds-Button--secondary.wds-Button--negative .wds-Button-avatars .np-circle,
218
- .np-theme-personal:not(.np-theme-personal--dark):not(.np-theme-personal--forest-green):not(.np-theme-personal--bright-green) .wds-Button--secondary .wds-Button-avatars .np-circle,
219
- .np-theme-personal:not(.np-theme-personal--dark):not(.np-theme-personal--forest-green):not(.np-theme-personal--bright-green) .wds-Button--tertiary .wds-Button-avatars .np-circle,
220
- .np-theme-personal:not(.np-theme-personal--dark):not(.np-theme-personal--forest-green):not(.np-theme-personal--bright-green) .wds-Button--minimal .wds-Button-avatars .np-circle {
221
- --circle-border-color: color-mix(in srgb, var(--Button-color) 12%, transparent);
6
+ left: 24px;
7
+ left: var(--size-24);
222
8
  }
223
- .np-theme-personal--dark .wds-Button--primary .wds-Button-avatars .np-circle,
224
- .np-theme-personal--dark .wds-Button--primary.wds-Button--negative .wds-Button-avatars .np-circle,
225
- .np-theme-personal--forest-green .wds-Button--primary .wds-Button-avatars .np-circle,
226
- .np-theme-personal--forest-green .wds-Button--primary.wds-Button--negative .wds-Button-avatars .np-circle {
227
- --circle-border-color: color-mix(in srgb, var(--Button-color) 12%, transparent);
9
+ [dir="rtl"] .np-btn.np-btn-block > span.btn-loader {
10
+ right: 24px;
11
+ right: var(--size-24);
12
+ left: auto;
13
+ left: initial;
228
14
  }
229
- .np-theme-personal--bright-green .wds-Button--tertiary .wds-Button-avatars .np-circle,
230
- .np-theme-personal--bright-green .wds-Button--minimal .wds-Button-avatars .np-circle {
231
- --circle-border-color: color-mix(in srgb, var(--Button-color) 12%, transparent);
15
+ .np-btn.np-btn-xs > span.btn-loader {
16
+ background-size: 16px 16px;
232
17
  }
233
- .critical-comms .wds-Button {
234
- --Button-background: var(--color-contrast-overlay);
18
+ .np-btn.np-btn-xs.btn-block > span.btn-loader {
19
+ top: 0;
235
20
  }
236
- [dir="rtl"] .wds-Button .tw-icon-chevron-right,[dir="rtl"] .wds-Button .tw-icon-arrow-right,[dir="rtl"] .wds-Button .tw-icon-chevron-left,[dir="rtl"] .wds-Button .tw-icon-arrow-left,[dir="rtl"] .wds-Button .tw-icon-arrow-diagonal-down,[dir="rtl"] .wds-Button .tw-icon-arrow-diagonal-up,[dir="rtl"] .wds-Button .tw-icon-list,[dir="rtl"] .wds-Button .tw-icon-activity {
237
- scale: -1 1;
21
+ .np-btn.disabled[class] {
22
+ pointer-events: auto;
238
23
  }
@@ -1,252 +1,24 @@
1
- @import './Button.vars.less';
1
+ @import (reference) "../../node_modules/@transferwise/neptune-css/src/less/mixins/_logical-properties.less";
2
2
 
3
- /* Button Styles */
4
- .wds-Button {
5
- display: inline-flex;
6
- flex: none;
7
- width: auto;
8
- align-items: center;
9
- justify-content: center;
10
- vertical-align: middle;
11
- text-align: center;
12
- white-space: nowrap;
13
- word-wrap: break-word;
14
- appearance: none;
15
- background-color: var(--Button-background);
16
- border: none;
17
- border-radius: var(--Button-border-radius);
18
- color: var(--Button-color);
19
- cursor: pointer;
20
- transition: color, background-color var(--Button-transition-duration) var(--Button-transition-easing);
3
+ .np-btn {
4
+ position: relative;
21
5
 
22
- &,
23
- &:hover,
24
- &:active,
25
- &:focus {
26
- text-decoration: none;
27
- }
28
-
29
- &:hover {
30
- background-color: var(--Button-background-hover);
31
- }
32
-
33
- &:active {
34
- background-color: var(--Button-background-active);
35
- }
36
-
37
- &.wds-Button--disabled,
38
- &:disabled {
39
- // The declarations below are necessary as design specs for
40
- // the button's disabled state have changed. This is to be
41
- // further investigated at a later stage.
42
- // @see https://transferwise.atlassian.net/browse/DS-7386
43
- filter: none;
44
- mix-blend-mode: luminosity;
45
- opacity: 0.45;
46
- cursor: not-allowed;
47
-
48
- &,
49
- &:hover,
50
- &:active {
51
- background-color: var(--Button-background);
52
- }
53
- }
54
-
55
- // Priority modifiers
56
- &--secondary {
57
- --Button-background: var(--Button-secondary-background);
58
- --Button-background-hover: var(--Button-secondary-background-hover);
59
- --Button-background-active: var(--Button-secondary-background-active);
60
- --Button-color: var(--Button-secondary-color);
61
- }
62
-
63
- &--tertiary {
64
- --Button-background: var(--Button-tertiary-background);
65
- --Button-background-hover: var(--Button-tertiary-background-hover);
66
- --Button-background-active: var(--Button-tertiary-background-active);
67
- --Button-color: var(--Button-tertiary-color);
68
-
69
- .wds-Button-icon--end {
70
- color: var(--color-interactive-primary);
71
- }
72
- }
73
-
74
- &--minimal {
75
- --Button-background: var(--Button-minimal-background);
76
- --Button-background-hover: var(--Button-minimal-background-hover);
77
- --Button-background-active: var(--Button-minimal-background-active);
78
- --Button-color: var(--Button-minimal-color);
79
-
80
- &,
81
- &:hover,
82
- &:active,
83
- &:focus {
84
- text-decoration: underline;
85
- text-underline-offset: 3px;
86
- text-decoration-thickness: 1px;
87
- }
88
- }
89
-
90
- // Negative styles
91
- &--negative {
92
- &.wds-Button--primary {
93
- --Button-background: var(--Button-primary-negative-background);
94
- --Button-background-hover: var(--Button-primary-negative-background-hover);
95
- --Button-background-active: var(--Button-primary-negative-background-active);
96
- --Button-color: var(--Button-primary-negative-color);
97
- }
98
-
99
- &.wds-Button--secondary {
100
- --Button-background: var(--Button-secondary-negative-background);
101
- --Button-background-hover: var(--Button-secondary-negative-background-hover);
102
- --Button-background-active: var(--Button-secondary-negative-background-active);
103
- --Button-color: var(--Button-secondary-negative-color);
104
- }
105
- }
106
-
107
- // Size modifiers
108
- &--large {
109
- padding: var(--Button-large-padding);
110
- }
111
-
112
- &--medium {
113
- padding: var(--Button-medium-padding);
114
-
115
- &:has(.wds-Button-avatars){
116
- padding-inline-start: var(--size-8);
117
- }
118
-
119
- &:has(.wds-Button-icon--end){
120
- padding-inline-end: var(--size-8);
121
- }
122
-
123
- .wds-Button-icon--start{
124
- margin-inline-end: var(--Button-label-gap);
125
- }
126
- }
127
-
128
- &--small {
129
- padding: var(--Button-small-padding);
130
-
131
- &:has(.wds-Button-icon--start){
132
- padding-inline-start: var(--size-8);
133
- }
134
-
135
- &:has(.wds-Button-icon--end){
136
- padding-inline-end: var(--size-8);
137
- }
138
- }
139
-
140
- // Width modifiers
141
- &--block {
142
- width: 100%;
143
- }
144
-
145
- &-avatars {
146
- display: inline-flex;
147
-
148
- .np-avatar-view .np-avatar-view-content {
149
- color: var(--Button-color);
150
- }
151
- }
152
-
153
- // Icon styles
154
- &-icon {
155
- display: inline-block;
156
-
157
- &--md{
158
- --Button-iconSize: calc(var(--size-10) + var(--size-8));
159
- }
160
-
161
- &--sm{
162
- --Button-iconSize: var(--size-16);
163
- }
164
-
165
- svg {
166
- width: var(--Button-iconSize);
167
- height: var(--Button-iconSize);
168
- }
169
- }
170
-
171
- &-content {
172
- position: relative;
173
-
174
- &--loading {
175
- .wds-Button-label,
176
- .wds-Button-media,
177
- .wds-Button-icon {
178
- visibility: hidden;
179
- opacity: 0;
180
- }
181
- }
182
- }
183
-
184
- &-label {
185
- display: flex;
186
- justify-content: center;
187
- align-items: center;
188
- gap: var(--Button-label-gap);
189
- position: relative;
190
- }
191
-
192
- &-loader {
6
+ &.np-btn-block > span.btn-loader {
193
7
  position: absolute;
194
- width: 100%;
195
- height: 100%;
196
-
197
- .process-circle {
198
- stroke: var(--Button-color);
199
- }
8
+ .left(var(--size-24));
200
9
  }
201
- }
202
-
203
- /* Avatar border transparency */
204
- /* dark buttons get 20% transparency, light buttons get 12% */
205
- .wds-Button-avatars {
206
- .np-circle {
207
- --circle-border-color: color-mix(in srgb, var(--Button-color) 20%, transparent);
208
10
 
209
- .wds-Button--secondary.wds-Button--negative &,
210
- .wds-Button--secondary &,
211
- .wds-Button--tertiary &,
212
- .wds-Button--minimal & {
213
- .np-theme-personal:not(.np-theme-personal--dark, .np-theme-personal--forest-green, .np-theme-personal--bright-green) & {
214
- --circle-border-color: color-mix(in srgb, var(--Button-color) 12%, transparent);
215
- }
216
- }
217
- .wds-Button--primary &,
218
- .wds-Button--primary.wds-Button--negative & {
219
- .np-theme-personal--dark &,
220
- .np-theme-personal--forest-green & {
221
- --circle-border-color: color-mix(in srgb, var(--Button-color) 12%, transparent);
222
- }
223
- }
224
- .wds-Button--tertiary &,
225
- .wds-Button--minimal & {
226
- .np-theme-personal--bright-green & {
227
- --circle-border-color: color-mix(in srgb, var(--Button-color) 12%, transparent);
228
- }
229
- }
11
+ &.np-btn-xs > span.btn-loader {
12
+ background-size: 16px 16px;
230
13
  }
231
- }
232
14
 
233
- .critical-comms {
234
- .wds-Button {
235
- --Button-background: var(--color-contrast-overlay);
15
+ &.np-btn-xs.btn-block > span.btn-loader {
16
+ top: 0;
236
17
  }
237
- }
238
18
 
239
- :dir(rtl) {
240
- .wds-Button {
241
- .tw-icon-chevron-right,
242
- .tw-icon-arrow-right,
243
- .tw-icon-chevron-left,
244
- .tw-icon-arrow-left,
245
- .tw-icon-arrow-diagonal-down,
246
- .tw-icon-arrow-diagonal-up,
247
- .tw-icon-list,
248
- .tw-icon-activity {
249
- scale: -1 1;
250
- }
19
+ // we do not want pointer events disabled as that
20
+ // prevents the custom cursor to be shown
21
+ &.disabled[class] {
22
+ pointer-events: auto;
251
23
  }
252
- }
24
+ }