@transferwise/components 0.0.0-experimental-468b85f → 0.0.0-experimental-a9e2e05

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 (153) 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 +66 -0
  22. package/build/button/src/Button.js.map +1 -0
  23. package/build/button/src/Button.mjs +64 -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/index.js +1 -1
  38. package/build/index.mjs +1 -1
  39. package/build/link/Link.js +8 -3
  40. package/build/link/Link.js.map +1 -1
  41. package/build/link/Link.mjs +8 -3
  42. package/build/link/Link.mjs.map +1 -1
  43. package/build/main.css +288 -29
  44. package/build/nudge/Nudge.js +1 -1
  45. package/build/nudge/Nudge.js.map +1 -1
  46. package/build/nudge/Nudge.mjs +1 -1
  47. package/build/nudge/Nudge.mjs.map +1 -1
  48. package/build/select/Select.js +1 -1
  49. package/build/select/Select.mjs +1 -1
  50. package/build/styles/avatarLayout/AvatarLayout.css +11 -0
  51. package/build/styles/button/Button/less/Button.css +253 -0
  52. package/build/styles/button/Button/less/Button.vars.css +57 -0
  53. package/build/styles/iconButton/IconButton.css +24 -29
  54. package/build/styles/main.css +288 -29
  55. package/build/types/avatarLayout/AvatarLayout.d.ts +1 -2
  56. package/build/types/avatarLayout/AvatarLayout.d.ts.map +1 -1
  57. package/build/types/avatarLayout/index.d.ts +1 -0
  58. package/build/types/avatarLayout/index.d.ts.map +1 -1
  59. package/build/types/button/Button/index.d.ts +3 -0
  60. package/build/types/button/Button/index.d.ts.map +1 -0
  61. package/build/types/button/Button/src/Button.d.ts +4 -0
  62. package/build/types/button/Button/src/Button.d.ts.map +1 -0
  63. package/build/types/button/Button/src/Button.types.d.ts +50 -0
  64. package/build/types/button/Button/src/Button.types.d.ts.map +1 -0
  65. package/build/types/button/Button/src/index.d.ts +2 -0
  66. package/build/types/button/Button/src/index.d.ts.map +1 -0
  67. package/build/types/button/{Button.d.ts → LegacyButton/Button.d.ts} +8 -5
  68. package/build/types/button/LegacyButton/Button.d.ts.map +1 -0
  69. package/build/types/button/LegacyButton/classMap.d.ts.map +1 -0
  70. package/build/types/button/LegacyButton/index.d.ts +3 -0
  71. package/build/types/button/LegacyButton/index.d.ts.map +1 -0
  72. package/build/types/button/LegacyButton/legacyUtils/index.d.ts.map +1 -0
  73. package/build/types/button/{legacyUtils → LegacyButton/legacyUtils}/legacyUtils.d.ts +1 -1
  74. package/build/types/button/LegacyButton/legacyUtils/legacyUtils.d.ts.map +1 -0
  75. package/build/types/button/index.d.ts +2 -2
  76. package/build/types/button/index.d.ts.map +1 -1
  77. package/build/types/button/src/Button.d.ts +47 -0
  78. package/build/types/button/src/Button.d.ts.map +1 -0
  79. package/build/types/button/src/index.d.ts +3 -0
  80. package/build/types/button/src/index.d.ts.map +1 -0
  81. package/build/types/link/Link.d.ts +2 -2
  82. package/build/types/link/Link.d.ts.map +1 -1
  83. package/build/types/test-utils/index.d.ts.map +1 -1
  84. package/build/upload/steps/completeStep/completeStep.js +1 -1
  85. package/build/upload/steps/completeStep/completeStep.mjs +1 -1
  86. package/build/upload/steps/processingStep/processingStep.js +1 -1
  87. package/build/upload/steps/processingStep/processingStep.mjs +1 -1
  88. package/build/uploadInput/UploadInput.js +1 -1
  89. package/build/uploadInput/UploadInput.mjs +1 -1
  90. package/package.json +3 -3
  91. package/src/avatarLayout/AvatarLayout.css +11 -0
  92. package/src/avatarLayout/AvatarLayout.less +18 -1
  93. package/src/avatarLayout/AvatarLayout.tsx +11 -3
  94. package/src/avatarLayout/index.ts +1 -0
  95. package/src/avatarWrapper/AvatarWrapper.story.tsx +2 -0
  96. package/src/button/Button/index.ts +2 -0
  97. package/src/button/Button/less/Button.css +253 -0
  98. package/src/button/Button/less/Button.less +221 -0
  99. package/src/button/Button/less/Button.vars.css +57 -0
  100. package/src/button/Button/less/Button.vars.less +65 -0
  101. package/src/button/Button/src/Button.tsx +116 -0
  102. package/src/button/Button/src/Button.types.ts +70 -0
  103. package/src/button/Button/src/index.ts +1 -0
  104. package/src/button/Button/stories/Button.story.tsx +314 -0
  105. package/src/button/Button/stories/Button.tests.story.tsx +288 -0
  106. package/src/button/Button/test/Button.spec.tsx +328 -0
  107. package/src/button/{Button.less → LegacyButton/Button.less} +1 -1
  108. package/src/button/{Button.spec.tsx → LegacyButton/Button.spec.tsx} +3 -3
  109. package/src/button/LegacyButton/Button.story.tsx +224 -0
  110. package/src/button/{Button.tsx → LegacyButton/Button.tsx} +14 -9
  111. package/src/button/{classMap.ts → LegacyButton/classMap.ts} +1 -1
  112. package/src/button/LegacyButton/index.ts +3 -0
  113. package/src/button/{legacyUtils → LegacyButton/legacyUtils}/legacyUtils.spec.tsx +2 -2
  114. package/src/button/{legacyUtils → LegacyButton/legacyUtils}/legacyUtils.ts +2 -2
  115. package/src/button/index.ts +2 -3
  116. package/src/button/src/Button.tsx +87 -0
  117. package/src/button/src/index.ts +2 -0
  118. package/src/button/test/Button.spec.tsx +32 -0
  119. package/src/circularButton/CircularButton.tsx +1 -1
  120. package/src/common/action/Action.tsx +1 -1
  121. package/src/iconButton/IconButton.css +24 -29
  122. package/src/iconButton/IconButton.less +4 -4
  123. package/src/link/Link.tsx +15 -6
  124. package/src/main.css +288 -29
  125. package/src/main.less +2 -1
  126. package/src/nudge/Nudge.tsx +1 -1
  127. package/src/phoneNumberInput/PhoneNumberInput.rtl.spec.tsx +32 -0
  128. package/src/phoneNumberInput/PhoneNumberInput.spec.js +356 -0
  129. package/src/primitives/PrimitiveAnchor/stories/PrimitiveAnchor.story.tsx +1 -1
  130. package/src/primitives/PrimitiveAnchor/test/PrimitiveAnchor.spec.tsx +1 -1
  131. package/src/primitives/PrimitiveButton/stories/PrimitiveButton.story.tsx +1 -1
  132. package/src/primitives/PrimitiveButton/test/PrimitiveButton.spec.tsx +2 -3
  133. package/src/test-utils/index.tsx +0 -1
  134. package/build/button/Button.js.map +0 -1
  135. package/build/button/Button.mjs.map +0 -1
  136. package/build/button/classMap.js +0 -42
  137. package/build/button/classMap.js.map +0 -1
  138. package/build/button/classMap.mjs +0 -39
  139. package/build/button/classMap.mjs.map +0 -1
  140. package/build/button/legacyUtils/legacyUtils.js.map +0 -1
  141. package/build/button/legacyUtils/legacyUtils.mjs.map +0 -1
  142. package/build/types/button/Button.d.ts.map +0 -1
  143. package/build/types/button/classMap.d.ts.map +0 -1
  144. package/build/types/button/legacyUtils/index.d.ts.map +0 -1
  145. package/build/types/button/legacyUtils/legacyUtils.d.ts.map +0 -1
  146. package/src/button/Button.story.tsx +0 -163
  147. package/src/phoneNumberInput/PhoneNumberInput.spec.tsx +0 -300
  148. /package/build/styles/button/{Button.css → LegacyButton/Button.css} +0 -0
  149. /package/build/types/button/{classMap.d.ts → LegacyButton/classMap.d.ts} +0 -0
  150. /package/build/types/button/{legacyUtils → LegacyButton/legacyUtils}/index.d.ts +0 -0
  151. /package/src/button/{Button.css → LegacyButton/Button.css} +0 -0
  152. /package/src/button/{__snapshots__ → LegacyButton/__snapshots__}/Button.spec.tsx.snap +0 -0
  153. /package/src/button/{legacyUtils → LegacyButton/legacyUtils}/index.ts +0 -0
package/src/main.css CHANGED
@@ -518,10 +518,18 @@ 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
+ }
521
525
  .np-avatar-layout-diagonal-child {
522
526
  margin-left: calc(var(--np-avatar-layout-size) - var(--np-avatar-size) * 2);
523
527
  margin-top: calc(var(--np-avatar-layout-size) - var(--np-avatar-size));
524
528
  }
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
+ }
525
533
  .np-avatar-layout-horizontal {
526
534
  width: calc(var(--np-avatar-size) * 2 - var(--np-avatar-offset) - 2px);
527
535
  height: var(--np-avatar-layout-size);
@@ -535,81 +543,79 @@ div.critical-comms .critical-comms-body {
535
543
  .np-avatar-layout-horizontal-child {
536
544
  margin-left: calc(var(--np-avatar-offset) * -1);
537
545
  }
546
+ [dir="rtl"] .np-avatar-layout-horizontal-child {
547
+ margin-right: calc(var(--np-avatar-offset) * -1);
548
+ }
538
549
  .np-icon-button {
539
550
  border: none;
540
551
  }
541
552
  .np-icon-button-tertiary-default {
542
- color: var(--color-interactive-primary);
543
- background-color: rgba(134,167,189,0.10196);
544
- background-color: var(--color-background-neutral);
553
+ --Button-color: var(--color-interactive-primary);
554
+ --Button-background: var(--color-background-neutral);
545
555
  }
546
556
  .np-icon-button-tertiary-default:not(.disabled):not(:disabled):hover {
547
- background-color: var(--color-background-neutral-hover);
557
+ --Button-background-hover: var(--color-background-neutral-hover);
548
558
  }
549
559
  .np-icon-button-tertiary-default:not(.disabled):not(:disabled):active {
550
- background-color: var(--color-background-neutral-active);
560
+ --Button-background-active: var(--color-background-neutral-active);
551
561
  }
552
562
  .np-icon-button-primary-default {
553
- color: var(--color-interactive-control);
554
- background-color: #00a2dd;
555
- background-color: var(--color-interactive-accent);
563
+ --Button-color: var(--color-interactive-control);
564
+ --Button-background: var(--color-interactive-accent);
556
565
  }
557
566
  .np-icon-button-primary-default:not(.disabled):not(:disabled):hover {
558
- background-color: #008fc9;
559
- background-color: var(--color-interactive-accent-hover);
567
+ --Button-background-hover: var(--color-interactive-accent-hover);
560
568
  }
561
569
  .np-icon-button-primary-default:not(.disabled):not(:disabled):active {
562
- background-color: #0081ba;
563
- background-color: var(--color-interactive-accent-active);
570
+ --Button-background-active: var(--color-interactive-accent-active);
564
571
  }
565
572
  .np-icon-button-primary-negative {
566
- color: var(--color-contrast-overlay);
567
- background-color: var(--color-sentiment-negative-primary);
573
+ --Button-color: var(--color-contrast-overlay);
574
+ --Button-background: var(--color-sentiment-negative-primary);
568
575
  }
569
576
  .np-icon-button-primary-negative:not(.disabled):not(:disabled):hover {
570
- background-color: var(--color-sentiment-negative-primary-hover);
577
+ --Button-background-hover: var(--color-sentiment-negative-primary-hover);
571
578
  }
572
579
  .np-icon-button-primary-negative:not(.disabled):not(:disabled):active {
573
- background-color: var(--color-sentiment-negative-primary-active);
580
+ --Button-background-active: var(--color-sentiment-negative-primary-active);
574
581
  }
575
582
  .np-theme-personal--bright-green .np-icon-button-primary-negative {
576
583
  color: var(--color-white);
577
584
  }
578
585
  .np-icon-button-minimal-default {
579
- color: var(--color-interactive-primary);
580
- background-color: #ffffff;
581
- background-color: var(--color-background-screen);
586
+ --Button-color: var(--color-interactive-primary);
587
+ --Button-background: var(--color-background-screen);
582
588
  background-color: transparent;
583
589
  }
584
590
  .np-icon-button-minimal-default:not(.disabled):not(:disabled):hover {
585
- background-color: var(--color-background-screen-hover);
591
+ --Button-background-hover: var(--color-background-screen-hover);
586
592
  }
587
593
  .np-icon-button-minimal-default:not(.disabled):not(:disabled):active {
588
- background-color: var(--color-background-screen-active);
594
+ --Button-background-active: var(--color-background-screen-active);
589
595
  }
590
596
  .np-icon-button-secondary-default {
591
- color: var(--color-interactive-primary);
592
- background-color: var(--color-interactive-neutral);
597
+ --Button-color: var(--color-interactive-primary);
598
+ --Button-background: var(--color-interactive-neutral);
593
599
  }
594
600
  .np-icon-button-secondary-default:not(.disabled):not(:disabled):hover {
595
- background-color: var(--color-interactive-neutral-hover);
601
+ --Button-background-hover: var(--color-interactive-neutral-hover);
596
602
  }
597
603
  .np-icon-button-secondary-default:not(.disabled):not(:disabled):active {
598
- background-color: var(--color-interactive-neutral-active);
604
+ --Button-background-active: var(--color-interactive-neutral-active);
599
605
  }
600
606
  .np-theme-personal--bright-green .np-icon-button-secondary-default,
601
607
  .np-theme-personal--forest-green .np-icon-button-secondary-default {
602
608
  color: var(--color-interactive-control);
603
609
  }
604
610
  .np-icon-button-secondary-negative {
605
- color: var(--color-sentiment-negative-primary);
606
- background-color: var(--color-sentiment-negative-secondary);
611
+ --Button-color: var(--color-sentiment-negative-primary);
612
+ --Button-background: var(--color-sentiment-negative-secondary);
607
613
  }
608
614
  .np-icon-button-secondary-negative:not(.disabled):not(:disabled):hover {
609
- background-color: var(--color-sentiment-negative-secondary-hover);
615
+ --Button-background-hover: var(--color-sentiment-negative-secondary-hover);
610
616
  }
611
617
  .np-icon-button-secondary-negative:not(.disabled):not(:disabled):active {
612
- background-color: var(--color-sentiment-negative-secondary-active);
618
+ --Button-background-active: var(--color-sentiment-negative-secondary-active);
613
619
  }
614
620
  .np-theme-personal--bright-green .np-icon-button-secondary-negative {
615
621
  color: var(--color-white);
@@ -705,6 +711,259 @@ div.critical-comms .critical-comms-body {
705
711
  .np-btn.disabled[class] {
706
712
  pointer-events: auto;
707
713
  }
714
+ :root {
715
+ --Button-background: var(--color-interactive-accent);
716
+ --Button-background-hover: var(--color-interactive-accent-hover);
717
+ --Button-background-active: var(--color-interactive-accent-active);
718
+ --Button-color: var(--color-interactive-control);
719
+ --Button-padding: var(--size-8) var(--size-12);
720
+ --Button-border-radius: var(--radius-full);
721
+ --Button-font-size: var(--font-size-16);
722
+ --Button-line-height: var(--size-24);
723
+ --Button-font-weight: var(--font-weight-semi-bold);
724
+ --Button-letter-spacing: -0.011em;
725
+ --Button-size-small-padding: 5px var(--size-12);
726
+ --Button-size-medium-padding: var(--size-8) var(--size-12);
727
+ --Button-size-large-padding: var(--size-12) var(--size-16);
728
+ --Button-avatar-border-color: var(--color-border-neutral);
729
+ --Button-secondary-background: var(--color-interactive-neutral);
730
+ --Button-secondary-background-hover: var(--color-interactive-neutral-hover);
731
+ --Button-secondary-background-active: var(--color-interactive-neutral-active);
732
+ --Button-secondary-color: var(--color-interactive-primary);
733
+ --Button-tertiary-background: var(--color-background-neutral);
734
+ --Button-tertiary-background-hover: var(--color-background-neutral-hover);
735
+ --Button-tertiary-background-active: var(--color-background-neutral-active);
736
+ --Button-tertiary-color: var(--color-content-primary);
737
+ --Button-minimal-background: transparent;
738
+ --Button-minimal-background-hover: var(--color-background-screen-hover);
739
+ --Button-minimal-background-active: var(--color-background-screen-active);
740
+ --Button-minimal-color: var(--color-interactive-primary);
741
+ --Button-primary-negative-background: var(--color-sentiment-negative-primary);
742
+ --Button-primary-negative-background-hover: var(--color-sentiment-negative-primary-hover);
743
+ --Button-primary-negative-background-active: var(--color-sentiment-negative-primary-active);
744
+ --Button-primary-negative-color: var(--color-contrast);
745
+ --Button-primary-netative-avatar-border-color: rgba(255,255,255,0.2);
746
+ --Button-secondary-negative-background: var(--color-sentiment-negative-secondary);
747
+ --Button-secondary-negative-background-hover: var(--color-sentiment-negative-secondary-hover);
748
+ --Button-secondary-negative-background-active: var(--color-sentiment-negative-secondary-active);
749
+ --Button-secondary-negative-color: var(--color-sentiment-negative-primary);
750
+ --Button-secondary-netative-avatar-border-color: rgba(168,32,13,0.12157);
751
+ }
752
+ .np-theme-personal--dark {
753
+ --Button-primary-netative-avatar-border-color: rgba(14,15,12,0.12157);
754
+ }
755
+ .np-theme-personal--forest-green {
756
+ --color-interactive-neutral: rgba(159,232,112,0.2);
757
+ --color-interactive-neutral-hover: rgba(205,255,173,0.2);
758
+ --color-interactive-neutral-active: rgba(236,255,224,0.2);
759
+ --color-sentiment-negative-secondary: rgba(255,196,194,0.2);
760
+ --color-sentiment-negative-secondary-hover: rgba(255,220,219,0.2);
761
+ --color-sentiment-negative-secondary-active: rgba(255,235,235,0.2);
762
+ --Button-primary-netative-avatar-border-color: rgba(14,15,12,0.12157);
763
+ --Button-secondary-netative-avatar-border-color: rgba(14,15,12,0.12157);
764
+ }
765
+ .np-theme-personal--bright-green {
766
+ --color-contrast: #FFFFFF;
767
+ --Button-secondary-color: var(--color-interactive-control);
768
+ --Button-secondary-negative-color: var(--color-contrast);
769
+ --Button-secondary-netative-avatar-border-color: var(--Button-primary-netative-avatar-border-color);
770
+ }
771
+ /* Button Styles */
772
+ .wds-Button {
773
+ display: inline-flex;
774
+ flex: none;
775
+ width: auto;
776
+ align-items: center;
777
+ justify-content: center;
778
+ vertical-align: middle;
779
+ font-weight: 600;
780
+ font-weight: var(--Button-font-weight);
781
+ font-size: 1rem;
782
+ font-size: var(--Button-font-size);
783
+ letter-spacing: -0.011em;
784
+ letter-spacing: var(--Button-letter-spacing);
785
+ line-height: 24px;
786
+ line-height: var(--Button-line-height);
787
+ text-align: center;
788
+ -webkit-text-decoration: none;
789
+ text-decoration: none;
790
+ white-space: nowrap;
791
+ word-wrap: break-word;
792
+ -webkit-appearance: none;
793
+ -moz-appearance: none;
794
+ appearance: none;
795
+ background-color: #00a2dd;
796
+ background-color: var(--Button-background);
797
+ border: none;
798
+ border-radius: 9999px;
799
+ border-radius: var(--Button-border-radius);
800
+ color: var(--Button-color);
801
+ cursor: pointer;
802
+ padding: 8px 12px;
803
+ padding: var(--Button-padding);
804
+ }
805
+ .wds-Button:focus {
806
+ -webkit-text-decoration: none;
807
+ text-decoration: none;
808
+ }
809
+ .wds-Button:hover {
810
+ background-color: #008fc9;
811
+ background-color: var(--Button-background-hover);
812
+ -webkit-text-decoration: none;
813
+ text-decoration: none;
814
+ }
815
+ .wds-Button:active {
816
+ background-color: #0081ba;
817
+ background-color: var(--Button-background-active);
818
+ -webkit-text-decoration: none;
819
+ text-decoration: none;
820
+ }
821
+ .wds-Button:disabled {
822
+ mix-blend-mode: luminosity;
823
+ opacity: 0.45;
824
+ cursor: not-allowed;
825
+ }
826
+ .wds-Button:disabled:hover,
827
+ .wds-Button:disabled:active {
828
+ background-color: #00a2dd;
829
+ background-color: var(--Button-background);
830
+ }
831
+ .wds-Button--secondary {
832
+ --Button-background: var(--Button-secondary-background);
833
+ --Button-background-hover: var(--Button-secondary-hover-background);
834
+ --Button-background-active: var(--Button-secondary-active-background);
835
+ --Button-color: var(--Button-secondary-color);
836
+ }
837
+ .wds-Button--tertiary {
838
+ --Button-background: var(--Button-tertiary-background);
839
+ --Button-background-hover: var(--Button-tertiary-hover-background);
840
+ --Button-background-active: var(--Button-tertiary-active-background);
841
+ --Button-color: var(--Button-tertiary-color);
842
+ }
843
+ .wds-Button--tertiary .wds-Button-icon--right {
844
+ color: var(--color-interactive-primary);
845
+ }
846
+ .wds-Button--minimal {
847
+ --Button-background: var(--Button-minimal-background);
848
+ --Button-background-hover: var(--Button-minimal-hover-background);
849
+ --Button-background-active: var(--Button-minimal-active-background);
850
+ --Button-color: var(--Button-minimal-color);
851
+ -webkit-text-decoration: underline;
852
+ text-decoration: underline;
853
+ }
854
+ .wds-Button--minimal:hover,
855
+ .wds-Button--minimal:hover:active {
856
+ -webkit-text-decoration: underline;
857
+ text-decoration: underline;
858
+ }
859
+ .wds-Button--negative.wds-Button--primary {
860
+ --Button-background: var(--Button-primary-negative-background);
861
+ --Button-background-hover: var(--Button-primary-negative-hover-background);
862
+ --Button-background-active: var(--Button-primary-negative-active-background);
863
+ --Button-color: var(--Button-primary-negative-color);
864
+ --Button-avatar-border-color: var(--Button-primary-netative-avatar-border-color);
865
+ }
866
+ .wds-Button--negative.wds-Button--secondary {
867
+ --Button-background: var(--Button-secondary-negative-background);
868
+ --Button-background-hover: var(--Button-secondary-negative-hover-background);
869
+ --Button-background-active: var(--Button-secondary-negative-active-background);
870
+ --Button-color: var(--Button-secondary-negative-color);
871
+ --Button-avatar-border-color: var(--Button-secondary-netative-avatar-border-color);
872
+ }
873
+ .wds-Button--small {
874
+ --Button-padding: var(--Button-size-small-padding);
875
+ --Button-line-height: 22px;
876
+ --Button-font-size: var(--font-size-14);
877
+ --Button-letter-spacing: -0.006em;
878
+ }
879
+ .wds-Button--small .wds-Button-icon--left {
880
+ margin-right: 4px;
881
+ margin-right: var(--size-4);
882
+ }
883
+ [dir="rtl"] .wds-Button--small .wds-Button-icon--left {
884
+ margin-right: 0;
885
+ margin-left: 4px;
886
+ margin-left: var(--size-4);
887
+ }
888
+ .wds-Button--medium {
889
+ --Button-padding: var(--Button-size-medium-padding);
890
+ }
891
+ .wds-Button--large {
892
+ --Button-padding: var(--Button-size-large-padding);
893
+ }
894
+ .wds-Button--block {
895
+ width: 100%;
896
+ }
897
+ .wds-Button-avatars {
898
+ display: inline-flex;
899
+ margin-right: 5px;
900
+ margin-left: calc(4px * -1);
901
+ margin-left: calc(var(--size-4) * -1);
902
+ }
903
+ [dir="rtl"] .wds-Button-avatars {
904
+ margin-right: 0;
905
+ margin-left: 5px;
906
+ }
907
+ .wds-Button-avatars .np-circle {
908
+ --circle-border-color: var(--Button-avatar-border-color);
909
+ }
910
+ .wds-Button-avatars .np-avatar-view .np-avatar-view-content {
911
+ color: var(--Button-color);
912
+ }
913
+ .wds-Button-icon {
914
+ display: inline-block;
915
+ }
916
+ .wds-Button-icon--left {
917
+ margin-right: 8px;
918
+ margin-right: var(--size-8);
919
+ }
920
+ [dir="rtl"] .wds-Button-icon--left {
921
+ margin-right: 0;
922
+ margin-left: 8px;
923
+ margin-left: var(--size-8);
924
+ }
925
+ .wds-Button-icon--right {
926
+ margin-left: 4px;
927
+ margin-left: var(--size-4);
928
+ }
929
+ [dir="rtl"] .wds-Button-icon--right {
930
+ margin-left: 0;
931
+ margin-right: 4px;
932
+ margin-right: var(--size-4);
933
+ }
934
+ .wds-Button-content {
935
+ position: relative;
936
+ }
937
+ .wds-Button-content--loading .wds-Button-label,
938
+ .wds-Button-content--loading .wds-Button-media,
939
+ .wds-Button-content--loading .wds-Button-icon {
940
+ visibility: hidden;
941
+ opacity: 0;
942
+ }
943
+ .wds-Button-label {
944
+ display: flex;
945
+ justify-content: center;
946
+ align-items: center;
947
+ position: relative;
948
+ }
949
+ .wds-Button-loader {
950
+ position: absolute;
951
+ display: flex;
952
+ justify-content: center;
953
+ align-items: center;
954
+ width: 100%;
955
+ height: 100%;
956
+ }
957
+ .wds-Button-loader .process-circle {
958
+ stroke: var(--Button-color);
959
+ }
960
+ /* RTL Styles */
961
+ [dir="rtl"] .wds-Button .tw-icon-chevron-right,[dir="rtl"] .wds-Button .tw-icon-arrow-right {
962
+ transform: rotate(180deg);
963
+ }
964
+ [dir="rtl"] .wds-Button .tw-icon-chevron-left,[dir="rtl"] .wds-Button .tw-icon-arrow-left {
965
+ transform: rotate(180deg);
966
+ }
708
967
  .np-card {
709
968
  overflow: hidden;
710
969
  transition-property: transform, box-shadow;
package/src/main.less CHANGED
@@ -7,7 +7,8 @@
7
7
  @import "./avatarLayout/AvatarLayout.less";
8
8
  @import "./iconButton/IconButton.less";
9
9
  @import "./badge/Badge.less";
10
- @import "./button/Button.less";
10
+ @import "./button/LegacyButton/Button.less";
11
+ @import "./button/Button/less/Button.less";
11
12
  @import "./card/Card.less";
12
13
  @import "./carousel/Carousel.less";
13
14
  @import "./checkboxButton/CheckboxButton.less";
@@ -154,7 +154,7 @@ const Nudge = ({
154
154
  </Body>
155
155
  {link && (
156
156
  <Link
157
- href={href}
157
+ href={href ?? '#'}
158
158
  type={Typography.LINK_LARGE}
159
159
  className="wds-nudge-link"
160
160
  onClick={onClick}
@@ -0,0 +1,32 @@
1
+ import { Field } from '../field/Field';
2
+ import { mockMatchMedia, mockResizeObserver, render, screen, within } from '../test-utils';
3
+
4
+ import PhoneNumberInput from './PhoneNumberInput';
5
+
6
+ mockMatchMedia();
7
+ mockResizeObserver();
8
+
9
+ describe('PhoneNumberInput', () => {
10
+ it('supports custom `aria-labelledby` attribute', () => {
11
+ render(
12
+ <>
13
+ {/* eslint-disable-next-line jsx-a11y/label-has-associated-control */}
14
+ <label id="prioritized-label">Prioritized label</label>
15
+ <PhoneNumberInput aria-labelledby="prioritized-label" onChange={() => {}} />
16
+ </>,
17
+ );
18
+
19
+ expect(
20
+ within(screen.getByLabelText('Prioritized label')).getByRole('textbox'),
21
+ ).toBeInTheDocument();
22
+ });
23
+
24
+ it('supports `Field` for labeling', () => {
25
+ render(
26
+ <Field label="Phone number">
27
+ <PhoneNumberInput initialValue="+12345678" onChange={() => {}} />
28
+ </Field>,
29
+ );
30
+ expect(screen.getAllByRole('group')[0]).toHaveAccessibleName(/^Phone number/);
31
+ });
32
+ });