@transferwise/components 0.0.0-experimental-2524bc4 → 0.0.0-experimental-0ee6ecc

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 (180) hide show
  1. package/build/avatarLayout/AvatarLayout.js +9 -2
  2. package/build/avatarLayout/AvatarLayout.js.map +1 -1
  3. package/build/avatarLayout/AvatarLayout.mjs +9 -2
  4. package/build/avatarLayout/AvatarLayout.mjs.map +1 -1
  5. package/build/button/Button/src/Button.js +93 -0
  6. package/build/button/Button/src/Button.js.map +1 -0
  7. package/build/button/Button/src/Button.mjs +91 -0
  8. package/build/button/Button/src/Button.mjs.map +1 -0
  9. package/build/button/{Button.js → LegacyButton/Button.js} +25 -24
  10. package/build/button/LegacyButton/Button.js.map +1 -0
  11. package/build/button/{Button.mjs → LegacyButton/Button.mjs} +25 -24
  12. package/build/button/LegacyButton/Button.mjs.map +1 -0
  13. package/build/button/LegacyButton/classMap.js +42 -0
  14. package/build/button/LegacyButton/classMap.js.map +1 -0
  15. package/build/button/LegacyButton/classMap.mjs +39 -0
  16. package/build/button/LegacyButton/classMap.mjs.map +1 -0
  17. package/build/button/{legacyUtils → LegacyButton/legacyUtils}/legacyUtils.js +21 -21
  18. package/build/button/LegacyButton/legacyUtils/legacyUtils.js.map +1 -0
  19. package/build/button/{legacyUtils → LegacyButton/legacyUtils}/legacyUtils.mjs +21 -21
  20. package/build/button/LegacyButton/legacyUtils/legacyUtils.mjs.map +1 -0
  21. package/build/button/src/Button.js +64 -0
  22. package/build/button/src/Button.js.map +1 -0
  23. package/build/button/src/Button.mjs +62 -0
  24. package/build/button/src/Button.mjs.map +1 -0
  25. package/build/circularButton/CircularButton.js +1 -1
  26. package/build/circularButton/CircularButton.js.map +1 -1
  27. package/build/circularButton/CircularButton.mjs +1 -1
  28. package/build/circularButton/CircularButton.mjs.map +1 -1
  29. package/build/common/action/Action.js +1 -1
  30. package/build/common/action/Action.js.map +1 -1
  31. package/build/common/action/Action.mjs +1 -1
  32. package/build/common/action/Action.mjs.map +1 -1
  33. package/build/criticalBanner/CriticalCommsBanner.js +1 -1
  34. package/build/criticalBanner/CriticalCommsBanner.mjs +1 -1
  35. package/build/header/Header.js +1 -1
  36. package/build/header/Header.mjs +1 -1
  37. package/build/i18n/es.json +0 -1
  38. package/build/i18n/es.json.js +0 -1
  39. package/build/i18n/es.json.js.map +1 -1
  40. package/build/i18n/es.json.mjs +0 -1
  41. package/build/i18n/es.json.mjs.map +1 -1
  42. package/build/i18n/fr.json +5 -6
  43. package/build/i18n/fr.json.js +5 -6
  44. package/build/i18n/fr.json.js.map +1 -1
  45. package/build/i18n/fr.json.mjs +5 -6
  46. package/build/i18n/fr.json.mjs.map +1 -1
  47. package/build/i18n/hu.json +0 -1
  48. package/build/i18n/hu.json.js +0 -1
  49. package/build/i18n/hu.json.js.map +1 -1
  50. package/build/i18n/hu.json.mjs +0 -1
  51. package/build/i18n/hu.json.mjs.map +1 -1
  52. package/build/i18n/id.json +0 -1
  53. package/build/i18n/id.json.js +0 -1
  54. package/build/i18n/id.json.js.map +1 -1
  55. package/build/i18n/id.json.mjs +0 -1
  56. package/build/i18n/id.json.mjs.map +1 -1
  57. package/build/i18n/ro.json +0 -1
  58. package/build/i18n/ro.json.js +0 -1
  59. package/build/i18n/ro.json.js.map +1 -1
  60. package/build/i18n/ro.json.mjs +0 -1
  61. package/build/i18n/ro.json.mjs.map +1 -1
  62. package/build/index.js +1 -1
  63. package/build/index.mjs +1 -1
  64. package/build/link/Link.js +8 -3
  65. package/build/link/Link.js.map +1 -1
  66. package/build/link/Link.mjs +8 -3
  67. package/build/link/Link.mjs.map +1 -1
  68. package/build/main.css +288 -29
  69. package/build/nudge/Nudge.js +1 -1
  70. package/build/nudge/Nudge.js.map +1 -1
  71. package/build/nudge/Nudge.mjs +1 -1
  72. package/build/nudge/Nudge.mjs.map +1 -1
  73. package/build/select/Select.js +1 -1
  74. package/build/select/Select.mjs +1 -1
  75. package/build/styles/avatarLayout/AvatarLayout.css +11 -0
  76. package/build/styles/button/Button/less/Button.css +253 -0
  77. package/build/styles/button/Button/less/Button.vars.css +57 -0
  78. package/build/styles/iconButton/IconButton.css +24 -29
  79. package/build/styles/main.css +288 -29
  80. package/build/types/avatarLayout/AvatarLayout.d.ts +1 -2
  81. package/build/types/avatarLayout/AvatarLayout.d.ts.map +1 -1
  82. package/build/types/avatarLayout/index.d.ts +1 -0
  83. package/build/types/avatarLayout/index.d.ts.map +1 -1
  84. package/build/types/button/Button/index.d.ts +3 -0
  85. package/build/types/button/Button/index.d.ts.map +1 -0
  86. package/build/types/button/Button/src/Button.d.ts +4 -0
  87. package/build/types/button/Button/src/Button.d.ts.map +1 -0
  88. package/build/types/button/Button/src/Button.types.d.ts +50 -0
  89. package/build/types/button/Button/src/Button.types.d.ts.map +1 -0
  90. package/build/types/button/Button/src/index.d.ts +2 -0
  91. package/build/types/button/Button/src/index.d.ts.map +1 -0
  92. package/build/types/button/{Button.d.ts → LegacyButton/Button.d.ts} +6 -5
  93. package/build/types/button/LegacyButton/Button.d.ts.map +1 -0
  94. package/build/types/button/LegacyButton/classMap.d.ts.map +1 -0
  95. package/build/types/button/LegacyButton/index.d.ts +3 -0
  96. package/build/types/button/LegacyButton/index.d.ts.map +1 -0
  97. package/build/types/button/LegacyButton/legacyUtils/index.d.ts.map +1 -0
  98. package/build/types/button/{legacyUtils → LegacyButton/legacyUtils}/legacyUtils.d.ts +1 -1
  99. package/build/types/button/LegacyButton/legacyUtils/legacyUtils.d.ts.map +1 -0
  100. package/build/types/button/index.d.ts +2 -2
  101. package/build/types/button/index.d.ts.map +1 -1
  102. package/build/types/button/src/Button.d.ts +40 -0
  103. package/build/types/button/src/Button.d.ts.map +1 -0
  104. package/build/types/button/src/index.d.ts +3 -0
  105. package/build/types/button/src/index.d.ts.map +1 -0
  106. package/build/types/link/Link.d.ts +2 -2
  107. package/build/types/link/Link.d.ts.map +1 -1
  108. package/build/types/test-utils/index.d.ts.map +1 -1
  109. package/build/upload/steps/completeStep/completeStep.js +1 -1
  110. package/build/upload/steps/completeStep/completeStep.mjs +1 -1
  111. package/build/upload/steps/processingStep/processingStep.js +1 -1
  112. package/build/upload/steps/processingStep/processingStep.mjs +1 -1
  113. package/build/uploadInput/UploadInput.js +1 -1
  114. package/build/uploadInput/UploadInput.mjs +1 -1
  115. package/package.json +3 -3
  116. package/src/avatarLayout/AvatarLayout.css +11 -0
  117. package/src/avatarLayout/AvatarLayout.less +18 -1
  118. package/src/avatarLayout/AvatarLayout.tsx +11 -3
  119. package/src/avatarLayout/index.ts +1 -0
  120. package/src/avatarWrapper/AvatarWrapper.story.tsx +2 -0
  121. package/src/button/Button/index.ts +2 -0
  122. package/src/button/Button/less/Button.css +253 -0
  123. package/src/button/Button/less/Button.less +221 -0
  124. package/src/button/Button/less/Button.vars.css +57 -0
  125. package/src/button/Button/less/Button.vars.less +65 -0
  126. package/src/button/Button/src/Button.tsx +116 -0
  127. package/src/button/Button/src/Button.types.ts +70 -0
  128. package/src/button/Button/src/index.ts +1 -0
  129. package/src/button/Button/stories/Button.story.tsx +314 -0
  130. package/src/button/Button/stories/Button.tests.story.tsx +288 -0
  131. package/src/button/Button/test/Button.spec.tsx +328 -0
  132. package/src/button/{Button.less → LegacyButton/Button.less} +1 -1
  133. package/src/button/{Button.spec.tsx → LegacyButton/Button.spec.tsx} +3 -3
  134. package/src/button/LegacyButton/Button.story.tsx +224 -0
  135. package/src/button/{Button.tsx → LegacyButton/Button.tsx} +12 -9
  136. package/src/button/{classMap.ts → LegacyButton/classMap.ts} +1 -1
  137. package/src/button/LegacyButton/index.ts +3 -0
  138. package/src/button/{legacyUtils → LegacyButton/legacyUtils}/legacyUtils.spec.tsx +2 -2
  139. package/src/button/{legacyUtils → LegacyButton/legacyUtils}/legacyUtils.ts +2 -2
  140. package/src/button/index.ts +2 -3
  141. package/src/button/src/Button.tsx +60 -0
  142. package/src/button/src/index.ts +2 -0
  143. package/src/button/test/Button.spec.tsx +32 -0
  144. package/src/circularButton/CircularButton.tsx +1 -1
  145. package/src/common/action/Action.tsx +1 -1
  146. package/src/i18n/es.json +0 -1
  147. package/src/i18n/fr.json +5 -6
  148. package/src/i18n/hu.json +0 -1
  149. package/src/i18n/id.json +0 -1
  150. package/src/i18n/ro.json +0 -1
  151. package/src/iconButton/IconButton.css +24 -29
  152. package/src/iconButton/IconButton.less +4 -4
  153. package/src/link/Link.tsx +15 -6
  154. package/src/main.css +288 -29
  155. package/src/main.less +2 -1
  156. package/src/nudge/Nudge.tsx +1 -1
  157. package/src/primitives/PrimitiveAnchor/stories/PrimitiveAnchor.story.tsx +1 -1
  158. package/src/primitives/PrimitiveAnchor/test/PrimitiveAnchor.spec.tsx +1 -1
  159. package/src/primitives/PrimitiveButton/stories/PrimitiveButton.story.tsx +1 -1
  160. package/src/primitives/PrimitiveButton/test/PrimitiveButton.spec.tsx +2 -3
  161. package/src/test-utils/index.tsx +0 -1
  162. package/build/button/Button.js.map +0 -1
  163. package/build/button/Button.mjs.map +0 -1
  164. package/build/button/classMap.js +0 -42
  165. package/build/button/classMap.js.map +0 -1
  166. package/build/button/classMap.mjs +0 -39
  167. package/build/button/classMap.mjs.map +0 -1
  168. package/build/button/legacyUtils/legacyUtils.js.map +0 -1
  169. package/build/button/legacyUtils/legacyUtils.mjs.map +0 -1
  170. package/build/types/button/Button.d.ts.map +0 -1
  171. package/build/types/button/classMap.d.ts.map +0 -1
  172. package/build/types/button/legacyUtils/index.d.ts.map +0 -1
  173. package/build/types/button/legacyUtils/legacyUtils.d.ts.map +0 -1
  174. package/src/button/Button.story.tsx +0 -163
  175. /package/build/styles/button/{Button.css → LegacyButton/Button.css} +0 -0
  176. /package/build/types/button/{classMap.d.ts → LegacyButton/classMap.d.ts} +0 -0
  177. /package/build/types/button/{legacyUtils → LegacyButton/legacyUtils}/index.d.ts +0 -0
  178. /package/src/button/{Button.css → LegacyButton/Button.css} +0 -0
  179. /package/src/button/{__snapshots__ → LegacyButton/__snapshots__}/Button.spec.tsx.snap +0 -0
  180. /package/src/button/{legacyUtils → LegacyButton/legacyUtils}/index.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test-utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAM,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,MAAM,EAAc,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAMxD;;;;GAIG;AACH,iBAAS,YAAY,CACnB,EAAE,EAAE,YAAY,EAChB,EAAE,MAAuB,EAAE,QAAa,EAAE,GAAG,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAK,GAChE,UAAU,CAAC,OAAO,MAAM,CAAC,CAK3B;AAED;;;GAGG;AACH,iBAAS,gBAAgB,CACvB,QAAQ,EAAE,MAAM,OAAO,EACvB,EAAE,MAAuB,EAAE,QAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAK,uEAKhD;AAED,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,gBAAgB,IAAI,UAAU,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test-utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAM,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,MAAM,EAAc,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAMxD;;;;GAIG;AACH,iBAAS,YAAY,CACnB,EAAE,EAAE,YAAY,EAChB,EAAE,MAAuB,EAAE,QAAa,EAAE,GAAG,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAK,GAChE,UAAU,CAAC,OAAO,MAAM,CAAC,CAK3B;AAED;;;GAGG;AACH,iBAAS,gBAAgB,CACvB,QAAQ,EAAE,MAAM,OAAO,EACvB,EAAE,MAAuB,EAAE,QAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAK,uEAKhD;AAED,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,gBAAgB,IAAI,UAAU,EAAE,SAAS,EAAE,CAAC"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var icons = require('@transferwise/icons');
4
4
  var Body = require('../../../body/Body.js');
5
- var Button = require('../../../button/Button.js');
5
+ var Button = require('../../../button/src/Button.js');
6
6
  var Title = require('../../../title/Title.js');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
  var typography = require('../../../common/propsValues/typography.js');
@@ -1,6 +1,6 @@
1
1
  import { Document } from '@transferwise/icons';
2
2
  import Body from '../../../body/Body.mjs';
3
- import Button from '../../../button/Button.mjs';
3
+ import Button from '../../../button/src/Button.mjs';
4
4
  import Title from '../../../title/Title.mjs';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
6
6
  import { Typography } from '../../../common/propsValues/typography.mjs';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var Button = require('../../../button/Button.js');
3
+ var Button = require('../../../button/src/Button.js');
4
4
  require('../../../common/theme.js');
5
5
  require('../../../common/direction.js');
6
6
  require('../../../common/propsValues/control.js');
@@ -1,4 +1,4 @@
1
- import Button from '../../../button/Button.mjs';
1
+ import Button from '../../../button/src/Button.mjs';
2
2
  import '../../../common/theme.mjs';
3
3
  import '../../../common/direction.mjs';
4
4
  import '../../../common/propsValues/control.mjs';
@@ -3,7 +3,7 @@
3
3
  var clsx = require('clsx');
4
4
  var React = require('react');
5
5
  var reactIntl = require('react-intl');
6
- var Button = require('../button/Button.js');
6
+ var Button = require('../button/src/Button.js');
7
7
  require('../common/theme.js');
8
8
  require('../common/direction.js');
9
9
  var control = require('../common/propsValues/control.js');
@@ -1,7 +1,7 @@
1
1
  import { clsx } from 'clsx';
2
2
  import { useState, useRef, useEffect } from 'react';
3
3
  import { useIntl } from 'react-intl';
4
- import Button from '../button/Button.mjs';
4
+ import Button from '../button/src/Button.mjs';
5
5
  import '../common/theme.mjs';
6
6
  import '../common/direction.mjs';
7
7
  import { Priority, ControlType } from '../common/propsValues/control.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@transferwise/components",
3
- "version": "0.0.0-experimental-2524bc4",
3
+ "version": "0.0.0-experimental-0ee6ecc",
4
4
  "description": "Neptune React components",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -92,12 +92,12 @@
92
92
  "rollup-preserve-directives": "^1.1.1",
93
93
  "storybook": "^8.2.2",
94
94
  "@transferwise/less-config": "3.1.0",
95
- "@transferwise/neptune-css": "14.20.1",
95
+ "@transferwise/neptune-css": "0.0.0-experimental-0ee6ecc",
96
96
  "@wise/components-theming": "1.6.1"
97
97
  },
98
98
  "peerDependencies": {
99
99
  "@transferwise/icons": "^3.13.1",
100
- "@transferwise/neptune-css": "^14.9.6",
100
+ "@transferwise/neptune-css": "0.0.0-experimental-0ee6ecc",
101
101
  "@wise/art": "^2.16",
102
102
  "@wise/components-theming": "^1.0.0",
103
103
  "react": ">=18",
@@ -11,10 +11,18 @@
11
11
  -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);
12
12
  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);
13
13
  }
14
+ [dir="rtl"] .np-avatar-layout-diagonal-mask {
15
+ -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);
16
+ 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);
17
+ }
14
18
  .np-avatar-layout-diagonal-child {
15
19
  margin-left: calc(var(--np-avatar-layout-size) - var(--np-avatar-size) * 2);
16
20
  margin-top: calc(var(--np-avatar-layout-size) - var(--np-avatar-size));
17
21
  }
22
+ [dir="rtl"] .np-avatar-layout-diagonal-child {
23
+ margin-left: 0;
24
+ margin-right: calc(var(--np-avatar-layout-size) - var(--np-avatar-size) * 2);
25
+ }
18
26
  .np-avatar-layout-horizontal {
19
27
  width: calc(var(--np-avatar-size) * 2 - var(--np-avatar-offset) - 2px);
20
28
  height: var(--np-avatar-layout-size);
@@ -28,3 +36,6 @@
28
36
  .np-avatar-layout-horizontal-child {
29
37
  margin-left: calc(var(--np-avatar-offset) * -1);
30
38
  }
39
+ [dir="rtl"] .np-avatar-layout-horizontal-child {
40
+ margin-right: calc(var(--np-avatar-offset) * -1);
41
+ }
@@ -13,11 +13,24 @@
13
13
  transparent 0,
14
14
  transparent calc(var(--np-avatar-size) / 2 + 2px),
15
15
  black 0);
16
+
17
+ :dir(rtl) & {
18
+ mask-image:
19
+ 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)),
20
+ transparent 0,
21
+ transparent calc(var(--np-avatar-size) / 2 + 2px),
22
+ black 0);
23
+ }
16
24
  }
17
25
 
18
26
  &-child {
19
27
  margin-left: calc(var(--np-avatar-layout-size) - var(--np-avatar-size) * 2);
20
28
  margin-top: calc(var(--np-avatar-layout-size) - var(--np-avatar-size));
29
+
30
+ :dir(rtl) & {
31
+ margin-left: 0;
32
+ margin-right: calc(var(--np-avatar-layout-size) - var(--np-avatar-size) * 2);
33
+ }
21
34
  }
22
35
  }
23
36
 
@@ -34,6 +47,10 @@
34
47
 
35
48
  &-child {
36
49
  margin-left: calc(var(--np-avatar-offset) * -1);
50
+
51
+ :dir(rtl) & {
52
+ margin-right: calc(var(--np-avatar-offset) * -1);
53
+ }
37
54
  }
38
55
  }
39
- }
56
+ }
@@ -1,7 +1,8 @@
1
1
  import { clsx } from 'clsx';
2
2
  import AvatarView, { AvatarViewProps } from '../avatarView';
3
+ import { useDirection } from '../common/hooks';
3
4
 
4
- type SingleAvatarType = { asset?: AvatarViewProps['children'] } & Omit<
5
+ export type SingleAvatarType = { asset?: AvatarViewProps['children'] } & Omit<
5
6
  AvatarViewProps,
6
7
  'notification' | 'selected' | 'size' | 'badge' | 'children' | 'interactive'
7
8
  >;
@@ -24,6 +25,7 @@ export default function AvatarLayout({
24
25
  }: Props) {
25
26
  const orientation =
26
27
  size === 16 && orientationProp === 'diagonal' ? 'horizontal' : orientationProp;
28
+ const { isRTL } = useDirection();
27
29
  const isDiagonal = orientation === 'diagonal';
28
30
  const avatarSize = isDiagonal ? DIAGONAL_LAYOUT_STYLE_CONFIG[size]?.avatarSize : size;
29
31
  return avatars.length < 1 ? null : avatars.length === 1 ? (
@@ -44,8 +46,14 @@ export default function AvatarLayout({
44
46
  // eslint-disable-next-line react/no-array-index-key
45
47
  key={index}
46
48
  className={clsx(
47
- { [`np-avatar-layout-${orientation}-child`]: index !== 0 },
48
- { [`np-avatar-layout-${orientation}-mask`]: index !== avatars.length - 1 },
49
+ {
50
+ [`np-avatar-layout-${orientation}-child`]:
51
+ !isDiagonal && isRTL ? index !== avatars.length - 1 : index !== 0,
52
+ },
53
+ {
54
+ [`np-avatar-layout-${orientation}-mask`]:
55
+ !isDiagonal && isRTL ? index !== 0 : index !== avatars.length - 1,
56
+ },
49
57
  )}
50
58
  >
51
59
  <AvatarView
@@ -1,2 +1,3 @@
1
1
  export type { Props as AvatarLayoutProps } from './AvatarLayout';
2
+ export type { SingleAvatarType } from './AvatarLayout';
2
3
  export { default } from './AvatarLayout';
@@ -11,6 +11,8 @@ export default {
11
11
 
12
12
  type Story = StoryObj<typeof AvatarWrapper>;
13
13
 
14
+ export const Basic: Story = {}
15
+
14
16
  export const All: Story = {
15
17
  args: {
16
18
  avatarProps: { outlined: true },
@@ -0,0 +1,2 @@
1
+ export { default } from './src';
2
+ export * from './src';
@@ -0,0 +1,253 @@
1
+ :root {
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-padding: var(--size-8) var(--size-12);
7
+ --Button-border-radius: var(--radius-full);
8
+ --Button-font-size: var(--font-size-16);
9
+ --Button-line-height: var(--size-24);
10
+ --Button-font-weight: var(--font-weight-semi-bold);
11
+ --Button-letter-spacing: -0.011em;
12
+ --Button-size-small-padding: 5px var(--size-12);
13
+ --Button-size-medium-padding: var(--size-8) var(--size-12);
14
+ --Button-size-large-padding: var(--size-12) var(--size-16);
15
+ --Button-avatar-border-color: var(--color-border-neutral);
16
+ --Button-secondary-background: var(--color-interactive-neutral);
17
+ --Button-secondary-background-hover: var(--color-interactive-neutral-hover);
18
+ --Button-secondary-background-active: var(--color-interactive-neutral-active);
19
+ --Button-secondary-color: var(--color-interactive-primary);
20
+ --Button-tertiary-background: var(--color-background-neutral);
21
+ --Button-tertiary-background-hover: var(--color-background-neutral-hover);
22
+ --Button-tertiary-background-active: var(--color-background-neutral-active);
23
+ --Button-tertiary-color: var(--color-content-primary);
24
+ --Button-minimal-background: transparent;
25
+ --Button-minimal-background-hover: var(--color-background-screen-hover);
26
+ --Button-minimal-background-active: var(--color-background-screen-active);
27
+ --Button-minimal-color: var(--color-interactive-primary);
28
+ --Button-primary-negative-background: var(--color-sentiment-negative-primary);
29
+ --Button-primary-negative-background-hover: var(--color-sentiment-negative-primary-hover);
30
+ --Button-primary-negative-background-active: var(--color-sentiment-negative-primary-active);
31
+ --Button-primary-negative-color: var(--color-contrast);
32
+ --Button-primary-netative-avatar-border-color: rgba(255,255,255,0.2);
33
+ --Button-secondary-negative-background: var(--color-sentiment-negative-secondary);
34
+ --Button-secondary-negative-background-hover: var(--color-sentiment-negative-secondary-hover);
35
+ --Button-secondary-negative-background-active: var(--color-sentiment-negative-secondary-active);
36
+ --Button-secondary-negative-color: var(--color-sentiment-negative-primary);
37
+ --Button-secondary-netative-avatar-border-color: rgba(168,32,13,0.12157);
38
+ }
39
+ .np-theme-personal--dark {
40
+ --Button-primary-netative-avatar-border-color: rgba(14,15,12,0.12157);
41
+ }
42
+ .np-theme-personal--forest-green {
43
+ --color-interactive-neutral: rgba(159,232,112,0.2);
44
+ --color-interactive-neutral-hover: rgba(205,255,173,0.2);
45
+ --color-interactive-neutral-active: rgba(236,255,224,0.2);
46
+ --color-sentiment-negative-secondary: rgba(255,196,194,0.2);
47
+ --color-sentiment-negative-secondary-hover: rgba(255,220,219,0.2);
48
+ --color-sentiment-negative-secondary-active: rgba(255,235,235,0.2);
49
+ --Button-primary-netative-avatar-border-color: rgba(14,15,12,0.12157);
50
+ --Button-secondary-netative-avatar-border-color: rgba(14,15,12,0.12157);
51
+ }
52
+ .np-theme-personal--bright-green {
53
+ --color-contrast: #FFFFFF;
54
+ --Button-secondary-color: var(--color-interactive-control);
55
+ --Button-secondary-negative-color: var(--color-contrast);
56
+ --Button-secondary-netative-avatar-border-color: var(--Button-primary-netative-avatar-border-color);
57
+ }
58
+ /* Button Styles */
59
+ .wds-Button {
60
+ display: inline-flex;
61
+ flex: none;
62
+ width: auto;
63
+ align-items: center;
64
+ justify-content: center;
65
+ vertical-align: middle;
66
+ font-weight: 600;
67
+ font-weight: var(--Button-font-weight);
68
+ font-size: 1rem;
69
+ font-size: var(--Button-font-size);
70
+ letter-spacing: -0.011em;
71
+ letter-spacing: var(--Button-letter-spacing);
72
+ line-height: 24px;
73
+ line-height: var(--Button-line-height);
74
+ text-align: center;
75
+ -webkit-text-decoration: none;
76
+ text-decoration: none;
77
+ white-space: nowrap;
78
+ word-wrap: break-word;
79
+ -webkit-appearance: none;
80
+ -moz-appearance: none;
81
+ appearance: none;
82
+ background-color: #00a2dd;
83
+ background-color: var(--Button-background);
84
+ border: none;
85
+ border-radius: 9999px;
86
+ border-radius: var(--Button-border-radius);
87
+ color: var(--Button-color);
88
+ cursor: pointer;
89
+ padding: 8px 12px;
90
+ padding: var(--Button-padding);
91
+ }
92
+ .wds-Button:focus {
93
+ -webkit-text-decoration: none;
94
+ text-decoration: none;
95
+ }
96
+ .wds-Button:hover {
97
+ background-color: #008fc9;
98
+ background-color: var(--Button-background-hover);
99
+ -webkit-text-decoration: none;
100
+ text-decoration: none;
101
+ }
102
+ .wds-Button:active {
103
+ background-color: #0081ba;
104
+ background-color: var(--Button-background-active);
105
+ -webkit-text-decoration: none;
106
+ text-decoration: none;
107
+ }
108
+ .wds-Button:disabled {
109
+ mix-blend-mode: luminosity;
110
+ opacity: 0.45;
111
+ cursor: not-allowed;
112
+ }
113
+ .wds-Button:disabled:hover,
114
+ .wds-Button:disabled:active {
115
+ background-color: #00a2dd;
116
+ background-color: var(--Button-background);
117
+ }
118
+ .wds-Button--secondary {
119
+ --Button-background: var(--Button-secondary-background);
120
+ --Button-background-hover: var(--Button-secondary-hover-background);
121
+ --Button-background-active: var(--Button-secondary-active-background);
122
+ --Button-color: var(--Button-secondary-color);
123
+ }
124
+ .wds-Button--tertiary {
125
+ --Button-background: var(--Button-tertiary-background);
126
+ --Button-background-hover: var(--Button-tertiary-hover-background);
127
+ --Button-background-active: var(--Button-tertiary-active-background);
128
+ --Button-color: var(--Button-tertiary-color);
129
+ }
130
+ .wds-Button--tertiary .wds-Button-icon--right {
131
+ color: var(--color-interactive-primary);
132
+ }
133
+ .wds-Button--minimal {
134
+ --Button-background: var(--Button-minimal-background);
135
+ --Button-background-hover: var(--Button-minimal-hover-background);
136
+ --Button-background-active: var(--Button-minimal-active-background);
137
+ --Button-color: var(--Button-minimal-color);
138
+ -webkit-text-decoration: underline;
139
+ text-decoration: underline;
140
+ }
141
+ .wds-Button--minimal:hover,
142
+ .wds-Button--minimal:hover:active {
143
+ -webkit-text-decoration: underline;
144
+ text-decoration: underline;
145
+ }
146
+ .wds-Button--negative.wds-Button--primary {
147
+ --Button-background: var(--Button-primary-negative-background);
148
+ --Button-background-hover: var(--Button-primary-negative-hover-background);
149
+ --Button-background-active: var(--Button-primary-negative-active-background);
150
+ --Button-color: var(--Button-primary-negative-color);
151
+ --Button-avatar-border-color: var(--Button-primary-netative-avatar-border-color);
152
+ }
153
+ .wds-Button--negative.wds-Button--secondary {
154
+ --Button-background: var(--Button-secondary-negative-background);
155
+ --Button-background-hover: var(--Button-secondary-negative-hover-background);
156
+ --Button-background-active: var(--Button-secondary-negative-active-background);
157
+ --Button-color: var(--Button-secondary-negative-color);
158
+ --Button-avatar-border-color: var(--Button-secondary-netative-avatar-border-color);
159
+ }
160
+ .wds-Button--small {
161
+ --Button-padding: var(--Button-size-small-padding);
162
+ --Button-line-height: 22px;
163
+ --Button-font-size: var(--font-size-14);
164
+ --Button-letter-spacing: -0.006em;
165
+ }
166
+ .wds-Button--small .wds-Button-icon--left {
167
+ margin-right: 4px;
168
+ margin-right: var(--size-4);
169
+ }
170
+ [dir="rtl"] .wds-Button--small .wds-Button-icon--left {
171
+ margin-right: 0;
172
+ margin-left: 4px;
173
+ margin-left: var(--size-4);
174
+ }
175
+ .wds-Button--medium {
176
+ --Button-padding: var(--Button-size-medium-padding);
177
+ }
178
+ .wds-Button--large {
179
+ --Button-padding: var(--Button-size-large-padding);
180
+ }
181
+ .wds-Button--block {
182
+ width: 100%;
183
+ }
184
+ .wds-Button-avatars {
185
+ display: inline-flex;
186
+ margin-right: 5px;
187
+ margin-left: calc(4px * -1);
188
+ margin-left: calc(var(--size-4) * -1);
189
+ }
190
+ [dir="rtl"] .wds-Button-avatars {
191
+ margin-right: 0;
192
+ margin-left: 5px;
193
+ }
194
+ .wds-Button-avatars .np-circle {
195
+ --circle-border-color: var(--Button-avatar-border-color);
196
+ }
197
+ .wds-Button-avatars .np-avatar-view .np-avatar-view-content {
198
+ color: var(--Button-color);
199
+ }
200
+ .wds-Button-icon {
201
+ display: inline-block;
202
+ }
203
+ .wds-Button-icon--left {
204
+ margin-right: 8px;
205
+ margin-right: var(--size-8);
206
+ }
207
+ [dir="rtl"] .wds-Button-icon--left {
208
+ margin-right: 0;
209
+ margin-left: 8px;
210
+ margin-left: var(--size-8);
211
+ }
212
+ .wds-Button-icon--right {
213
+ margin-left: 4px;
214
+ margin-left: var(--size-4);
215
+ }
216
+ [dir="rtl"] .wds-Button-icon--right {
217
+ margin-left: 0;
218
+ margin-right: 4px;
219
+ margin-right: var(--size-4);
220
+ }
221
+ .wds-Button-content {
222
+ position: relative;
223
+ }
224
+ .wds-Button-content--loading .wds-Button-label,
225
+ .wds-Button-content--loading .wds-Button-media,
226
+ .wds-Button-content--loading .wds-Button-icon {
227
+ visibility: hidden;
228
+ opacity: 0;
229
+ }
230
+ .wds-Button-label {
231
+ display: flex;
232
+ justify-content: center;
233
+ align-items: center;
234
+ position: relative;
235
+ }
236
+ .wds-Button-loader {
237
+ position: absolute;
238
+ display: flex;
239
+ justify-content: center;
240
+ align-items: center;
241
+ width: 100%;
242
+ height: 100%;
243
+ }
244
+ .wds-Button-loader .process-circle {
245
+ stroke: var(--Button-color);
246
+ }
247
+ /* RTL Styles */
248
+ [dir="rtl"] .wds-Button .tw-icon-chevron-right,[dir="rtl"] .wds-Button .tw-icon-arrow-right {
249
+ transform: rotate(180deg);
250
+ }
251
+ [dir="rtl"] .wds-Button .tw-icon-chevron-left,[dir="rtl"] .wds-Button .tw-icon-arrow-left {
252
+ transform: rotate(180deg);
253
+ }
@@ -0,0 +1,221 @@
1
+ @import './Button.vars.less';
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
+ font-weight: var(--Button-font-weight);
12
+ font-size: var(--Button-font-size);
13
+ letter-spacing: var(--Button-letter-spacing);
14
+ line-height: var(--Button-line-height);
15
+ text-align: center;
16
+ text-decoration: none;
17
+ white-space: nowrap;
18
+ word-wrap: break-word;
19
+ appearance: none;
20
+ background-color: var(--Button-background);
21
+ border: none;
22
+ border-radius: var(--Button-border-radius);
23
+ color: var(--Button-color);
24
+ cursor: pointer;
25
+ padding: var(--Button-padding);
26
+
27
+ &:focus {
28
+ text-decoration: none;
29
+ }
30
+
31
+ &:hover {
32
+ background-color: var(--Button-background-hover);
33
+ text-decoration: none;
34
+ }
35
+
36
+ &:active {
37
+ background-color: var(--Button-background-active);
38
+ text-decoration: none;
39
+ }
40
+
41
+ &:disabled {
42
+ mix-blend-mode: luminosity;
43
+ opacity: 0.45;
44
+ cursor: not-allowed;
45
+
46
+ &:hover,
47
+ &:active {
48
+ background-color: var(--Button-background);
49
+ }
50
+ }
51
+
52
+ // Priority modifiers
53
+ &--secondary {
54
+ --Button-background: var(--Button-secondary-background);
55
+ --Button-background-hover: var(--Button-secondary-hover-background);
56
+ --Button-background-active: var(--Button-secondary-active-background);
57
+ --Button-color: var(--Button-secondary-color);
58
+ }
59
+
60
+ &--tertiary {
61
+ --Button-background: var(--Button-tertiary-background);
62
+ --Button-background-hover: var(--Button-tertiary-hover-background);
63
+ --Button-background-active: var(--Button-tertiary-active-background);
64
+ --Button-color: var(--Button-tertiary-color);
65
+
66
+ .wds-Button-icon--right {
67
+ color: var(--color-interactive-primary);
68
+ }
69
+ }
70
+
71
+ &--minimal {
72
+ --Button-background: var(--Button-minimal-background);
73
+ --Button-background-hover: var(--Button-minimal-hover-background);
74
+ --Button-background-active: var(--Button-minimal-active-background);
75
+ --Button-color: var(--Button-minimal-color);
76
+
77
+ text-decoration: underline;
78
+
79
+ &:hover,
80
+ &:hover:active {
81
+ text-decoration: underline;
82
+ }
83
+ }
84
+
85
+ // Negative styles
86
+ &--negative {
87
+
88
+ &.wds-Button--primary {
89
+ --Button-background: var(--Button-primary-negative-background);
90
+ --Button-background-hover: var(--Button-primary-negative-hover-background);
91
+ --Button-background-active: var(--Button-primary-negative-active-background);
92
+ --Button-color: var(--Button-primary-negative-color);
93
+ --Button-avatar-border-color: var(--Button-primary-netative-avatar-border-color);
94
+ }
95
+
96
+ &.wds-Button--secondary {
97
+ --Button-background: var(--Button-secondary-negative-background);
98
+ --Button-background-hover: var(--Button-secondary-negative-hover-background);
99
+ --Button-background-active: var(--Button-secondary-negative-active-background);
100
+ --Button-color: var(--Button-secondary-negative-color);
101
+ --Button-avatar-border-color: var(--Button-secondary-netative-avatar-border-color);
102
+ }
103
+ }
104
+
105
+ // Size modifiers
106
+ &--small {
107
+ --Button-padding: var(--Button-size-small-padding);
108
+ --Button-line-height: 22px;
109
+ --Button-font-size: var(--font-size-14);
110
+ --Button-letter-spacing: -0.006em;
111
+
112
+ .wds-Button-icon--left {
113
+ margin-right: var(--size-4);
114
+ :dir(rtl) & {
115
+ margin-right: 0;
116
+ margin-left: var(--size-4);
117
+ }
118
+ }
119
+ }
120
+
121
+ &--medium {
122
+ --Button-padding: var(--Button-size-medium-padding);
123
+ }
124
+
125
+ &--large {
126
+ --Button-padding: var(--Button-size-large-padding);
127
+ }
128
+
129
+ // Width mofidiers
130
+ &--block {
131
+ width: 100%;
132
+ }
133
+
134
+ &-avatars {
135
+ display: inline-flex;
136
+ margin-right: 5px;
137
+ margin-left: calc(var(--size-4) * -1);
138
+
139
+ :dir(rtl) & {
140
+ margin-right: 0;
141
+ margin-left: 5px;
142
+ }
143
+
144
+ .np-circle {
145
+ --circle-border-color: var(--Button-avatar-border-color);
146
+ }
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
+ &--left {
158
+ margin-right: var(--size-8);
159
+ :dir(rtl) & {
160
+ margin-right: 0;
161
+ margin-left: var(--size-8);
162
+ }
163
+ }
164
+
165
+ &--right {
166
+ margin-left: var(--size-4);
167
+ :dir(rtl) & {
168
+ margin-left: 0;
169
+ margin-right: var(--size-4);
170
+ }
171
+ }
172
+ }
173
+
174
+ &-content {
175
+ position: relative;
176
+
177
+ &--loading {
178
+ .wds-Button-label,
179
+ .wds-Button-media,
180
+ .wds-Button-icon {
181
+ visibility: hidden;
182
+ opacity: 0;
183
+ }
184
+ }
185
+ }
186
+
187
+ &-label {
188
+ display: flex;
189
+ justify-content: center;
190
+ align-items: center;
191
+ position: relative;
192
+ }
193
+
194
+ &-loader {
195
+ position: absolute;
196
+ display: flex;
197
+ justify-content: center;
198
+ align-items: center;
199
+ width: 100%;
200
+ height: 100%;
201
+
202
+ .process-circle {
203
+ stroke: var(--Button-color);
204
+ }
205
+ }
206
+ }
207
+
208
+ /* RTL Styles */
209
+ :dir(rtl) {
210
+ .wds-Button {
211
+ .tw-icon-chevron-right,
212
+ .tw-icon-arrow-right {
213
+ transform: rotate(180deg);
214
+ }
215
+
216
+ .tw-icon-chevron-left,
217
+ .tw-icon-arrow-left {
218
+ transform: rotate(180deg);
219
+ }
220
+ }
221
+ }