@transferwise/components 0.0.0-experimental-22586c3 → 0.0.0-experimental-bd6f8cc

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 (159) hide show
  1. package/build/avatarLayout/AvatarLayout.js +4 -10
  2. package/build/avatarLayout/AvatarLayout.js.map +1 -1
  3. package/build/avatarLayout/AvatarLayout.mjs +4 -10
  4. package/build/avatarLayout/AvatarLayout.mjs.map +1 -1
  5. package/build/button/Button.js +79 -86
  6. package/build/button/Button.js.map +1 -1
  7. package/build/button/Button.mjs +80 -87
  8. package/build/button/Button.mjs.map +1 -1
  9. package/build/criticalBanner/CriticalCommsBanner.js +2 -2
  10. package/build/criticalBanner/CriticalCommsBanner.js.map +1 -1
  11. package/build/criticalBanner/CriticalCommsBanner.mjs +1 -1
  12. package/build/header/Header.js +2 -2
  13. package/build/header/Header.js.map +1 -1
  14. package/build/header/Header.mjs +1 -1
  15. package/build/index.js +4 -2
  16. package/build/index.js.map +1 -1
  17. package/build/index.mjs +2 -1
  18. package/build/index.mjs.map +1 -1
  19. package/build/link/Link.js +3 -8
  20. package/build/link/Link.js.map +1 -1
  21. package/build/link/Link.mjs +3 -8
  22. package/build/link/Link.mjs.map +1 -1
  23. package/build/main.css +13 -227
  24. package/build/nudge/Nudge.js.map +1 -1
  25. package/build/nudge/Nudge.mjs.map +1 -1
  26. package/build/primitives/PrimitiveAnchor/src/PrimitiveAnchor.js +4 -2
  27. package/build/primitives/PrimitiveAnchor/src/PrimitiveAnchor.js.map +1 -1
  28. package/build/primitives/PrimitiveAnchor/src/PrimitiveAnchor.mjs +4 -2
  29. package/build/primitives/PrimitiveAnchor/src/PrimitiveAnchor.mjs.map +1 -1
  30. package/build/primitives/PrimitiveButton/src/PrimitiveButton.js +5 -3
  31. package/build/primitives/PrimitiveButton/src/PrimitiveButton.js.map +1 -1
  32. package/build/primitives/PrimitiveButton/src/PrimitiveButton.mjs +5 -3
  33. package/build/primitives/PrimitiveButton/src/PrimitiveButton.mjs.map +1 -1
  34. package/build/select/Select.js +2 -2
  35. package/build/select/Select.js.map +1 -1
  36. package/build/select/Select.mjs +1 -1
  37. package/build/styles/avatarLayout/AvatarLayout.css +2 -12
  38. package/build/styles/button/Button.css +15 -207
  39. package/build/styles/main.css +13 -227
  40. package/build/styles/nudge/Nudge.css +11 -0
  41. package/build/table/Table.js +166 -0
  42. package/build/table/Table.js.map +1 -0
  43. package/build/table/Table.messages.js +24 -0
  44. package/build/table/Table.messages.js.map +1 -0
  45. package/build/table/Table.messages.mjs +22 -0
  46. package/build/table/Table.messages.mjs.map +1 -0
  47. package/build/table/Table.mjs +164 -0
  48. package/build/table/Table.mjs.map +1 -0
  49. package/build/table/TableCell.js +86 -0
  50. package/build/table/TableCell.js.map +1 -0
  51. package/build/table/TableCell.mjs +84 -0
  52. package/build/table/TableCell.mjs.map +1 -0
  53. package/build/table/TableHeader.js +57 -0
  54. package/build/table/TableHeader.js.map +1 -0
  55. package/build/table/TableHeader.mjs +55 -0
  56. package/build/table/TableHeader.mjs.map +1 -0
  57. package/build/table/TableRow.js +85 -0
  58. package/build/table/TableRow.js.map +1 -0
  59. package/build/table/TableRow.mjs +83 -0
  60. package/build/table/TableRow.mjs.map +1 -0
  61. package/build/table/TableStatusText.js +54 -0
  62. package/build/table/TableStatusText.js.map +1 -0
  63. package/build/table/TableStatusText.mjs +52 -0
  64. package/build/table/TableStatusText.mjs.map +1 -0
  65. package/build/types/avatarLayout/AvatarLayout.d.ts.map +1 -1
  66. package/build/types/button/Button.d.ts +23 -2
  67. package/build/types/button/Button.d.ts.map +1 -1
  68. package/build/types/button/index.d.ts +2 -2
  69. package/build/types/button/index.d.ts.map +1 -1
  70. package/build/types/index.d.ts +2 -0
  71. package/build/types/index.d.ts.map +1 -1
  72. package/build/types/link/Link.d.ts +2 -2
  73. package/build/types/link/Link.d.ts.map +1 -1
  74. package/build/types/nudge/Nudge.d.ts +1 -1
  75. package/build/types/nudge/Nudge.d.ts.map +1 -1
  76. package/build/types/primitives/PrimitiveAnchor/src/PrimitiveAnchor.d.ts.map +1 -1
  77. package/build/types/primitives/PrimitiveAnchor/src/PrimitiveAnchor.types.d.ts +2 -6
  78. package/build/types/primitives/PrimitiveAnchor/src/PrimitiveAnchor.types.d.ts.map +1 -1
  79. package/build/types/primitives/PrimitiveButton/src/PrimitiveButton.d.ts.map +1 -1
  80. package/build/types/test-utils/story-config.d.ts +1 -1
  81. package/build/types/test-utils/story-config.d.ts.map +1 -1
  82. package/build/types/uploadInput/uploadButton/getAllowedFileTypes.d.ts.map +1 -1
  83. package/build/upload/steps/completeStep/completeStep.js +2 -2
  84. package/build/upload/steps/completeStep/completeStep.js.map +1 -1
  85. package/build/upload/steps/completeStep/completeStep.mjs +1 -1
  86. package/build/upload/steps/processingStep/processingStep.js +2 -2
  87. package/build/upload/steps/processingStep/processingStep.js.map +1 -1
  88. package/build/upload/steps/processingStep/processingStep.mjs +1 -1
  89. package/build/uploadInput/UploadInput.js +3 -3
  90. package/build/uploadInput/UploadInput.js.map +1 -1
  91. package/build/uploadInput/UploadInput.mjs +1 -1
  92. package/build/uploadInput/uploadButton/getAllowedFileTypes.js +23 -3
  93. package/build/uploadInput/uploadButton/getAllowedFileTypes.js.map +1 -1
  94. package/build/uploadInput/uploadButton/getAllowedFileTypes.mjs +23 -3
  95. package/build/uploadInput/uploadButton/getAllowedFileTypes.mjs.map +1 -1
  96. package/package.json +3 -3
  97. package/src/alert/Alert.tests.story.tsx +1 -1
  98. package/src/avatarLayout/AvatarLayout.css +2 -12
  99. package/src/avatarLayout/AvatarLayout.less +2 -19
  100. package/src/avatarLayout/AvatarLayout.tsx +3 -10
  101. package/src/button/Button.css +15 -207
  102. package/src/button/Button.less +14 -214
  103. package/src/button/Button.spec.tsx +224 -188
  104. package/src/button/Button.story.tsx +135 -701
  105. package/src/button/Button.tsx +131 -99
  106. package/src/button/__snapshots__/Button.spec.tsx.snap +309 -0
  107. package/src/button/index.ts +3 -2
  108. package/src/drawer/Drawer.spec.tsx +93 -0
  109. package/src/field/Field.story.tsx +1 -1
  110. package/src/flowNavigation/__snapshots__/FlowNavigation.spec.js.snap +2 -1
  111. package/src/index.ts +12 -0
  112. package/src/inputs/SelectInput.story.tsx +1 -1
  113. package/src/label/Label.story.tsx +1 -1
  114. package/src/link/Link.tsx +6 -15
  115. package/src/main.css +13 -227
  116. package/src/main.less +0 -1
  117. package/src/nudge/Nudge.css +11 -0
  118. package/src/nudge/Nudge.less +3 -0
  119. package/src/nudge/Nudge.story.tsx +10 -0
  120. package/src/nudge/Nudge.tsx +2 -1
  121. package/src/primitives/PrimitiveAnchor/src/PrimitiveAnchor.tsx +8 -2
  122. package/src/primitives/PrimitiveAnchor/src/PrimitiveAnchor.types.ts +2 -7
  123. package/src/primitives/PrimitiveAnchor/test/PrimitiveAnchor.spec.tsx +3 -1
  124. package/src/primitives/PrimitiveButton/src/PrimitiveButton.tsx +12 -4
  125. package/src/primitives/PrimitiveButton/test/PrimitiveButton.spec.tsx +13 -16
  126. package/src/test-utils/Parameters.d.ts +1 -9
  127. package/src/test-utils/story-config.ts +1 -10
  128. package/src/uploadInput/UploadInput.tests.story.tsx +5 -5
  129. package/src/uploadInput/uploadButton/getAllowedFileTypes.spec.ts +12 -0
  130. package/src/uploadInput/uploadButton/getAllowedFileTypes.ts +33 -7
  131. package/build/button/Button.resolver.js +0 -74
  132. package/build/button/Button.resolver.js.map +0 -1
  133. package/build/button/Button.resolver.mjs +0 -72
  134. package/build/button/Button.resolver.mjs.map +0 -1
  135. package/build/button/LegacyButton.js +0 -114
  136. package/build/button/LegacyButton.js.map +0 -1
  137. package/build/button/LegacyButton.mjs +0 -112
  138. package/build/button/LegacyButton.mjs.map +0 -1
  139. package/build/styles/button/Button.vars.css +0 -46
  140. package/build/styles/button/LegacyButton.css +0 -23
  141. package/build/types/button/Button.resolver.d.ts +0 -33
  142. package/build/types/button/Button.resolver.d.ts.map +0 -1
  143. package/build/types/button/Button.types.d.ts +0 -67
  144. package/build/types/button/Button.types.d.ts.map +0 -1
  145. package/build/types/button/LegacyButton.d.ts +0 -30
  146. package/build/types/button/LegacyButton.d.ts.map +0 -1
  147. package/src/button/Button.resolver.tsx +0 -73
  148. package/src/button/Button.tests.story.tsx +0 -27
  149. package/src/button/Button.types.ts +0 -94
  150. package/src/button/Button.vars.css +0 -46
  151. package/src/button/Button.vars.less +0 -60
  152. package/src/button/LegacyButton.css +0 -23
  153. package/src/button/LegacyButton.less +0 -24
  154. package/src/button/LegacyButton.spec.tsx +0 -147
  155. package/src/button/LegacyButton.story.tsx +0 -220
  156. package/src/button/LegacyButton.tsx +0 -160
  157. package/src/drawer/Drawer.rtl.spec.tsx +0 -59
  158. package/src/drawer/Drawer.spec.js +0 -101
  159. package/src/drawer/__snapshots__/Drawer.rtl.spec.tsx.snap +0 -55
@@ -1,215 +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: calc(var(--size-10) * 0.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
- -webkit-text-decoration: none;
57
- text-decoration: none;
58
- white-space: nowrap;
59
- word-wrap: break-word;
60
- -webkit-appearance: none;
61
- -moz-appearance: none;
62
- appearance: none;
63
- background-color: var(--Button-background);
64
- border: none;
65
- border-radius: var(--Button-border-radius);
66
- color: var(--Button-color);
67
- cursor: pointer;
68
- transition: color, background-color var(--Button-transition-duration) var(--Button-transition-easing);
69
- }
70
- .wds-Button:hover {
71
- background-color: var(--Button-background-hover);
72
- }
73
- .wds-Button:active {
74
- background-color: var(--Button-background-active);
75
- }
76
- .wds-Button.wds-Button--disabled,
77
- .wds-Button:disabled {
78
- filter: none;
79
- mix-blend-mode: luminosity;
80
- opacity: 0.45;
81
- cursor: not-allowed;
82
- }
83
- .wds-Button.wds-Button--disabled,
84
- .wds-Button:disabled,
85
- .wds-Button.wds-Button--disabled:hover,
86
- .wds-Button:disabled:hover,
87
- .wds-Button.wds-Button--disabled:active,
88
- .wds-Button:disabled:active {
89
- background-color: var(--Button-background);
90
- }
91
- .wds-Button--secondary {
92
- --Button-background: var(--Button-secondary-background);
93
- --Button-background-hover: var(--Button-secondary-background-hover);
94
- --Button-background-active: var(--Button-secondary-background-active);
95
- --Button-color: var(--Button-secondary-color);
96
- }
97
- .wds-Button--tertiary {
98
- --Button-background: var(--Button-tertiary-background);
99
- --Button-background-hover: var(--Button-tertiary-background-hover);
100
- --Button-background-active: var(--Button-tertiary-background-active);
101
- --Button-color: var(--Button-tertiary-color);
102
- }
103
- .wds-Button--tertiary .wds-Button-icon--end {
104
- color: var(--color-interactive-primary);
105
- }
106
- .wds-Button--minimal {
107
- --Button-background: var(--Button-minimal-background);
108
- --Button-background-hover: var(--Button-minimal-background-hover);
109
- --Button-background-active: var(--Button-minimal-background-active);
110
- --Button-color: var(--Button-minimal-color);
111
- -webkit-text-decoration: underline;
112
- text-decoration: underline;
113
- text-underline-offset: 3px;
114
- text-decoration-thickness: 1px;
115
- }
116
- .wds-Button--negative.wds-Button--primary {
117
- --Button-background: var(--Button-primary-negative-background);
118
- --Button-background-hover: var(--Button-primary-negative-background-hover);
119
- --Button-background-active: var(--Button-primary-negative-background-active);
120
- --Button-color: var(--Button-primary-negative-color);
121
- }
122
- .wds-Button--negative.wds-Button--secondary {
123
- --Button-background: var(--Button-secondary-negative-background);
124
- --Button-background-hover: var(--Button-secondary-negative-background-hover);
125
- --Button-background-active: var(--Button-secondary-negative-background-active);
126
- --Button-color: var(--Button-secondary-negative-color);
127
- }
128
- .wds-Button--large {
129
- padding: var(--Button-large-padding);
130
- }
131
- .wds-Button--medium {
132
- padding: var(--Button-medium-padding);
133
- }
134
- .wds-Button--medium:has(.wds-Button-avatars) {
135
- padding-inline-start: 8px;
136
- padding-inline-start: var(--size-8);
137
- }
138
- .wds-Button--medium:has(.wds-Button-icon--end) {
139
- padding-inline-end: 8px;
140
- padding-inline-end: var(--size-8);
141
- }
142
- .wds-Button--medium .wds-Button-icon--start {
143
- margin-inline-end: var(--Button-label-gap);
144
- }
145
- .wds-Button--small {
146
- padding: var(--Button-small-padding);
147
- }
148
- .wds-Button--small:has(.wds-Button-icon--start) {
149
- padding-inline-start: 8px;
150
- padding-inline-start: var(--size-8);
151
- }
152
- .wds-Button--small:has(.wds-Button-icon--end) {
153
- padding-inline-end: 8px;
154
- padding-inline-end: var(--size-8);
155
- }
156
- .wds-Button--block {
157
- width: 100%;
158
- }
159
- .wds-Button-avatars {
160
- display: inline-flex;
161
- }
162
- .wds-Button-avatars .np-avatar-view .np-avatar-view-content {
163
- color: var(--Button-color);
164
- }
165
- .wds-Button-icon {
166
- display: inline-block;
167
- }
168
- .wds-Button-content {
1
+ .np-btn {
169
2
  position: relative;
170
3
  }
171
- .wds-Button-content--loading .wds-Button-label,
172
- .wds-Button-content--loading .wds-Button-media,
173
- .wds-Button-content--loading .wds-Button-icon {
174
- visibility: hidden;
175
- opacity: 0;
176
- }
177
- .wds-Button-label {
178
- display: flex;
179
- justify-content: center;
180
- align-items: center;
181
- gap: var(--Button-label-gap);
182
- position: relative;
183
- }
184
- .wds-Button-loader {
4
+ .np-btn.np-btn-block > span.btn-loader {
185
5
  position: absolute;
186
- width: 100%;
187
- height: 100%;
188
- }
189
- .wds-Button-loader .process-circle {
190
- stroke: var(--Button-color);
191
- }
192
- /* Avatar border transparency */
193
- /* dark buttons get 20% transparency, light buttons get 12% */
194
- .wds-Button-avatars .np-circle {
195
- --circle-border-color: color-mix(in srgb, var(--Button-color) 20%, transparent);
6
+ left: 24px;
7
+ left: var(--size-24);
196
8
  }
197
- .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,
198
- .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,
199
- .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,
200
- .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 {
201
- --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;
202
14
  }
203
- .np-theme-personal--dark .wds-Button--primary .wds-Button-avatars .np-circle,
204
- .np-theme-personal--dark .wds-Button--primary.wds-Button--negative .wds-Button-avatars .np-circle,
205
- .np-theme-personal--forest-green .wds-Button--primary .wds-Button-avatars .np-circle,
206
- .np-theme-personal--forest-green .wds-Button--primary.wds-Button--negative .wds-Button-avatars .np-circle {
207
- --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;
208
17
  }
209
- .np-theme-personal--bright-green .wds-Button--tertiary .wds-Button-avatars .np-circle,
210
- .np-theme-personal--bright-green .wds-Button--minimal .wds-Button-avatars .np-circle {
211
- --circle-border-color: color-mix(in srgb, var(--Button-color) 12%, transparent);
18
+ .np-btn.np-btn-xs.btn-block > span.btn-loader {
19
+ top: 0;
212
20
  }
213
- [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 {
214
- scale: -1 1;
21
+ .np-btn.disabled[class] {
22
+ pointer-events: auto;
215
23
  }
@@ -518,20 +518,13 @@ div.critical-comms .critical-comms-body {
518
518
  -webkit-mask-image: radial-gradient(circle at bottom calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)) right calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)), transparent 0, transparent calc(var(--np-avatar-size) / 2 + 2px), black 0);
519
519
  mask-image: radial-gradient(circle at bottom calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)) right calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)), transparent 0, transparent calc(var(--np-avatar-size) / 2 + 2px), black 0);
520
520
  }
521
- [dir="rtl"] .np-avatar-layout-diagonal-mask {
522
- -webkit-mask-image: radial-gradient(circle at bottom calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)) left calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)), transparent 0, transparent calc(var(--np-avatar-size) / 2 + 2px), black 0);
523
- mask-image: radial-gradient(circle at bottom calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)) left calc(100% - var(--np-avatar-size) - var(--np-avatar-offset)), transparent 0, transparent calc(var(--np-avatar-size) / 2 + 2px), black 0);
524
- }
525
521
  .np-avatar-layout-diagonal-child {
526
522
  margin-left: calc(var(--np-avatar-layout-size) - var(--np-avatar-size) * 2);
527
523
  margin-top: calc(var(--np-avatar-layout-size) - var(--np-avatar-size));
528
524
  }
529
- [dir="rtl"] .np-avatar-layout-diagonal-child {
530
- margin-left: 0;
531
- margin-right: calc(var(--np-avatar-layout-size) - var(--np-avatar-size) * 2);
532
- }
533
525
  .np-avatar-layout-horizontal {
534
- width: calc(var(--np-avatar-size) * 2 - var(--np-avatar-offset));
526
+ width: calc(var(--np-avatar-size) * var(--np-avatar-avatars-count) - (var(--np-avatar-offset) * (var(--np-avatar-avatars-count) - 1)));
527
+ width: calc(var(--np-avatar-size) * var(--np-avatar-avatars-count) - calc(var(--np-avatar-offset) * calc(var(--np-avatar-avatars-count) - 1)));
535
528
  height: var(--np-avatar-layout-size);
536
529
  }
537
530
  .np-avatar-layout-horizontal-mask {
@@ -543,9 +536,6 @@ div.critical-comms .critical-comms-body {
543
536
  .np-avatar-layout-horizontal-child {
544
537
  margin-left: calc(var(--np-avatar-offset) * -1);
545
538
  }
546
- [dir="rtl"] .np-avatar-layout-horizontal-child {
547
- margin-right: calc(var(--np-avatar-offset) * -1);
548
- }
549
539
  .np-icon-button {
550
540
  border: none;
551
541
  }
@@ -716,221 +706,6 @@ div.critical-comms .critical-comms-body {
716
706
  .np-btn.disabled[class] {
717
707
  pointer-events: auto;
718
708
  }
719
- .wds-Button {
720
- --Button-background: var(--color-interactive-accent);
721
- --Button-background-hover: var(--color-interactive-accent-hover);
722
- --Button-background-active: var(--color-interactive-accent-active);
723
- --Button-color: var(--color-interactive-control);
724
- --Button-border-radius: var(--radius-full);
725
- --Button-label-gap: var(--size-4);
726
- --Button-large-padding: var(--size-12) var(--size-16);
727
- --Button-medium-padding: var(--size-8) var(--size-12);
728
- --Button-small-padding: calc(var(--size-10) * 0.5) var(--size-12);
729
- --Button-avatar-border-color: var(--color-border-neutral);
730
- --Button-transition-duration: 150ms;
731
- --Button-transition-easing: ease-in-out;
732
- --Button-secondary-background: var(--color-interactive-neutral);
733
- --Button-secondary-background-hover: var(--color-interactive-neutral-hover);
734
- --Button-secondary-background-active: var(--color-interactive-neutral-active);
735
- --Button-secondary-color: var(--color-interactive-primary);
736
- --Button-tertiary-background: var(--color-background-neutral);
737
- --Button-tertiary-background-hover: var(--color-background-neutral-hover);
738
- --Button-tertiary-background-active: var(--color-background-neutral-active);
739
- --Button-tertiary-color: var(--color-content-primary);
740
- --Button-minimal-background: transparent;
741
- --Button-minimal-background-hover: var(--color-background-screen-hover);
742
- --Button-minimal-background-active: var(--color-background-screen-active);
743
- --Button-minimal-color: var(--color-interactive-primary);
744
- --Button-primary-negative-background: var(--color-sentiment-negative-primary);
745
- --Button-primary-negative-background-hover: var(--color-sentiment-negative-primary-hover);
746
- --Button-primary-negative-background-active: var(--color-sentiment-negative-primary-active);
747
- --Button-primary-negative-color: var(--color-contrast-overlay);
748
- --Button-secondary-negative-background: var(--color-sentiment-negative-secondary);
749
- --Button-secondary-negative-background-hover: var(--color-sentiment-negative-secondary-hover);
750
- --Button-secondary-negative-background-active: var(--color-sentiment-negative-secondary-active);
751
- --Button-secondary-negative-color: var(--color-sentiment-negative-primary);
752
- }
753
- .np-theme-personal--bright-green .wds-Button {
754
- --Button-primary-negative-color: var(--color-white);
755
- --Button-secondary-color: var(--color-interactive-control);
756
- --Button-secondary-negative-color: var(--color-white);
757
- }
758
- .np-theme-personal--forest-green .wds-Button {
759
- --Button-secondary-background: var(--color-interactive-neutral);
760
- --Button-secondary-negative-background: var(--color-sentiment-negative-primary);
761
- --Button-secondary-negative-background-hover: var(--color-sentiment-negative-primary-hover);
762
- --Button-secondary-negative-background-active: var(--color-sentiment-negative-primary-active);
763
- --Button-secondary-negative-color: var(--color-contrast-overlay);
764
- }
765
- /* Button Styles */
766
- .wds-Button {
767
- display: inline-flex;
768
- flex: none;
769
- width: auto;
770
- align-items: center;
771
- justify-content: center;
772
- vertical-align: middle;
773
- text-align: center;
774
- -webkit-text-decoration: none;
775
- text-decoration: none;
776
- white-space: nowrap;
777
- word-wrap: break-word;
778
- -webkit-appearance: none;
779
- -moz-appearance: none;
780
- appearance: none;
781
- background-color: var(--Button-background);
782
- border: none;
783
- border-radius: var(--Button-border-radius);
784
- color: var(--Button-color);
785
- cursor: pointer;
786
- transition: color, background-color var(--Button-transition-duration) var(--Button-transition-easing);
787
- }
788
- .wds-Button:hover {
789
- background-color: var(--Button-background-hover);
790
- }
791
- .wds-Button:active {
792
- background-color: var(--Button-background-active);
793
- }
794
- .wds-Button.wds-Button--disabled,
795
- .wds-Button:disabled {
796
- filter: none;
797
- mix-blend-mode: luminosity;
798
- opacity: 0.45;
799
- cursor: not-allowed;
800
- }
801
- .wds-Button.wds-Button--disabled,
802
- .wds-Button:disabled,
803
- .wds-Button.wds-Button--disabled:hover,
804
- .wds-Button:disabled:hover,
805
- .wds-Button.wds-Button--disabled:active,
806
- .wds-Button:disabled:active {
807
- background-color: var(--Button-background);
808
- }
809
- .wds-Button--secondary {
810
- --Button-background: var(--Button-secondary-background);
811
- --Button-background-hover: var(--Button-secondary-background-hover);
812
- --Button-background-active: var(--Button-secondary-background-active);
813
- --Button-color: var(--Button-secondary-color);
814
- }
815
- .wds-Button--tertiary {
816
- --Button-background: var(--Button-tertiary-background);
817
- --Button-background-hover: var(--Button-tertiary-background-hover);
818
- --Button-background-active: var(--Button-tertiary-background-active);
819
- --Button-color: var(--Button-tertiary-color);
820
- }
821
- .wds-Button--tertiary .wds-Button-icon--end {
822
- color: var(--color-interactive-primary);
823
- }
824
- .wds-Button--minimal {
825
- --Button-background: var(--Button-minimal-background);
826
- --Button-background-hover: var(--Button-minimal-background-hover);
827
- --Button-background-active: var(--Button-minimal-background-active);
828
- --Button-color: var(--Button-minimal-color);
829
- -webkit-text-decoration: underline;
830
- text-decoration: underline;
831
- text-underline-offset: 3px;
832
- text-decoration-thickness: 1px;
833
- }
834
- .wds-Button--negative.wds-Button--primary {
835
- --Button-background: var(--Button-primary-negative-background);
836
- --Button-background-hover: var(--Button-primary-negative-background-hover);
837
- --Button-background-active: var(--Button-primary-negative-background-active);
838
- --Button-color: var(--Button-primary-negative-color);
839
- }
840
- .wds-Button--negative.wds-Button--secondary {
841
- --Button-background: var(--Button-secondary-negative-background);
842
- --Button-background-hover: var(--Button-secondary-negative-background-hover);
843
- --Button-background-active: var(--Button-secondary-negative-background-active);
844
- --Button-color: var(--Button-secondary-negative-color);
845
- }
846
- .wds-Button--large {
847
- padding: var(--Button-large-padding);
848
- }
849
- .wds-Button--medium {
850
- padding: var(--Button-medium-padding);
851
- }
852
- .wds-Button--medium:has(.wds-Button-avatars) {
853
- padding-inline-start: 8px;
854
- padding-inline-start: var(--size-8);
855
- }
856
- .wds-Button--medium:has(.wds-Button-icon--end) {
857
- padding-inline-end: 8px;
858
- padding-inline-end: var(--size-8);
859
- }
860
- .wds-Button--medium .wds-Button-icon--start {
861
- margin-inline-end: var(--Button-label-gap);
862
- }
863
- .wds-Button--small {
864
- padding: var(--Button-small-padding);
865
- }
866
- .wds-Button--small:has(.wds-Button-icon--start) {
867
- padding-inline-start: 8px;
868
- padding-inline-start: var(--size-8);
869
- }
870
- .wds-Button--small:has(.wds-Button-icon--end) {
871
- padding-inline-end: 8px;
872
- padding-inline-end: var(--size-8);
873
- }
874
- .wds-Button--block {
875
- width: 100%;
876
- }
877
- .wds-Button-avatars {
878
- display: inline-flex;
879
- }
880
- .wds-Button-avatars .np-avatar-view .np-avatar-view-content {
881
- color: var(--Button-color);
882
- }
883
- .wds-Button-icon {
884
- display: inline-block;
885
- }
886
- .wds-Button-content {
887
- position: relative;
888
- }
889
- .wds-Button-content--loading .wds-Button-label,
890
- .wds-Button-content--loading .wds-Button-media,
891
- .wds-Button-content--loading .wds-Button-icon {
892
- visibility: hidden;
893
- opacity: 0;
894
- }
895
- .wds-Button-label {
896
- display: flex;
897
- justify-content: center;
898
- align-items: center;
899
- gap: var(--Button-label-gap);
900
- position: relative;
901
- }
902
- .wds-Button-loader {
903
- position: absolute;
904
- width: 100%;
905
- height: 100%;
906
- }
907
- .wds-Button-loader .process-circle {
908
- stroke: var(--Button-color);
909
- }
910
- /* Avatar border transparency */
911
- /* dark buttons get 20% transparency, light buttons get 12% */
912
- .wds-Button-avatars .np-circle {
913
- --circle-border-color: color-mix(in srgb, var(--Button-color) 20%, transparent);
914
- }
915
- .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,
916
- .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,
917
- .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,
918
- .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 {
919
- --circle-border-color: color-mix(in srgb, var(--Button-color) 12%, transparent);
920
- }
921
- .np-theme-personal--dark .wds-Button--primary .wds-Button-avatars .np-circle,
922
- .np-theme-personal--dark .wds-Button--primary.wds-Button--negative .wds-Button-avatars .np-circle,
923
- .np-theme-personal--forest-green .wds-Button--primary .wds-Button-avatars .np-circle,
924
- .np-theme-personal--forest-green .wds-Button--primary.wds-Button--negative .wds-Button-avatars .np-circle {
925
- --circle-border-color: color-mix(in srgb, var(--Button-color) 12%, transparent);
926
- }
927
- .np-theme-personal--bright-green .wds-Button--tertiary .wds-Button-avatars .np-circle,
928
- .np-theme-personal--bright-green .wds-Button--minimal .wds-Button-avatars .np-circle {
929
- --circle-border-color: color-mix(in srgb, var(--Button-color) 12%, transparent);
930
- }
931
- [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 {
932
- scale: -1 1;
933
- }
934
709
  .np-card {
935
710
  overflow: hidden;
936
711
  transition-property: transform, box-shadow;
@@ -3914,6 +3689,17 @@ html:not([dir="rtl"]) .np-navigation-option {
3914
3689
  margin-left: 0;
3915
3690
  margin-right: 1px;
3916
3691
  }
3692
+ .wds-nudge-media-flower {
3693
+ margin-left: -24px;
3694
+ margin-top: 11px;
3695
+ position: absolute;
3696
+ width: 156px;
3697
+ }
3698
+ [dir="rtl"] .wds-nudge-media-flower {
3699
+ transform: scaleX(-1);
3700
+ margin-left: 0;
3701
+ margin-right: -24px;
3702
+ }
3917
3703
  .wds-nudge-container {
3918
3704
  align-items: stretch;
3919
3705
  display: flex;
@@ -136,6 +136,17 @@
136
136
  margin-left: 0;
137
137
  margin-right: 1px;
138
138
  }
139
+ .wds-nudge-media-flower {
140
+ margin-left: -24px;
141
+ margin-top: 11px;
142
+ position: absolute;
143
+ width: 156px;
144
+ }
145
+ [dir="rtl"] .wds-nudge-media-flower {
146
+ transform: scaleX(-1);
147
+ margin-left: 0;
148
+ margin-right: -24px;
149
+ }
139
150
  .wds-nudge-container {
140
151
  align-items: stretch;
141
152
  display: flex;
@@ -0,0 +1,166 @@
1
+ 'use strict';
2
+
3
+ var reactIntl = require('react-intl');
4
+ var TableCell = require('./TableCell.js');
5
+ var TableHeader = require('./TableHeader.js');
6
+ var TableRow = require('./TableRow.js');
7
+ var Alert = require('../alert/Alert.js');
8
+ var Table_messages = require('./Table.messages.js');
9
+ var Loader = require('../loader/Loader.js');
10
+ require('../common/theme.js');
11
+ require('../common/direction.js');
12
+ require('../common/propsValues/control.js');
13
+ require('../common/propsValues/breakpoint.js');
14
+ var size = require('../common/propsValues/size.js');
15
+ require('../common/propsValues/typography.js');
16
+ require('../common/propsValues/width.js');
17
+ require('../common/propsValues/type.js');
18
+ require('../common/propsValues/dateMode.js');
19
+ require('../common/propsValues/monthFormat.js');
20
+ require('../common/propsValues/position.js');
21
+ require('../common/propsValues/layouts.js');
22
+ require('../common/propsValues/status.js');
23
+ var sentiment = require('../common/propsValues/sentiment.js');
24
+ require('../common/propsValues/profileType.js');
25
+ require('../common/propsValues/variant.js');
26
+ require('../common/propsValues/scroll.js');
27
+ require('../common/propsValues/markdownNodeType.js');
28
+ require('../common/fileType.js');
29
+ require('@transferwise/icons');
30
+ var clsx = require('clsx');
31
+ require('react');
32
+ require('../common/closeButton/CloseButton.messages.js');
33
+ var jsxRuntime = require('react/jsx-runtime');
34
+ var StatusIcon = require('../statusIcon/StatusIcon.js');
35
+ var componentsTheming = require('@wise/components-theming');
36
+ var Body = require('../body/Body.js');
37
+
38
+ const Table = ({
39
+ 'aria-labelledby': ariaLabelledBy,
40
+ data,
41
+ loading,
42
+ className,
43
+ fullWidth = true,
44
+ error
45
+ }) => {
46
+ const {
47
+ formatMessage
48
+ } = reactIntl.useIntl();
49
+ const {
50
+ theme
51
+ } = componentsTheming.useTheme();
52
+ const isEmptyHeader = loading ?? (data?.headers && !data?.headers.length);
53
+ const getRowLength = () => {
54
+ const columnsLength = data?.headers?.length ?? 0;
55
+ return data?.onRowClick ? columnsLength + 1 : columnsLength;
56
+ };
57
+ const getTableContent = () => {
58
+ if (loading) {
59
+ return /*#__PURE__*/jsxRuntime.jsx(TableRow, {
60
+ children: /*#__PURE__*/jsxRuntime.jsx(TableCell, {
61
+ children: /*#__PURE__*/jsxRuntime.jsx(Loader, {
62
+ "data-testid": "np-table-loader"
63
+ })
64
+ })
65
+ });
66
+ }
67
+ // Shows the `emptyData` message when there is no data to display
68
+ if (!data?.rows?.length) {
69
+ return /*#__PURE__*/jsxRuntime.jsx(TableRow, {
70
+ children: /*#__PURE__*/jsxRuntime.jsx(TableCell, {
71
+ colSpan: data?.headers?.length,
72
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
73
+ className: "np-table-empty-data",
74
+ "data-testid": "np-table-empty-data",
75
+ children: [/*#__PURE__*/jsxRuntime.jsx(StatusIcon, {
76
+ sentiment: sentiment.Sentiment.WARNING,
77
+ size: size.Size.MEDIUM
78
+ }), /*#__PURE__*/jsxRuntime.jsx(Body, {
79
+ type: "body-default-bold",
80
+ children: formatMessage(Table_messages.emptyData)
81
+ })]
82
+ })
83
+ })
84
+ });
85
+ }
86
+ return data?.rows?.map((rowData, rowIndex) => {
87
+ return /*#__PURE__*/jsxRuntime.jsx(TableRow, {
88
+ rowData: rowData,
89
+ hasSeparator: data?.rows?.length ? data.rows.length - 1 !== rowIndex : false,
90
+ onRowClick: data?.onRowClick
91
+ }, 'table-row-'.concat(rowIndex.toString()));
92
+ });
93
+ };
94
+ if (error) {
95
+ return /*#__PURE__*/jsxRuntime.jsx(Alert.default, {
96
+ className: "np-table-error",
97
+ message: error.message,
98
+ type: sentiment.Sentiment.NEGATIVE,
99
+ action: {
100
+ href: error?.action?.href ?? '/',
101
+ text: error?.action?.text ?? formatMessage(Table_messages.refreshPage)
102
+ },
103
+ "data-testid": "np-table-error"
104
+ });
105
+ }
106
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
107
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
108
+ "aria-live": "polite",
109
+ className: "sr-only",
110
+ children: formatMessage(Table_messages[loading ? 'loading' : 'loaded'])
111
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
112
+ role: loading ? 'presentation' : 'region',
113
+ "aria-labelledby": ariaLabelledBy,
114
+ className: clsx.clsx('np-table-outer-container', className, {
115
+ 'np-theme-personal': theme === 'bright-green',
116
+ 'np-table-outer-container--center': !fullWidth,
117
+ 'np-table-outer-container--full-width': fullWidth
118
+ })
119
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
120
+ ,
121
+ tabIndex: 0,
122
+ "data-testid": "np-table-outer-container",
123
+ children: /*#__PURE__*/jsxRuntime.jsx("div", {
124
+ className: clsx.clsx('np-table-container', {
125
+ 'np-table-container--loading': loading
126
+ }),
127
+ "data-testid": "np-table-container",
128
+ children: /*#__PURE__*/jsxRuntime.jsx("div", {
129
+ className: "np-table-inner-container",
130
+ children: /*#__PURE__*/jsxRuntime.jsxs("table", {
131
+ className: "np-table",
132
+ children: [/*#__PURE__*/jsxRuntime.jsx("thead", {
133
+ "aria-hidden": isEmptyHeader,
134
+ children: /*#__PURE__*/jsxRuntime.jsxs("tr", {
135
+ children: [isEmptyHeader ? /*#__PURE__*/jsxRuntime.jsx(TableHeader, {}) : data?.headers?.map((headerItem, index) => /*#__PURE__*/jsxRuntime.jsx(TableHeader, {
136
+ ...headerItem
137
+ }, headerItem.header?.concat(index.toString()))), data?.onRowClick && /*#__PURE__*/jsxRuntime.jsx(TableHeader, {
138
+ isActionHeader: true
139
+ })]
140
+ })
141
+ }), /*#__PURE__*/jsxRuntime.jsxs("tbody", {
142
+ children: [/*#__PURE__*/jsxRuntime.jsx("tr", {
143
+ "aria-hidden": "true",
144
+ className: "np-table-row np-table-row--cosmetic",
145
+ children: /*#__PURE__*/jsxRuntime.jsx("td", {
146
+ className: "np-table-cell",
147
+ colSpan: getRowLength()
148
+ })
149
+ }, "first-np-table-row--cosmetic"), getTableContent(), /*#__PURE__*/jsxRuntime.jsx("tr", {
150
+ "aria-hidden": "true",
151
+ className: "np-table-row np-table-row--cosmetic",
152
+ children: /*#__PURE__*/jsxRuntime.jsx("td", {
153
+ className: "np-table-cell",
154
+ colSpan: getRowLength()
155
+ })
156
+ }, "last-np-table-row--cosmetic")]
157
+ })]
158
+ })
159
+ })
160
+ })
161
+ })]
162
+ });
163
+ };
164
+
165
+ module.exports = Table;
166
+ //# sourceMappingURL=Table.js.map