@transferwise/components 0.0.0-experimental-203b95e → 0.0.0-experimental-cc6f9e9

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
@@ -4629,6 +4629,108 @@ html:not([dir="rtl"]) .np-navigation-option {
4629
4629
  .np-theme-personal .np-dropdown-menu .np-dropdown-item--focused {
4630
4630
  box-shadow: inset 0 0 0 2px var(--color-interactive-primary);
4631
4631
  }
4632
+ .segmented-control {
4633
+ box-sizing: border-box;
4634
+ --segment-highlight-width: 0;
4635
+ --segment-highlight-x: var(--size-4);
4636
+ }
4637
+ .segmented-control__segments {
4638
+ display: inline-flex;
4639
+ position: relative;
4640
+ justify-content: center;
4641
+ align-items: center;
4642
+ background: rgba(134,167,189,0.10196);
4643
+ background: var(--color-background-neutral);
4644
+ padding: 4px;
4645
+ padding: var(--size-4);
4646
+ border-radius: 24px;
4647
+ border-radius: var(--size-24);
4648
+ width: 100%;
4649
+ transition: outline 300ms;
4650
+ outline: 2px solid transparent;
4651
+ }
4652
+ .segmented-control--input:has(:focus-visible) > .segmented-control__segments::after {
4653
+ outline: 2px solid var(--color-interactive-primary);
4654
+ }
4655
+ .segmented-control__segments::after {
4656
+ content: "";
4657
+ background: #ffffff;
4658
+ background: var(--color-background-screen);
4659
+ width: var(--segment-highlight-width);
4660
+ position: absolute;
4661
+ top: 4px;
4662
+ top: var(--size-4);
4663
+ bottom: 4px;
4664
+ bottom: var(--size-4);
4665
+ left: var(--segment-highlight-x);
4666
+ z-index: 0;
4667
+ border-radius: 24px;
4668
+ border-radius: var(--size-24);
4669
+ transition: left 300ms;
4670
+ }
4671
+ .segmented-control__segments--no-animate::after {
4672
+ transition: none !important;
4673
+ }
4674
+ .segmented-control__segment {
4675
+ position: relative;
4676
+ flex: 1 1 100%;
4677
+ flex-flow: column;
4678
+ min-width: 0;
4679
+ align-items: center;
4680
+ text-align: center;
4681
+ vertical-align: middle;
4682
+ padding: 8px 16px;
4683
+ padding: var(--size-8) var(--size-16);
4684
+ margin: 0 0 0 4px;
4685
+ margin: 0 0 0 var(--size-4);
4686
+ border-radius: 24px;
4687
+ border-radius: var(--size-24);
4688
+ z-index: 1;
4689
+ cursor: pointer;
4690
+ transition: font-weight 300ms, background 300ms;
4691
+ }
4692
+ .segmented-control__segment:first-child {
4693
+ margin-left: 0;
4694
+ }
4695
+ .segmented-control__segment:hover {
4696
+ background: rgba(0,0,0,0.10196);
4697
+ background: var(--color-background-overlay);
4698
+ }
4699
+ .segmented-control__radio-input {
4700
+ position: fixed;
4701
+ opacity: 0;
4702
+ pointer-events: none;
4703
+ }
4704
+ .segmented-control__button {
4705
+ background: none;
4706
+ -webkit-appearance: none;
4707
+ -moz-appearance: none;
4708
+ appearance: none;
4709
+ border: none;
4710
+ outline: none;
4711
+ width: 100%;
4712
+ height: 100%;
4713
+ font: inherit;
4714
+ padding: none;
4715
+ outline: 2px solid transparent;
4716
+ }
4717
+ .segmented-control__button:focus {
4718
+ outline-offset: 0px;
4719
+ }
4720
+ .segmented-control__button:focus-visible {
4721
+ outline-color: var(--color-interactive-primary);
4722
+ }
4723
+ .segmented-control__selected-segment:hover {
4724
+ background: transparent;
4725
+ }
4726
+ .segmented-control__selected-segment {
4727
+ font-weight: 800;
4728
+ font-weight: var(--font-weight-bold);
4729
+ }
4730
+ .segmented-control__label-text {
4731
+ word-wrap: break-word;
4732
+ color: var(--color-interactive-primary);
4733
+ }
4632
4734
  .np-summary {
4633
4735
  min-width: 280px;
4634
4736
  }
@@ -4629,6 +4629,108 @@ html:not([dir="rtl"]) .np-navigation-option {
4629
4629
  .np-theme-personal .np-dropdown-menu .np-dropdown-item--focused {
4630
4630
  box-shadow: inset 0 0 0 2px var(--color-interactive-primary);
4631
4631
  }
4632
+ .segmented-control {
4633
+ box-sizing: border-box;
4634
+ --segment-highlight-width: 0;
4635
+ --segment-highlight-x: var(--size-4);
4636
+ }
4637
+ .segmented-control__segments {
4638
+ display: inline-flex;
4639
+ position: relative;
4640
+ justify-content: center;
4641
+ align-items: center;
4642
+ background: rgba(134,167,189,0.10196);
4643
+ background: var(--color-background-neutral);
4644
+ padding: 4px;
4645
+ padding: var(--size-4);
4646
+ border-radius: 24px;
4647
+ border-radius: var(--size-24);
4648
+ width: 100%;
4649
+ transition: outline 300ms;
4650
+ outline: 2px solid transparent;
4651
+ }
4652
+ .segmented-control--input:has(:focus-visible) > .segmented-control__segments::after {
4653
+ outline: 2px solid var(--color-interactive-primary);
4654
+ }
4655
+ .segmented-control__segments::after {
4656
+ content: "";
4657
+ background: #ffffff;
4658
+ background: var(--color-background-screen);
4659
+ width: var(--segment-highlight-width);
4660
+ position: absolute;
4661
+ top: 4px;
4662
+ top: var(--size-4);
4663
+ bottom: 4px;
4664
+ bottom: var(--size-4);
4665
+ left: var(--segment-highlight-x);
4666
+ z-index: 0;
4667
+ border-radius: 24px;
4668
+ border-radius: var(--size-24);
4669
+ transition: left 300ms;
4670
+ }
4671
+ .segmented-control__segments--no-animate::after {
4672
+ transition: none !important;
4673
+ }
4674
+ .segmented-control__segment {
4675
+ position: relative;
4676
+ flex: 1 1 100%;
4677
+ flex-flow: column;
4678
+ min-width: 0;
4679
+ align-items: center;
4680
+ text-align: center;
4681
+ vertical-align: middle;
4682
+ padding: 8px 16px;
4683
+ padding: var(--size-8) var(--size-16);
4684
+ margin: 0 0 0 4px;
4685
+ margin: 0 0 0 var(--size-4);
4686
+ border-radius: 24px;
4687
+ border-radius: var(--size-24);
4688
+ z-index: 1;
4689
+ cursor: pointer;
4690
+ transition: font-weight 300ms, background 300ms;
4691
+ }
4692
+ .segmented-control__segment:first-child {
4693
+ margin-left: 0;
4694
+ }
4695
+ .segmented-control__segment:hover {
4696
+ background: rgba(0,0,0,0.10196);
4697
+ background: var(--color-background-overlay);
4698
+ }
4699
+ .segmented-control__radio-input {
4700
+ position: fixed;
4701
+ opacity: 0;
4702
+ pointer-events: none;
4703
+ }
4704
+ .segmented-control__button {
4705
+ background: none;
4706
+ -webkit-appearance: none;
4707
+ -moz-appearance: none;
4708
+ appearance: none;
4709
+ border: none;
4710
+ outline: none;
4711
+ width: 100%;
4712
+ height: 100%;
4713
+ font: inherit;
4714
+ padding: none;
4715
+ outline: 2px solid transparent;
4716
+ }
4717
+ .segmented-control__button:focus {
4718
+ outline-offset: 0px;
4719
+ }
4720
+ .segmented-control__button:focus-visible {
4721
+ outline-color: var(--color-interactive-primary);
4722
+ }
4723
+ .segmented-control__selected-segment:hover {
4724
+ background: transparent;
4725
+ }
4726
+ .segmented-control__selected-segment {
4727
+ font-weight: 800;
4728
+ font-weight: var(--font-weight-bold);
4729
+ }
4730
+ .segmented-control__label-text {
4731
+ word-wrap: break-word;
4732
+ color: var(--color-interactive-primary);
4733
+ }
4632
4734
  .np-summary {
4633
4735
  min-width: 280px;
4634
4736
  }
@@ -0,0 +1,102 @@
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 0 0 4px;
54
+ margin: 0 0 0 var(--size-4);
55
+ border-radius: 24px;
56
+ border-radius: var(--size-24);
57
+ z-index: 1;
58
+ cursor: pointer;
59
+ transition: font-weight 300ms, background 300ms;
60
+ }
61
+ .segmented-control__segment:first-child {
62
+ margin-left: 0;
63
+ }
64
+ .segmented-control__segment:hover {
65
+ background: rgba(0,0,0,0.10196);
66
+ background: var(--color-background-overlay);
67
+ }
68
+ .segmented-control__radio-input {
69
+ position: fixed;
70
+ opacity: 0;
71
+ pointer-events: none;
72
+ }
73
+ .segmented-control__button {
74
+ background: none;
75
+ -webkit-appearance: none;
76
+ -moz-appearance: none;
77
+ appearance: none;
78
+ border: none;
79
+ outline: none;
80
+ width: 100%;
81
+ height: 100%;
82
+ font: inherit;
83
+ padding: none;
84
+ outline: 2px solid transparent;
85
+ }
86
+ .segmented-control__button:focus {
87
+ outline-offset: 0px;
88
+ }
89
+ .segmented-control__button:focus-visible {
90
+ outline-color: var(--color-interactive-primary);
91
+ }
92
+ .segmented-control__selected-segment:hover {
93
+ background: transparent;
94
+ }
95
+ .segmented-control__selected-segment {
96
+ font-weight: 800;
97
+ font-weight: var(--font-weight-bold);
98
+ }
99
+ .segmented-control__label-text {
100
+ word-wrap: break-word;
101
+ color: var(--color-interactive-primary);
102
+ }
@@ -82,6 +82,7 @@ export { default as RadioGroup } from './radioGroup';
82
82
  export { default as RadioOption } from './radioOption';
83
83
  export { default as Section } from './section';
84
84
  export { default as Select } from './select';
85
+ export { default as SegmentedControl } from './segmentedControl';
85
86
  export { default as SlidingPanel } from './slidingPanel';
86
87
  export { default as SnackbarPortal } from './snackbar/Snackbar';
87
88
  export { default as SnackbarProvider } from './snackbar/SnackbarProvider';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
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,gCAiHvB,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-203b95e",
3
+ "version": "0.0.0-experimental-cc6f9e9",
4
4
  "description": "Neptune React components",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -53,7 +53,7 @@
53
53
  "@testing-library/react-hooks": "^8.0.0",
54
54
  "@testing-library/user-event": "^13.2.1",
55
55
  "@transferwise/icons": "^3.7.0",
56
- "@transferwise/neptune-tokens": "^8.8.1",
56
+ "@transferwise/neptune-tokens": "^8.8.0",
57
57
  "@tsconfig/recommended": "^1.0.2",
58
58
  "@types/babel__core": "^7.20.1",
59
59
  "@types/jest": "^26.0.20",
@@ -77,12 +77,12 @@
77
77
  "rollup": "^3.28.1",
78
78
  "storybook": "^7.4.5",
79
79
  "@transferwise/less-config": "3.1.0",
80
- "@transferwise/neptune-css": "0.0.0-experimental-203b95e",
80
+ "@transferwise/neptune-css": "14.9.4",
81
81
  "@wise/components-theming": "0.8.4"
82
82
  },
83
83
  "peerDependencies": {
84
84
  "@transferwise/icons": "^3.7.0",
85
- "@transferwise/neptune-css": "0.0.0-experimental-203b95e",
85
+ "@transferwise/neptune-css": "^14.9.4",
86
86
  "@wise/art": "^2.7.0",
87
87
  "@wise/components-theming": "^0.8.4",
88
88
  "react": ">=16.14",
package/src/index.ts CHANGED
@@ -107,6 +107,7 @@ export { default as RadioGroup } from './radioGroup';
107
107
  export { default as RadioOption } from './radioOption';
108
108
  export { default as Section } from './section';
109
109
  export { default as Select } from './select';
110
+ export { default as SegmentedControl } from './segmentedControl';
110
111
  export { default as SlidingPanel } from './slidingPanel';
111
112
  export { default as SnackbarPortal } from './snackbar/Snackbar';
112
113
  export { default as SnackbarProvider } from './snackbar/SnackbarProvider';
package/src/main.css CHANGED
@@ -4629,6 +4629,108 @@ html:not([dir="rtl"]) .np-navigation-option {
4629
4629
  .np-theme-personal .np-dropdown-menu .np-dropdown-item--focused {
4630
4630
  box-shadow: inset 0 0 0 2px var(--color-interactive-primary);
4631
4631
  }
4632
+ .segmented-control {
4633
+ box-sizing: border-box;
4634
+ --segment-highlight-width: 0;
4635
+ --segment-highlight-x: var(--size-4);
4636
+ }
4637
+ .segmented-control__segments {
4638
+ display: inline-flex;
4639
+ position: relative;
4640
+ justify-content: center;
4641
+ align-items: center;
4642
+ background: rgba(134,167,189,0.10196);
4643
+ background: var(--color-background-neutral);
4644
+ padding: 4px;
4645
+ padding: var(--size-4);
4646
+ border-radius: 24px;
4647
+ border-radius: var(--size-24);
4648
+ width: 100%;
4649
+ transition: outline 300ms;
4650
+ outline: 2px solid transparent;
4651
+ }
4652
+ .segmented-control--input:has(:focus-visible) > .segmented-control__segments::after {
4653
+ outline: 2px solid var(--color-interactive-primary);
4654
+ }
4655
+ .segmented-control__segments::after {
4656
+ content: "";
4657
+ background: #ffffff;
4658
+ background: var(--color-background-screen);
4659
+ width: var(--segment-highlight-width);
4660
+ position: absolute;
4661
+ top: 4px;
4662
+ top: var(--size-4);
4663
+ bottom: 4px;
4664
+ bottom: var(--size-4);
4665
+ left: var(--segment-highlight-x);
4666
+ z-index: 0;
4667
+ border-radius: 24px;
4668
+ border-radius: var(--size-24);
4669
+ transition: left 300ms;
4670
+ }
4671
+ .segmented-control__segments--no-animate::after {
4672
+ transition: none !important;
4673
+ }
4674
+ .segmented-control__segment {
4675
+ position: relative;
4676
+ flex: 1 1 100%;
4677
+ flex-flow: column;
4678
+ min-width: 0;
4679
+ align-items: center;
4680
+ text-align: center;
4681
+ vertical-align: middle;
4682
+ padding: 8px 16px;
4683
+ padding: var(--size-8) var(--size-16);
4684
+ margin: 0 0 0 4px;
4685
+ margin: 0 0 0 var(--size-4);
4686
+ border-radius: 24px;
4687
+ border-radius: var(--size-24);
4688
+ z-index: 1;
4689
+ cursor: pointer;
4690
+ transition: font-weight 300ms, background 300ms;
4691
+ }
4692
+ .segmented-control__segment:first-child {
4693
+ margin-left: 0;
4694
+ }
4695
+ .segmented-control__segment:hover {
4696
+ background: rgba(0,0,0,0.10196);
4697
+ background: var(--color-background-overlay);
4698
+ }
4699
+ .segmented-control__radio-input {
4700
+ position: fixed;
4701
+ opacity: 0;
4702
+ pointer-events: none;
4703
+ }
4704
+ .segmented-control__button {
4705
+ background: none;
4706
+ -webkit-appearance: none;
4707
+ -moz-appearance: none;
4708
+ appearance: none;
4709
+ border: none;
4710
+ outline: none;
4711
+ width: 100%;
4712
+ height: 100%;
4713
+ font: inherit;
4714
+ padding: none;
4715
+ outline: 2px solid transparent;
4716
+ }
4717
+ .segmented-control__button:focus {
4718
+ outline-offset: 0px;
4719
+ }
4720
+ .segmented-control__button:focus-visible {
4721
+ outline-color: var(--color-interactive-primary);
4722
+ }
4723
+ .segmented-control__selected-segment:hover {
4724
+ background: transparent;
4725
+ }
4726
+ .segmented-control__selected-segment {
4727
+ font-weight: 800;
4728
+ font-weight: var(--font-weight-bold);
4729
+ }
4730
+ .segmented-control__label-text {
4731
+ word-wrap: break-word;
4732
+ color: var(--color-interactive-primary);
4733
+ }
4632
4734
  .np-summary {
4633
4735
  min-width: 280px;
4634
4736
  }
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,102 @@
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 0 0 4px;
54
+ margin: 0 0 0 var(--size-4);
55
+ border-radius: 24px;
56
+ border-radius: var(--size-24);
57
+ z-index: 1;
58
+ cursor: pointer;
59
+ transition: font-weight 300ms, background 300ms;
60
+ }
61
+ .segmented-control__segment:first-child {
62
+ margin-left: 0;
63
+ }
64
+ .segmented-control__segment:hover {
65
+ background: rgba(0,0,0,0.10196);
66
+ background: var(--color-background-overlay);
67
+ }
68
+ .segmented-control__radio-input {
69
+ position: fixed;
70
+ opacity: 0;
71
+ pointer-events: none;
72
+ }
73
+ .segmented-control__button {
74
+ background: none;
75
+ -webkit-appearance: none;
76
+ -moz-appearance: none;
77
+ appearance: none;
78
+ border: none;
79
+ outline: none;
80
+ width: 100%;
81
+ height: 100%;
82
+ font: inherit;
83
+ padding: none;
84
+ outline: 2px solid transparent;
85
+ }
86
+ .segmented-control__button:focus {
87
+ outline-offset: 0px;
88
+ }
89
+ .segmented-control__button:focus-visible {
90
+ outline-color: var(--color-interactive-primary);
91
+ }
92
+ .segmented-control__selected-segment:hover {
93
+ background: transparent;
94
+ }
95
+ .segmented-control__selected-segment {
96
+ font-weight: 800;
97
+ font-weight: var(--font-weight-bold);
98
+ }
99
+ .segmented-control__label-text {
100
+ word-wrap: break-word;
101
+ color: var(--color-interactive-primary);
102
+ }