@sats-group/ui-lib 74.2.0 → 75.2.0

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/eslint.config.mjs CHANGED
@@ -24,6 +24,8 @@ export default [
24
24
  '**/docs',
25
25
  '**/node_modules',
26
26
  '**/test-results',
27
+ '**/site/pages/colors/dark-docs.tsx',
28
+ '**/site/pages/colors/light-docs.tsx',
27
29
  ],
28
30
  },
29
31
  ...compat.extends(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sats-group/ui-lib",
3
- "version": "74.2.0",
3
+ "version": "75.2.0",
4
4
  "description": "SATS web user interface library",
5
5
  "engines": {
6
6
  "node": "^18 || ^20",
@@ -23,16 +23,17 @@
23
23
  "author": "developer@sats.no",
24
24
  "license": "UNLICENSED",
25
25
  "peerDependencies": {
26
+ "@sats-group/icons": "^8.1.0",
26
27
  "classnames": "^2.5.1",
27
- "react": "^18.0.0",
28
- "react-dom": "^18.0.0"
28
+ "react": "^18.0.0 || ^19.0.0",
29
+ "react-dom": "^18.0.0 || ^19.0.0"
29
30
  },
30
31
  "devDependencies": {
31
32
  "@svgr/cli": "^8.1.0",
32
33
  "@types/fuzzy-search": "^2.1.5",
33
34
  "@types/node": "^18.16.19",
34
- "@types/react": "^18.3.12",
35
- "@types/react-dom": "^18.3.1",
35
+ "@types/react": "^19.0.0",
36
+ "@types/react-dom": "^19.0.0",
36
37
  "@typescript-eslint/eslint-plugin": "^8.12.2",
37
38
  "@typescript-eslint/parser": "^8.12.2",
38
39
  "eslint": "^9.13.0",
@@ -43,14 +44,13 @@
43
44
  "npm-run-all": "^4.1.5",
44
45
  "pascal-case": "^4.0.0",
45
46
  "prettier": "^3.3.3",
46
- "react": "^18.3.1",
47
- "react-dom": "^18.3.1",
47
+ "react": "^19.0.0",
48
+ "react-dom": "^19.0.0",
48
49
  "rimraf": "^6.0.1",
49
50
  "typescript": "^5.6.3"
50
51
  },
51
52
  "dependencies": {
52
- "fuzzy-search": "^3.2.1",
53
- "react-tiny-collapse": "^2.0.0"
53
+ "fuzzy-search": "^3.2.1"
54
54
  },
55
55
  "workspaces": [
56
56
  "site"
@@ -1,15 +1,15 @@
1
1
  import * as React from 'react';
2
- import Collapse from 'react-tiny-collapse';
3
2
 
4
3
  import ChevronDown from '../icons/24/arrow-down';
5
4
  import ChevronUp from '../icons/24/arrow-up';
6
5
  import Chip from '../chip/chip';
7
6
  import Text from '../text';
7
+ import Link from '../link';
8
+ import Collapse from '../collapse';
8
9
 
9
10
  import useEvent from '../hooks/use-event';
10
11
 
11
12
  import { ChipSelected as Props } from './chip-selected.types';
12
- import Link from '../link';
13
13
 
14
14
  const ChipSelected: React.FC<Props> = ({
15
15
  resetSelected,
@@ -0,0 +1,179 @@
1
+ import React, { Component, createRef } from 'react';
2
+
3
+ import { Collapse as Props } from './collapse.types';
4
+
5
+ interface CollapseState {
6
+ height: number | null;
7
+ isAnimating: boolean;
8
+ isMounted: boolean;
9
+ isOpen: boolean;
10
+ shouldAnimate?: boolean;
11
+ }
12
+
13
+ class Collapse extends Component<Props, CollapseState> {
14
+ static defaultProps: Props = {
15
+ animateChildren: false,
16
+ component: 'div',
17
+ componentProps: {},
18
+ duration: 500,
19
+ easing: 'cubic-bezier(0.3,0,0,1)',
20
+ forceInitialAnimation: false,
21
+ isOpen: false,
22
+ onMeasure: () => {},
23
+ unmountChildren: false,
24
+ };
25
+
26
+ state: CollapseState = {
27
+ height: this.props.forceInitialAnimation || !this.props.isOpen ? 0 : null,
28
+ isAnimating: false,
29
+ isMounted: false,
30
+ isOpen: this.props.isOpen || false,
31
+ };
32
+
33
+ private wrapperRef = createRef<HTMLElement>();
34
+ private previousHeight: number = 0;
35
+ private raf: number | null = null;
36
+ private timer: number | null = null;
37
+ private isAnimating: boolean = false;
38
+
39
+ getHeight = (): number => {
40
+ const child = this.wrapperRef.current
41
+ ?.firstElementChild as HTMLElement | null;
42
+ return child ? Math.max(child.offsetHeight - 1, 0) : 0; // -1px to avoid jump after transition
43
+ };
44
+
45
+ transition = () => {
46
+ const newHeight = this.props.isOpen ? this.getHeight() : 0;
47
+
48
+ clearTimeout(this.timer!);
49
+ cancelAnimationFrame(this.raf!);
50
+ this.isAnimating = true;
51
+
52
+ this.setState(
53
+ { height: this.previousHeight, isAnimating: true, shouldAnimate: false },
54
+ () => {
55
+ this.previousHeight = newHeight;
56
+ this.raf = requestAnimationFrame(() => {
57
+ this.raf = requestAnimationFrame(() => {
58
+ this.setState({ height: newHeight }, () => {
59
+ this.timer = window.setTimeout(() => {
60
+ this.setState(
61
+ {
62
+ height: this.props.isOpen ? null : 0,
63
+ isAnimating: false,
64
+ },
65
+ () => {
66
+ this.isAnimating = false;
67
+ },
68
+ );
69
+ }, this.props.duration);
70
+ });
71
+ });
72
+ });
73
+ },
74
+ );
75
+ };
76
+
77
+ componentDidMount() {
78
+ this.setState({ isMounted: true }, () => {
79
+ if (this.props.forceInitialAnimation) {
80
+ this.transition();
81
+ } else {
82
+ this.previousHeight = this.props.isOpen ? this.getHeight() : 0;
83
+ this.setState({ isAnimating: false });
84
+ }
85
+ });
86
+ }
87
+
88
+ onTransitionEnd = () => {
89
+ this.previousHeight = this.getHeight();
90
+ };
91
+
92
+ static getDerivedStateFromProps(
93
+ nextProps: Props,
94
+ prevState: CollapseState,
95
+ ): Partial<CollapseState> | null {
96
+ const openDidChange = nextProps.isOpen !== prevState.isOpen;
97
+ const forceAnimation =
98
+ !prevState.isMounted &&
99
+ nextProps.forceInitialAnimation &&
100
+ nextProps.isOpen;
101
+
102
+ return {
103
+ isOpen: nextProps.isOpen || false,
104
+ shouldAnimate: openDidChange || forceAnimation,
105
+ };
106
+ }
107
+
108
+ getSnapshotBeforeUpdate(): number {
109
+ return this.props.isOpen ? this.getHeight() : 0;
110
+ }
111
+
112
+ componentDidUpdate(
113
+ _prevProps: Props,
114
+ _prevState: CollapseState,
115
+ snapshot: number,
116
+ ) {
117
+ if (this.isAnimating && !this.state.shouldAnimate) {
118
+ return;
119
+ }
120
+
121
+ const newHeight = this.getHeight();
122
+ const childrenDidChange = newHeight !== snapshot;
123
+ this.props.onMeasure!(newHeight);
124
+
125
+ if (
126
+ this.state.shouldAnimate ||
127
+ (childrenDidChange && this.props.animateChildren)
128
+ ) {
129
+ this.transition();
130
+ } else if (childrenDidChange) {
131
+ this.previousHeight = this.getHeight();
132
+ }
133
+ }
134
+
135
+ componentWillUnmount() {
136
+ clearTimeout(this.timer!);
137
+ cancelAnimationFrame(this.raf!);
138
+ }
139
+
140
+ render() {
141
+ const { isAnimating, isMounted } = this.state;
142
+ const {
143
+ component = 'div',
144
+ componentProps = {},
145
+ forceInitialAnimation,
146
+ isOpen,
147
+ unmountChildren,
148
+ className,
149
+ children,
150
+ } = this.props;
151
+ const shouldMount = unmountChildren ? isOpen || isAnimating : true;
152
+ const initiallyHidden = !isMounted && forceInitialAnimation && isOpen;
153
+
154
+ return React.createElement(
155
+ component,
156
+ {
157
+ ...componentProps,
158
+ className: className,
159
+ onTransitionEnd: this.onTransitionEnd,
160
+ ref: this.wrapperRef,
161
+ style: {
162
+ ...componentProps.style,
163
+ height: this.state.height,
164
+ overflow:
165
+ isAnimating || !isOpen || initiallyHidden ? 'hidden' : undefined,
166
+ visibility:
167
+ (!isAnimating && !isOpen) || initiallyHidden ? 'hidden' : undefined,
168
+ transition:
169
+ isAnimating || initiallyHidden
170
+ ? `height ${this.props.duration}ms ${this.props.easing}`
171
+ : undefined,
172
+ },
173
+ },
174
+ shouldMount && children,
175
+ );
176
+ }
177
+ }
178
+
179
+ export default Collapse;
@@ -0,0 +1,13 @@
1
+ export type Collapse = {
2
+ animateChildren?: boolean;
3
+ component?: string;
4
+ componentProps?: React.HTMLAttributes<HTMLElement>;
5
+ duration?: number;
6
+ easing?: string;
7
+ forceInitialAnimation?: boolean;
8
+ isOpen?: boolean;
9
+ onMeasure?: (height: number) => void;
10
+ unmountChildren?: boolean;
11
+ className?: string;
12
+ children?: React.ReactNode;
13
+ };
@@ -0,0 +1,2 @@
1
+ import Collapse from './collapse';
2
+ export default Collapse;
@@ -1,6 +1,5 @@
1
1
  import cn from 'classnames';
2
2
  import React, { useState } from 'react';
3
- import Collapse from 'react-tiny-collapse';
4
3
 
5
4
  import ArrowDown from '../icons/24/arrow-down';
6
5
  import LinkButton from '../link-button';
@@ -10,6 +9,7 @@ import type { Expander as Props } from './expander.types';
10
9
  import Badge from '../badge';
11
10
  import { Types } from '../badge/badge.types';
12
11
  import Link from '../link';
12
+ import Collapse from '../collapse';
13
13
 
14
14
  const ExpanderListItem: React.FC<
15
15
  React.PropsWithChildren<Props<unknown>['items'][number]['listItemProps']>
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import Collapse from 'react-tiny-collapse';
3
2
  import Text from '../text';
4
3
  import Checkbox from '../checkbox';
5
4
 
@@ -9,6 +8,7 @@ import ChevronUp from '../icons/24/arrow-up';
9
8
  import { CheckboxCategory as Props } from './form-content.checkbox-list.types';
10
9
  import VisuallyHidden from '../visually-hidden';
11
10
  import { mod } from '../add-bem-modifiers';
11
+ import Collapse from '../collapse';
12
12
 
13
13
  const CheckboxCategory: React.FC<React.PropsWithChildren<Props>> = ({
14
14
  currentlySelectedValues = [],
@@ -1,11 +1,11 @@
1
1
  import { RefObject, useEffect, useRef } from 'react';
2
2
 
3
- const focusRef = (ref: React.MutableRefObject<HTMLElement | null>): void => {
3
+ const focusRef = (ref: React.RefObject<HTMLElement | null>): void => {
4
4
  ref?.current?.focus();
5
5
  };
6
6
 
7
7
  const focusPreviousElement = (
8
- modal: RefObject<HTMLElement>,
8
+ modal: RefObject<HTMLElement | null>,
9
9
  isActive?: boolean,
10
10
  ) => {
11
11
  const previouslyFocusedElement = useRef<HTMLElement | null>(null);
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
 
3
- const focusRef = (ref: React.MutableRefObject<HTMLElement | null>): void => {
3
+ const focusRef = (ref: React.RefObject<HTMLElement | null>): void => {
4
4
  ref?.current?.focus();
5
5
  };
6
6
 
@@ -14,7 +14,7 @@ const previousValue = usePrevious(value);
14
14
  const usePrevious = <T extends unknown>(
15
15
  value: T,
16
16
  initialValue?: T,
17
- ): React.RefObject<T>['current'] => {
17
+ ): React.RefObject<T | null>['current'] => {
18
18
  const state = React.useRef<T | null>(
19
19
  typeof initialValue === 'undefined' ? null : initialValue,
20
20
  );
@@ -1,6 +1,7 @@
1
1
  @use '../../tokens/corner-radius';
2
2
  @use '../../tokens/light';
3
3
  @use '../../tokens/spacing';
4
+ @use '../../tokens/font-sizes';
4
5
 
5
6
  .select {
6
7
  display: flex;
@@ -35,44 +36,25 @@
35
36
  &__chevron {
36
37
  color: light.$on-surface-primary-default;
37
38
  position: absolute;
38
- right: 13px;
39
+ right: clamp(spacing.$s, 2vw, spacing.$m);
39
40
  top: 50%;
40
41
  transform: translateY(-50%);
41
42
  pointer-events: none;
42
- }
43
-
44
- &__icon {
45
- color: light.$on-surface-primary-default;
46
- position: absolute;
47
- left: 13px;
48
- top: 50%;
49
- width: 20px;
50
- transform: translateY(-50%);
51
-
52
- svg {
53
- display: block;
54
- max-width: 100%;
55
- height: auto;
56
- }
57
- }
58
-
59
- :root &--icon {
60
- select {
61
- padding-left: 40px; // NOTE: Space for icon
62
- }
43
+ display: flex;
44
+ align-items: center
63
45
  }
64
46
 
65
47
  select {
48
+ @include font-sizes.normal(basic);
66
49
  color: light.$on-surface-primary-default;
67
50
  appearance: none;
68
51
  background-color: transparent;
69
52
  border: 1px solid light.$ge-border-default;
70
53
  display: block;
71
- font-size: 16px;
72
- font-family: 'Inter', sans-serif;
73
- line-height: 1.25;
74
- padding: 13px 15px;
75
- padding-right: 35px; // NOTE: Space for chevron icon
54
+ padding-top: clamp(spacing.$xs, 2vw, spacing.$s);
55
+ padding-bottom: clamp(spacing.$xs, 2vw, spacing.$s);
56
+ padding-left: clamp(spacing.$s, 2vw, spacing.$m);
57
+ padding-right: spacing.$l; // NOTE: Space for chevron icon
76
58
  position: relative;
77
59
  width: 100%;
78
60
  border-radius: corner-radius.$s;
@@ -82,11 +64,6 @@
82
64
  &:not(:disabled) {
83
65
  background-color: light.$surface-primary-hover;
84
66
  border-color: light.$surface-primary-hover;
85
-
86
- ~ .select__chevron,
87
- ~ .select__icon {
88
- color: light.$on-surface-primary-default;
89
- }
90
67
  }
91
68
  }
92
69
  }
@@ -95,11 +72,6 @@
95
72
  &:not(:disabled) {
96
73
  background-color: light.$surface-primary-default;
97
74
  border-color: light.$ge-border-focused;
98
-
99
- ~ .select__chevron,
100
- ~ .select__icon {
101
- color: light.$on-surface-primary-default;
102
- }
103
75
  }
104
76
  }
105
77
 
@@ -111,8 +83,7 @@
111
83
  &:disabled {
112
84
  color: light.$on-surface-primary-disabled;
113
85
 
114
- ~ .select__chevron,
115
- ~ .select__icon {
86
+ ~ .select__native-wrapper {
116
87
  color: light.$on-surface-primary-disabled;
117
88
  }
118
89
  }
@@ -3,9 +3,9 @@ import * as React from 'react';
3
3
 
4
4
  import useInputValidation from '../use-input-validation';
5
5
 
6
- import ChevronDown from './chevron-down';
7
6
  import Option from '../select-option/select-option';
8
7
  import Text from '../text';
8
+ import SvgArrowDown from '@sats-group/icons/18/arrow-down';
9
9
 
10
10
  import { labelPositions, Select as Props } from './select.types';
11
11
 
@@ -18,7 +18,6 @@ const RefSelect = React.forwardRef<
18
18
  {
19
19
  children,
20
20
  className,
21
- icon,
22
21
  isLabelVisible = true,
23
22
  label,
24
23
  labelPosition = labelPositions.stacked,
@@ -43,7 +42,6 @@ const RefSelect = React.forwardRef<
43
42
  <label
44
43
  className={cn('select', className, {
45
44
  'select--error': error,
46
- 'select--icon': icon,
47
45
  [`select--label-position-${labelPosition}`]: labelPosition
48
46
  ? labelPositions[labelPosition]
49
47
  : undefined,
@@ -79,8 +77,9 @@ const RefSelect = React.forwardRef<
79
77
  <Option key={option.value} {...option} />
80
78
  ))}
81
79
  </select>
82
- {icon && <div className="select__icon">{icon}</div>}
83
- <ChevronDown className="select__chevron" />
80
+ <span className="select__chevron">
81
+ <SvgArrowDown />
82
+ </span>
84
83
  </div>
85
84
 
86
85
  {/* NOTE: This is aria-hidden because reporting of validation errors is handled by the browser */}
@@ -9,7 +9,6 @@ export const labelPositions = {
9
9
 
10
10
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
11
  export type Select<OptionExtra = any> = {
12
- icon?: React.ReactNode;
13
12
  isLabelVisible?: boolean;
14
13
  label?: string;
15
14
  labelPosition?: ObjectValues<typeof labelPositions>;
package/tokens/dark.scss CHANGED
@@ -281,8 +281,11 @@ $on-ge-on-selector-secondary-unselected-default: primitives.$white-100;
281
281
  $on-ge-on-selector-secondary-unselected-disabled: primitives.$white-20;
282
282
  $on-ge-on-tabs-default: primitives.$white-100;
283
283
  $on-ge-on-tabs-disabled: primitives.$black-40;
284
+ $on-ge-on-tags-featured-alternate: primitives.$coral-90;
284
285
  $on-ge-on-tags-featured-default: primitives.$coral-170;
286
+ $on-ge-on-tags-primary-alternate: primitives.$white-100;
285
287
  $on-ge-on-tags-primary-default: primitives.$blue-100;
288
+ $on-ge-on-tags-secondary-alternate: primitives.$white-100;
286
289
  $on-ge-on-tags-secondary-default: primitives.$white-100;
287
290
  $on-ge-on-workouts-bootcamp: primitives.$tropical-indigo-160;
288
291
  $on-ge-on-workouts-gx: primitives.$salmon-pink-180;
@@ -370,14 +373,14 @@ $signal-surface-neutral: primitives.$black-90;
370
373
  $signal-surface-success: primitives.$spring-green-170;
371
374
  $signal-surface-waiting-list: primitives.$egyptian-purple-160;
372
375
  $signal-surface-warning: primitives.$gold-170;
373
- $surface-primary-default: primitives.$black-85;
376
+ $surface-primary-default: primitives.$black-90;
374
377
  $surface-primary-disabled: primitives.$black-95;
375
378
  $surface-primary-hover: primitives.$bright-blue-170;
376
379
  $surface-primary-selected: primitives.$bright-blue-160;
377
- $surface-secondary-default: primitives.$black-90;
380
+ $surface-secondary-default: primitives.$black-85;
378
381
  $surface-secondary-disabled: primitives.$black-100;
379
- $surface-secondary-hover: primitives.$black-85;
380
- $surface-secondary-selected: primitives.$black-90;
382
+ $surface-secondary-hover: primitives.$black-80;
383
+ $surface-secondary-selected: primitives.$black-85;
381
384
  $workout-surface-bootcamp: primitives.$tropical-indigo-180;
382
385
  $workout-surface-bootcamp-hover: primitives.$tropical-indigo-160;
383
386
  $workout-surface-gx: primitives.$salmon-pink-180;
@@ -41,8 +41,8 @@ $headline: (
41
41
  font-weight: bold;
42
42
  text-transform: uppercase;
43
43
  @if map.has-key($headline, $size) {
44
- font-size: map-get(map-get($headline, $size), fallback);
45
- font-size: map-get(map-get($headline, $size), clamp);
44
+ font-size: map.get(map.get($headline, $size), fallback);
45
+ font-size: map.get(map.get($headline, $size), clamp);
46
46
  } @else {
47
47
  @error "Size #{$size} does not exist on Headline.";
48
48
  }
@@ -87,8 +87,8 @@ $normal: (
87
87
  @if map.has-key($normal, $size) {
88
88
  font-family: font-names.$brand, sans-serif;
89
89
  font-weight: normal;
90
- font-size: map-get(map-get($normal, $size), fallback);
91
- font-size: map-get(map-get($normal, $size), clamp);
90
+ font-size: map.get(map.get($normal, $size), fallback);
91
+ font-size: map.get(map.get($normal, $size), clamp);
92
92
  } @else {
93
93
  @error "Size #{$size} does not exist on Normal.";
94
94
  }
package/tokens/light.scss CHANGED
@@ -76,8 +76,8 @@ $ge-border-focused: primitives.$blue-40;
76
76
  $ge-chips-selected-default: primitives.$blue-100;
77
77
  $ge-chips-selected-disabled: primitives.$light-grey-15;
78
78
  $ge-chips-selected-hover: primitives.$blue-grey-80;
79
- $ge-chips-unselected-default: primitives.$blue-40;
80
- $ge-chips-unselected-disabled: primitives.$light-grey-15;
79
+ $ge-chips-unselected-default: primitives.$light-grey-15;
80
+ $ge-chips-unselected-disabled: primitives.$blue-10;
81
81
  $ge-chips-unselected-hover: primitives.$bright-blue-10;
82
82
  $ge-divider-alternate: primitives.$black-o20;
83
83
  $ge-divider-default: primitives.$light-grey-15;
@@ -128,7 +128,7 @@ $ge-icons-secondary: primitives.$blue-grey-80;
128
128
  $ge-icons-waiting-list: primitives.$egyptian-purple-100;
129
129
  $ge-indicator-tags-attention-alternate: primitives.$gold-10;
130
130
  $ge-indicator-tags-attention-default: primitives.$gold-80;
131
- $ge-indicator-tags-featured-alternate: primitives.$coral-10;
131
+ $ge-indicator-tags-featured-alternate: primitives.$coral-5;
132
132
  $ge-indicator-tags-featured-default: primitives.$coral-120;
133
133
  $ge-indicator-tags-information-alternate: primitives.$bright-blue-10;
134
134
  $ge-indicator-tags-information-default: primitives.$bright-blue-100;
@@ -162,7 +162,7 @@ $ge-selector-primary-selected-disabled: primitives.$coral-40;
162
162
  $ge-selector-primary-selected-hover: primitives.$coral-130;
163
163
  $ge-selector-primary-selected-bg-default: primitives.$coral-10;
164
164
  $ge-selector-primary-selected-bg-disabled: primitives.$coral-5;
165
- $ge-selector-primary-unselected-default: primitives.$black-80;
165
+ $ge-selector-primary-unselected-default: primitives.$black-60;
166
166
  $ge-selector-primary-unselected-disabled: primitives.$light-grey-15;
167
167
  $ge-selector-primary-unselected-hover: primitives.$coral-10;
168
168
  $ge-selector-primary-unselected-bg-default: primitives.$white-0;
@@ -281,8 +281,11 @@ $on-ge-on-selector-secondary-unselected-default: primitives.$blue-100;
281
281
  $on-ge-on-selector-secondary-unselected-disabled: primitives.$black-40;
282
282
  $on-ge-on-tabs-default: primitives.$blue-100;
283
283
  $on-ge-on-tabs-disabled: primitives.$black-40;
284
+ $on-ge-on-tags-featured-alternate: primitives.$coral-130;
284
285
  $on-ge-on-tags-featured-default: primitives.$white-100;
286
+ $on-ge-on-tags-primary-alternate: primitives.$blue-100;
285
287
  $on-ge-on-tags-primary-default: primitives.$white-100;
288
+ $on-ge-on-tags-secondary-alternate: primitives.$blue-100;
286
289
  $on-ge-on-tags-secondary-default: primitives.$blue-100;
287
290
  $on-ge-on-workouts-bootcamp: primitives.$tropical-indigo-180;
288
291
  $on-ge-on-workouts-gx: primitives.$salmon-pink-180;
@@ -353,7 +356,7 @@ $on-buttons-on-fixed-link-disabled: primitives.$white-50;
353
356
  $on-buttons-on-fixed-link-hover: primitives.$bright-blue-100;
354
357
  $on-buttons-on-link-default: primitives.$bright-blue-110;
355
358
  $on-buttons-on-link-disabled: primitives.$black-50;
356
- $on-buttons-on-link-hover: primitives.$bright-blue-80;
359
+ $on-buttons-on-link-hover: primitives.$bright-blue-130;
357
360
  $on-buttons-on-primary-default: primitives.$white-100;
358
361
  $on-buttons-on-primary-disabled: primitives.$black-60;
359
362
  $on-buttons-on-secondary-default: primitives.$blue-100;
@@ -1 +0,0 @@
1
- declare module 'react-tiny-collapse';
@@ -1,24 +0,0 @@
1
- import * as React from 'react';
2
-
3
- const ChevronDown: React.FunctionComponent<{ className?: string }> = ({
4
- className,
5
- }) => (
6
- <svg
7
- width="14"
8
- height="8"
9
- viewBox="0 0 14 8"
10
- fill="none"
11
- xmlns="http://www.w3.org/2000/svg"
12
- className={className}
13
- >
14
- <path
15
- d="M12 1.5L7 6.5L2 1.5"
16
- stroke="currentColor"
17
- strokeWidth="1.8"
18
- strokeMiterlimit="10"
19
- strokeLinecap="square"
20
- />
21
- </svg>
22
- );
23
-
24
- export default ChevronDown;
@@ -1,3 +0,0 @@
1
- # SelectOption
2
-
3
- This component is not intended to be used directly. It is used by `Select` internally but needs to live in a separate folder in order for a TypeScript file to be created for it.