@transferwise/components 0.0.0-experimental-4b360b4 → 0.0.0-experimental-0dd9635

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/main.css CHANGED
@@ -4640,6 +4640,104 @@ html:not([dir="rtl"]) .np-navigation-option {
4640
4640
  .np-theme-personal .np-dropdown-menu .np-dropdown-item--focused {
4641
4641
  box-shadow: inset 0 0 0 2px var(--color-interactive-primary);
4642
4642
  }
4643
+ .segmented-control {
4644
+ box-sizing: border-box;
4645
+ --segment-highlight-width: 0;
4646
+ --segment-highlight-x: var(--size-4);
4647
+ }
4648
+ .segmented-control__segments {
4649
+ display: inline-flex;
4650
+ position: relative;
4651
+ justify-content: center;
4652
+ align-items: center;
4653
+ background: rgba(134,167,189,0.10196);
4654
+ background: var(--color-background-neutral);
4655
+ padding: 4px;
4656
+ padding: var(--size-4);
4657
+ border-radius: 24px;
4658
+ border-radius: var(--size-24);
4659
+ width: 100%;
4660
+ transition: outline 300ms;
4661
+ outline: 2px solid transparent;
4662
+ }
4663
+ .segmented-control--input:has(:focus-visible) > .segmented-control__segments::after {
4664
+ outline: 2px solid var(--color-interactive-primary);
4665
+ }
4666
+ .segmented-control__segments::after {
4667
+ content: "";
4668
+ background: #ffffff;
4669
+ background: var(--color-background-screen);
4670
+ width: var(--segment-highlight-width);
4671
+ position: absolute;
4672
+ top: 4px;
4673
+ top: var(--size-4);
4674
+ bottom: 4px;
4675
+ bottom: var(--size-4);
4676
+ left: var(--segment-highlight-x);
4677
+ z-index: 0;
4678
+ border-radius: 24px;
4679
+ border-radius: var(--size-24);
4680
+ transition: left 300ms;
4681
+ }
4682
+ .segmented-control__segments--no-animate::after {
4683
+ transition: none !important;
4684
+ }
4685
+ .segmented-control__segment {
4686
+ position: relative;
4687
+ flex: 1 1 100%;
4688
+ flex-flow: column;
4689
+ min-width: 0;
4690
+ align-items: center;
4691
+ text-align: center;
4692
+ vertical-align: middle;
4693
+ padding: 8px 16px;
4694
+ padding: var(--size-8) var(--size-16);
4695
+ margin: 0;
4696
+ border-radius: 24px;
4697
+ border-radius: var(--size-24);
4698
+ z-index: 1;
4699
+ cursor: pointer;
4700
+ transition: font-weight 300ms, background 300ms;
4701
+ }
4702
+ .segmented-control__segment:hover {
4703
+ background: rgba(0,0,0,0.10196);
4704
+ background: var(--color-background-overlay);
4705
+ }
4706
+ .segmented-control__radio-input {
4707
+ position: fixed;
4708
+ opacity: 0;
4709
+ pointer-events: none;
4710
+ }
4711
+ .segmented-control__button {
4712
+ background: none;
4713
+ -webkit-appearance: none;
4714
+ -moz-appearance: none;
4715
+ appearance: none;
4716
+ border: none;
4717
+ outline: none;
4718
+ width: 100%;
4719
+ height: 100%;
4720
+ font: inherit;
4721
+ padding: none;
4722
+ outline: 2px solid transparent;
4723
+ }
4724
+ .segmented-control__button:focus {
4725
+ outline-offset: 0px;
4726
+ }
4727
+ .segmented-control__button:focus-visible {
4728
+ outline-color: var(--color-interactive-primary);
4729
+ }
4730
+ .segmented-control__selected-segment:hover {
4731
+ background: transparent;
4732
+ }
4733
+ .segmented-control__selected-segment {
4734
+ font-weight: 800;
4735
+ font-weight: var(--font-weight-bold);
4736
+ }
4737
+ .segmented-control__label-text {
4738
+ word-wrap: break-word;
4739
+ color: var(--color-interactive-primary);
4740
+ }
4643
4741
  .np-summary {
4644
4742
  min-width: 280px;
4645
4743
  }
@@ -4640,6 +4640,104 @@ html:not([dir="rtl"]) .np-navigation-option {
4640
4640
  .np-theme-personal .np-dropdown-menu .np-dropdown-item--focused {
4641
4641
  box-shadow: inset 0 0 0 2px var(--color-interactive-primary);
4642
4642
  }
4643
+ .segmented-control {
4644
+ box-sizing: border-box;
4645
+ --segment-highlight-width: 0;
4646
+ --segment-highlight-x: var(--size-4);
4647
+ }
4648
+ .segmented-control__segments {
4649
+ display: inline-flex;
4650
+ position: relative;
4651
+ justify-content: center;
4652
+ align-items: center;
4653
+ background: rgba(134,167,189,0.10196);
4654
+ background: var(--color-background-neutral);
4655
+ padding: 4px;
4656
+ padding: var(--size-4);
4657
+ border-radius: 24px;
4658
+ border-radius: var(--size-24);
4659
+ width: 100%;
4660
+ transition: outline 300ms;
4661
+ outline: 2px solid transparent;
4662
+ }
4663
+ .segmented-control--input:has(:focus-visible) > .segmented-control__segments::after {
4664
+ outline: 2px solid var(--color-interactive-primary);
4665
+ }
4666
+ .segmented-control__segments::after {
4667
+ content: "";
4668
+ background: #ffffff;
4669
+ background: var(--color-background-screen);
4670
+ width: var(--segment-highlight-width);
4671
+ position: absolute;
4672
+ top: 4px;
4673
+ top: var(--size-4);
4674
+ bottom: 4px;
4675
+ bottom: var(--size-4);
4676
+ left: var(--segment-highlight-x);
4677
+ z-index: 0;
4678
+ border-radius: 24px;
4679
+ border-radius: var(--size-24);
4680
+ transition: left 300ms;
4681
+ }
4682
+ .segmented-control__segments--no-animate::after {
4683
+ transition: none !important;
4684
+ }
4685
+ .segmented-control__segment {
4686
+ position: relative;
4687
+ flex: 1 1 100%;
4688
+ flex-flow: column;
4689
+ min-width: 0;
4690
+ align-items: center;
4691
+ text-align: center;
4692
+ vertical-align: middle;
4693
+ padding: 8px 16px;
4694
+ padding: var(--size-8) var(--size-16);
4695
+ margin: 0;
4696
+ border-radius: 24px;
4697
+ border-radius: var(--size-24);
4698
+ z-index: 1;
4699
+ cursor: pointer;
4700
+ transition: font-weight 300ms, background 300ms;
4701
+ }
4702
+ .segmented-control__segment:hover {
4703
+ background: rgba(0,0,0,0.10196);
4704
+ background: var(--color-background-overlay);
4705
+ }
4706
+ .segmented-control__radio-input {
4707
+ position: fixed;
4708
+ opacity: 0;
4709
+ pointer-events: none;
4710
+ }
4711
+ .segmented-control__button {
4712
+ background: none;
4713
+ -webkit-appearance: none;
4714
+ -moz-appearance: none;
4715
+ appearance: none;
4716
+ border: none;
4717
+ outline: none;
4718
+ width: 100%;
4719
+ height: 100%;
4720
+ font: inherit;
4721
+ padding: none;
4722
+ outline: 2px solid transparent;
4723
+ }
4724
+ .segmented-control__button:focus {
4725
+ outline-offset: 0px;
4726
+ }
4727
+ .segmented-control__button:focus-visible {
4728
+ outline-color: var(--color-interactive-primary);
4729
+ }
4730
+ .segmented-control__selected-segment:hover {
4731
+ background: transparent;
4732
+ }
4733
+ .segmented-control__selected-segment {
4734
+ font-weight: 800;
4735
+ font-weight: var(--font-weight-bold);
4736
+ }
4737
+ .segmented-control__label-text {
4738
+ word-wrap: break-word;
4739
+ color: var(--color-interactive-primary);
4740
+ }
4643
4741
  .np-summary {
4644
4742
  min-width: 280px;
4645
4743
  }
@@ -0,0 +1,98 @@
1
+ .segmented-control {
2
+ box-sizing: border-box;
3
+ --segment-highlight-width: 0;
4
+ --segment-highlight-x: var(--size-4);
5
+ }
6
+ .segmented-control__segments {
7
+ display: inline-flex;
8
+ position: relative;
9
+ justify-content: center;
10
+ align-items: center;
11
+ background: rgba(134,167,189,0.10196);
12
+ background: var(--color-background-neutral);
13
+ padding: 4px;
14
+ padding: var(--size-4);
15
+ border-radius: 24px;
16
+ border-radius: var(--size-24);
17
+ width: 100%;
18
+ transition: outline 300ms;
19
+ outline: 2px solid transparent;
20
+ }
21
+ .segmented-control--input:has(:focus-visible) > .segmented-control__segments::after {
22
+ outline: 2px solid var(--color-interactive-primary);
23
+ }
24
+ .segmented-control__segments::after {
25
+ content: "";
26
+ background: #ffffff;
27
+ background: var(--color-background-screen);
28
+ width: var(--segment-highlight-width);
29
+ position: absolute;
30
+ top: 4px;
31
+ top: var(--size-4);
32
+ bottom: 4px;
33
+ bottom: var(--size-4);
34
+ left: var(--segment-highlight-x);
35
+ z-index: 0;
36
+ border-radius: 24px;
37
+ border-radius: var(--size-24);
38
+ transition: left 300ms;
39
+ }
40
+ .segmented-control__segments--no-animate::after {
41
+ transition: none !important;
42
+ }
43
+ .segmented-control__segment {
44
+ position: relative;
45
+ flex: 1 1 100%;
46
+ flex-flow: column;
47
+ min-width: 0;
48
+ align-items: center;
49
+ text-align: center;
50
+ vertical-align: middle;
51
+ padding: 8px 16px;
52
+ padding: var(--size-8) var(--size-16);
53
+ margin: 0;
54
+ border-radius: 24px;
55
+ border-radius: var(--size-24);
56
+ z-index: 1;
57
+ cursor: pointer;
58
+ transition: font-weight 300ms, background 300ms;
59
+ }
60
+ .segmented-control__segment:hover {
61
+ background: rgba(0,0,0,0.10196);
62
+ background: var(--color-background-overlay);
63
+ }
64
+ .segmented-control__radio-input {
65
+ position: fixed;
66
+ opacity: 0;
67
+ pointer-events: none;
68
+ }
69
+ .segmented-control__button {
70
+ background: none;
71
+ -webkit-appearance: none;
72
+ -moz-appearance: none;
73
+ appearance: none;
74
+ border: none;
75
+ outline: none;
76
+ width: 100%;
77
+ height: 100%;
78
+ font: inherit;
79
+ padding: none;
80
+ outline: 2px solid transparent;
81
+ }
82
+ .segmented-control__button:focus {
83
+ outline-offset: 0px;
84
+ }
85
+ .segmented-control__button:focus-visible {
86
+ outline-color: var(--color-interactive-primary);
87
+ }
88
+ .segmented-control__selected-segment:hover {
89
+ background: transparent;
90
+ }
91
+ .segmented-control__selected-segment {
92
+ font-weight: 800;
93
+ font-weight: var(--font-weight-bold);
94
+ }
95
+ .segmented-control__label-text {
96
+ word-wrap: break-word;
97
+ color: var(--color-interactive-primary);
98
+ }
@@ -81,6 +81,7 @@ export { default as RadioGroup } from './radioGroup';
81
81
  export { default as RadioOption } from './radioOption';
82
82
  export { default as Section } from './section';
83
83
  export { default as Select } from './select';
84
+ export { default as SegmentedControl } from './segmentedControl';
84
85
  export { default as SlidingPanel } from './slidingPanel';
85
86
  export { default as SnackbarPortal } from './snackbar/Snackbar';
86
87
  export { default as SnackbarProvider } from './snackbar/SnackbarProvider';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,6BAA6B,EAC7B,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAClF,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrF,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,eAAe,EACf,eAAe,EACf,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,GACb,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D;;GAEG;AACH,OAAO,EACL,SAAS,EACT,IAAI,EACJ,KAAK,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAM,EACN,WAAW,EACX,UAAU,EACV,MAAM,EACN,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,OAAO,GACR,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC;;GAEG;AACH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /// <reference types="react" />
2
+ type SegmentBase = {
3
+ id: string;
4
+ label: string;
5
+ value: string;
6
+ };
7
+ type Segment = SegmentBase & {
8
+ controls?: never;
9
+ };
10
+ type SegmentWithControls = SegmentBase & {
11
+ controls: string;
12
+ };
13
+ export type Segments = Segment[] | SegmentWithControls[];
14
+ type SegmentedControlPropsBase = {
15
+ name: string;
16
+ defaultValue: string;
17
+ mode: 'input' | 'view';
18
+ onChange: (value: string) => void;
19
+ };
20
+ type SegmentedControlViewProps = {
21
+ mode: 'view';
22
+ segments: SegmentWithControls[];
23
+ };
24
+ type SegmentedControlInputProps = {
25
+ mode: 'input';
26
+ segments: Segment[];
27
+ };
28
+ export type SegmentedControlProps = SegmentedControlPropsBase & (SegmentedControlViewProps | SegmentedControlInputProps);
29
+ declare const SegmentedControl: ({ name, defaultValue, mode, segments, onChange, }: SegmentedControlProps) => import("react").JSX.Element;
30
+ export default SegmentedControl;
31
+ //# sourceMappingURL=SegmentedControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../../src/segmentedControl/SegmentedControl.tsx"],"names":[],"mappings":";AAGA,KAAK,WAAW,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE,KAAK,OAAO,GAAG,WAAW,GAAG;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAClD,KAAK,mBAAmB,GAAG,WAAW,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,QAAQ,GAAG,OAAO,EAAE,GAAG,mBAAmB,EAAE,CAAC;AAEzD,KAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,yBAAyB,GAC3D,CAAC,yBAAyB,GAAG,0BAA0B,CAAC,CAAC;AAE3D,QAAA,MAAM,gBAAgB,sDAMnB,qBAAqB,gCA+GvB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './SegmentedControl';
2
+ export { default } from './SegmentedControl';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/segmentedControl/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@transferwise/components",
3
- "version": "0.0.0-experimental-4b360b4",
3
+ "version": "0.0.0-experimental-0dd9635",
4
4
  "description": "Neptune React components",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
package/src/index.ts CHANGED
@@ -106,6 +106,7 @@ export { default as RadioGroup } from './radioGroup';
106
106
  export { default as RadioOption } from './radioOption';
107
107
  export { default as Section } from './section';
108
108
  export { default as Select } from './select';
109
+ export { default as SegmentedControl } from './segmentedControl';
109
110
  export { default as SlidingPanel } from './slidingPanel';
110
111
  export { default as SnackbarPortal } from './snackbar/Snackbar';
111
112
  export { default as SnackbarProvider } from './snackbar/SnackbarProvider';
package/src/main.css CHANGED
@@ -4640,6 +4640,104 @@ html:not([dir="rtl"]) .np-navigation-option {
4640
4640
  .np-theme-personal .np-dropdown-menu .np-dropdown-item--focused {
4641
4641
  box-shadow: inset 0 0 0 2px var(--color-interactive-primary);
4642
4642
  }
4643
+ .segmented-control {
4644
+ box-sizing: border-box;
4645
+ --segment-highlight-width: 0;
4646
+ --segment-highlight-x: var(--size-4);
4647
+ }
4648
+ .segmented-control__segments {
4649
+ display: inline-flex;
4650
+ position: relative;
4651
+ justify-content: center;
4652
+ align-items: center;
4653
+ background: rgba(134,167,189,0.10196);
4654
+ background: var(--color-background-neutral);
4655
+ padding: 4px;
4656
+ padding: var(--size-4);
4657
+ border-radius: 24px;
4658
+ border-radius: var(--size-24);
4659
+ width: 100%;
4660
+ transition: outline 300ms;
4661
+ outline: 2px solid transparent;
4662
+ }
4663
+ .segmented-control--input:has(:focus-visible) > .segmented-control__segments::after {
4664
+ outline: 2px solid var(--color-interactive-primary);
4665
+ }
4666
+ .segmented-control__segments::after {
4667
+ content: "";
4668
+ background: #ffffff;
4669
+ background: var(--color-background-screen);
4670
+ width: var(--segment-highlight-width);
4671
+ position: absolute;
4672
+ top: 4px;
4673
+ top: var(--size-4);
4674
+ bottom: 4px;
4675
+ bottom: var(--size-4);
4676
+ left: var(--segment-highlight-x);
4677
+ z-index: 0;
4678
+ border-radius: 24px;
4679
+ border-radius: var(--size-24);
4680
+ transition: left 300ms;
4681
+ }
4682
+ .segmented-control__segments--no-animate::after {
4683
+ transition: none !important;
4684
+ }
4685
+ .segmented-control__segment {
4686
+ position: relative;
4687
+ flex: 1 1 100%;
4688
+ flex-flow: column;
4689
+ min-width: 0;
4690
+ align-items: center;
4691
+ text-align: center;
4692
+ vertical-align: middle;
4693
+ padding: 8px 16px;
4694
+ padding: var(--size-8) var(--size-16);
4695
+ margin: 0;
4696
+ border-radius: 24px;
4697
+ border-radius: var(--size-24);
4698
+ z-index: 1;
4699
+ cursor: pointer;
4700
+ transition: font-weight 300ms, background 300ms;
4701
+ }
4702
+ .segmented-control__segment:hover {
4703
+ background: rgba(0,0,0,0.10196);
4704
+ background: var(--color-background-overlay);
4705
+ }
4706
+ .segmented-control__radio-input {
4707
+ position: fixed;
4708
+ opacity: 0;
4709
+ pointer-events: none;
4710
+ }
4711
+ .segmented-control__button {
4712
+ background: none;
4713
+ -webkit-appearance: none;
4714
+ -moz-appearance: none;
4715
+ appearance: none;
4716
+ border: none;
4717
+ outline: none;
4718
+ width: 100%;
4719
+ height: 100%;
4720
+ font: inherit;
4721
+ padding: none;
4722
+ outline: 2px solid transparent;
4723
+ }
4724
+ .segmented-control__button:focus {
4725
+ outline-offset: 0px;
4726
+ }
4727
+ .segmented-control__button:focus-visible {
4728
+ outline-color: var(--color-interactive-primary);
4729
+ }
4730
+ .segmented-control__selected-segment:hover {
4731
+ background: transparent;
4732
+ }
4733
+ .segmented-control__selected-segment {
4734
+ font-weight: 800;
4735
+ font-weight: var(--font-weight-bold);
4736
+ }
4737
+ .segmented-control__label-text {
4738
+ word-wrap: break-word;
4739
+ color: var(--color-interactive-primary);
4740
+ }
4643
4741
  .np-summary {
4644
4742
  min-width: 280px;
4645
4743
  }
package/src/main.less CHANGED
@@ -53,6 +53,7 @@
53
53
  @import "./statusIcon/StatusIcon.less";
54
54
  @import "./stepper/Stepper.less";
55
55
  @import "./select/Select.less";
56
+ @import "./segmentedControl/SegmentedControl.less";
56
57
  @import "./summary/Summary.less";
57
58
  @import "./switch/Switch.less";
58
59
  @import "./tabs/Tabs.less";
@@ -0,0 +1,98 @@
1
+ .segmented-control {
2
+ box-sizing: border-box;
3
+ --segment-highlight-width: 0;
4
+ --segment-highlight-x: var(--size-4);
5
+ }
6
+ .segmented-control__segments {
7
+ display: inline-flex;
8
+ position: relative;
9
+ justify-content: center;
10
+ align-items: center;
11
+ background: rgba(134,167,189,0.10196);
12
+ background: var(--color-background-neutral);
13
+ padding: 4px;
14
+ padding: var(--size-4);
15
+ border-radius: 24px;
16
+ border-radius: var(--size-24);
17
+ width: 100%;
18
+ transition: outline 300ms;
19
+ outline: 2px solid transparent;
20
+ }
21
+ .segmented-control--input:has(:focus-visible) > .segmented-control__segments::after {
22
+ outline: 2px solid var(--color-interactive-primary);
23
+ }
24
+ .segmented-control__segments::after {
25
+ content: "";
26
+ background: #ffffff;
27
+ background: var(--color-background-screen);
28
+ width: var(--segment-highlight-width);
29
+ position: absolute;
30
+ top: 4px;
31
+ top: var(--size-4);
32
+ bottom: 4px;
33
+ bottom: var(--size-4);
34
+ left: var(--segment-highlight-x);
35
+ z-index: 0;
36
+ border-radius: 24px;
37
+ border-radius: var(--size-24);
38
+ transition: left 300ms;
39
+ }
40
+ .segmented-control__segments--no-animate::after {
41
+ transition: none !important;
42
+ }
43
+ .segmented-control__segment {
44
+ position: relative;
45
+ flex: 1 1 100%;
46
+ flex-flow: column;
47
+ min-width: 0;
48
+ align-items: center;
49
+ text-align: center;
50
+ vertical-align: middle;
51
+ padding: 8px 16px;
52
+ padding: var(--size-8) var(--size-16);
53
+ margin: 0;
54
+ border-radius: 24px;
55
+ border-radius: var(--size-24);
56
+ z-index: 1;
57
+ cursor: pointer;
58
+ transition: font-weight 300ms, background 300ms;
59
+ }
60
+ .segmented-control__segment:hover {
61
+ background: rgba(0,0,0,0.10196);
62
+ background: var(--color-background-overlay);
63
+ }
64
+ .segmented-control__radio-input {
65
+ position: fixed;
66
+ opacity: 0;
67
+ pointer-events: none;
68
+ }
69
+ .segmented-control__button {
70
+ background: none;
71
+ -webkit-appearance: none;
72
+ -moz-appearance: none;
73
+ appearance: none;
74
+ border: none;
75
+ outline: none;
76
+ width: 100%;
77
+ height: 100%;
78
+ font: inherit;
79
+ padding: none;
80
+ outline: 2px solid transparent;
81
+ }
82
+ .segmented-control__button:focus {
83
+ outline-offset: 0px;
84
+ }
85
+ .segmented-control__button:focus-visible {
86
+ outline-color: var(--color-interactive-primary);
87
+ }
88
+ .segmented-control__selected-segment:hover {
89
+ background: transparent;
90
+ }
91
+ .segmented-control__selected-segment {
92
+ font-weight: 800;
93
+ font-weight: var(--font-weight-bold);
94
+ }
95
+ .segmented-control__label-text {
96
+ word-wrap: break-word;
97
+ color: var(--color-interactive-primary);
98
+ }