@atlaskit/react-select 1.3.3 → 1.4.1

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 (59) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/components/containers.js +15 -15
  3. package/dist/cjs/components/control.js +63 -20
  4. package/dist/cjs/components/group.js +18 -21
  5. package/dist/cjs/components/indicators.js +48 -46
  6. package/dist/cjs/components/input.js +3 -3
  7. package/dist/cjs/components/menu.js +34 -43
  8. package/dist/cjs/components/multi-value.js +86 -32
  9. package/dist/cjs/components/option.js +37 -18
  10. package/dist/cjs/components/placeholder.js +9 -14
  11. package/dist/cjs/components/single-value.js +9 -14
  12. package/dist/cjs/select.js +59 -41
  13. package/dist/es2019/components/containers.js +9 -11
  14. package/dist/es2019/components/control.js +70 -25
  15. package/dist/es2019/components/group.js +13 -23
  16. package/dist/es2019/components/indicators.js +31 -40
  17. package/dist/es2019/components/input.js +5 -7
  18. package/dist/es2019/components/menu.js +13 -24
  19. package/dist/es2019/components/multi-value.js +89 -36
  20. package/dist/es2019/components/option.js +40 -20
  21. package/dist/es2019/components/placeholder.js +4 -10
  22. package/dist/es2019/components/single-value.js +4 -8
  23. package/dist/es2019/select.js +28 -15
  24. package/dist/esm/components/containers.js +13 -15
  25. package/dist/esm/components/control.js +61 -20
  26. package/dist/esm/components/group.js +17 -21
  27. package/dist/esm/components/indicators.js +48 -46
  28. package/dist/esm/components/input.js +3 -3
  29. package/dist/esm/components/menu.js +34 -43
  30. package/dist/esm/components/multi-value.js +86 -32
  31. package/dist/esm/components/option.js +35 -18
  32. package/dist/esm/components/placeholder.js +7 -14
  33. package/dist/esm/components/single-value.js +7 -14
  34. package/dist/esm/select.js +59 -41
  35. package/dist/types/components/containers.d.ts +5 -1
  36. package/dist/types/components/control.d.ts +10 -1
  37. package/dist/types/components/group.d.ts +2 -2
  38. package/dist/types/components/indicators.d.ts +16 -4
  39. package/dist/types/components/input.d.ts +1 -1
  40. package/dist/types/components/menu.d.ts +4 -4
  41. package/dist/types/components/multi-value.d.ts +3 -3
  42. package/dist/types/components/option.d.ts +1 -1
  43. package/dist/types/components/placeholder.d.ts +1 -1
  44. package/dist/types/components/single-value.d.ts +1 -1
  45. package/dist/types/select.d.ts +5 -6
  46. package/dist/types/styles.d.ts +1 -1
  47. package/dist/types-ts4.5/components/containers.d.ts +5 -1
  48. package/dist/types-ts4.5/components/control.d.ts +10 -1
  49. package/dist/types-ts4.5/components/group.d.ts +2 -2
  50. package/dist/types-ts4.5/components/indicators.d.ts +16 -4
  51. package/dist/types-ts4.5/components/input.d.ts +1 -1
  52. package/dist/types-ts4.5/components/menu.d.ts +4 -4
  53. package/dist/types-ts4.5/components/multi-value.d.ts +3 -3
  54. package/dist/types-ts4.5/components/option.d.ts +1 -1
  55. package/dist/types-ts4.5/components/placeholder.d.ts +1 -1
  56. package/dist/types-ts4.5/components/single-value.d.ts +1 -1
  57. package/dist/types-ts4.5/select.d.ts +5 -6
  58. package/dist/types-ts4.5/styles.d.ts +1 -1
  59. package/package.json +5 -1
@@ -10,6 +10,7 @@ exports.multiValueRemoveCSS = exports.multiValueLabelCSS = exports.multiValueCSS
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
12
  var _react = require("@emotion/react");
13
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
14
  var _utils = require("../utils");
14
15
  var _indicators = require("./indicators");
15
16
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -17,55 +18,108 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
17
18
  * @jsxRuntime classic
18
19
  * @jsx jsx
19
20
  */
20
- var multiValueCSS = exports.multiValueCSS = function multiValueCSS(_ref, unstyled) {
21
- var _ref$theme = _ref.theme,
21
+ var multiValueCSS = exports.multiValueCSS = function multiValueCSS(_ref) {
22
+ var isDisabled = _ref.isDisabled,
23
+ isFocused = _ref.isFocused,
24
+ _ref$theme = _ref.theme,
22
25
  spacing = _ref$theme.spacing,
23
26
  borderRadius = _ref$theme.borderRadius,
24
27
  colors = _ref$theme.colors;
28
+ var backgroundColor;
29
+ var color;
30
+ if (isDisabled) {
31
+ // Use the basic neutral background so it is slightly separate from the
32
+ // field's background
33
+ backgroundColor = "var(--ds-background-neutral, #091E420F)";
34
+ color = "var(--ds-text-disabled, #091E424F)";
35
+ } else if (isFocused) {
36
+ backgroundColor = "var(--ds-background-selected, #E9F2FF)";
37
+ color = "var(--ds-text-selected, hsl(0, 0%, 20%))";
38
+ } else {
39
+ backgroundColor = (0, _platformFeatureFlags.fg)('platform-component-visual-refresh') ? "var(--ds-background-neutral-subtle-hovered, #091E420F)" : "var(--ds-background-neutral, #091E420F)";
40
+ color = "var(--ds-text, hsl(0, 0%, 20%))";
41
+ }
25
42
  return _objectSpread({
26
43
  label: 'multiValue',
27
44
  display: 'flex',
28
- minWidth: 0
29
- }, unstyled ? {} : {
30
- backgroundColor: colors.neutral10,
31
- borderRadius: borderRadius / 2,
32
- margin: spacing.baseUnit / 2
45
+ minWidth: 0,
46
+ // resolves flex/text-overflow bug
47
+ margin: "var(--ds-space-025, 2px)",
48
+ borderRadius: "var(--ds-border-radius-050, 2px)",
49
+ backgroundColor: backgroundColor,
50
+ boxShadow: isFocused ? "0 0 0 2px ".concat("var(--ds-surface, transparent)", ", 0 0 0 4px ", "var(--ds-border-focused, transparent)") : 'none',
51
+ maxWidth: '100%',
52
+ '@media screen and (-ms-high-contrast: active)': {
53
+ border: isFocused ? '1px solid transparent' : 'none'
54
+ },
55
+ color: color
56
+ }, (0, _platformFeatureFlags.fg)('platform-component-visual-refresh') && {
57
+ borderRadius: "var(--ds-border-radius-100, 4px)",
58
+ // Hardcode this color for visual refresh as there is no token color yet
59
+ borderColor: '#B7B9BE',
60
+ borderWidth: "var(--ds-border-width, 1px)",
61
+ borderStyle: 'solid',
62
+ backgroundColor: "var(--ds-background-input, #FFFFFF)"
33
63
  });
34
64
  };
35
- var multiValueLabelCSS = exports.multiValueLabelCSS = function multiValueLabelCSS(_ref2, unstyled) {
36
- var _ref2$theme = _ref2.theme,
37
- borderRadius = _ref2$theme.borderRadius,
38
- colors = _ref2$theme.colors,
39
- cropWithEllipsis = _ref2.cropWithEllipsis;
65
+ var multiValueLabelCSS = exports.multiValueLabelCSS = function multiValueLabelCSS(_ref2) {
66
+ var cropWithEllipsis = _ref2.cropWithEllipsis,
67
+ isDisabled = _ref2.isDisabled;
40
68
  return _objectSpread({
41
69
  overflow: 'hidden',
42
70
  textOverflow: cropWithEllipsis || cropWithEllipsis === undefined ? 'ellipsis' : undefined,
43
- whiteSpace: 'nowrap'
44
- }, unstyled ? {} : {
45
- borderRadius: borderRadius / 2,
46
- color: colors.neutral80,
71
+ whiteSpace: 'nowrap',
72
+ borderRadius: "var(--ds-border-radius-050, 2px)",
47
73
  fontSize: '85%',
48
- padding: 3,
49
- paddingLeft: 6
74
+ font: "var(--ds-font-body-UNSAFE_small, normal 400 12px/16px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, system-ui, \"Helvetica Neue\", sans-serif)",
75
+ padding: "var(--ds-space-025, 2px)",
76
+ color: isDisabled ? "var(--ds-text-disabled, #091E424F)" : 'inherit',
77
+ paddingLeft: "var(--ds-space-075, 6px)"
78
+ }, (0, _platformFeatureFlags.fg)('platform-component-visual-refresh') && {
79
+ font: "var(--ds-font-body, normal 400 14px/20px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, system-ui, \"Helvetica Neue\", sans-serif)",
80
+ paddingTop: 0,
81
+ paddingBottom: 0,
82
+ paddingLeft: "var(--ds-space-050, 4px)"
50
83
  });
51
84
  };
52
- var multiValueRemoveCSS = exports.multiValueRemoveCSS = function multiValueRemoveCSS(_ref3, unstyled) {
53
- var _ref3$theme = _ref3.theme,
54
- spacing = _ref3$theme.spacing,
55
- borderRadius = _ref3$theme.borderRadius,
56
- colors = _ref3$theme.colors,
57
- isFocused = _ref3.isFocused;
85
+ var multiValueRemoveCSS = exports.multiValueRemoveCSS = function multiValueRemoveCSS(_ref3) {
86
+ var isFocused = _ref3.isFocused;
58
87
  return _objectSpread({
59
88
  alignItems: 'center',
60
- display: 'flex'
61
- }, unstyled ? {} : {
62
- borderRadius: borderRadius / 2,
63
- backgroundColor: isFocused ? colors.dangerLight : undefined,
64
- paddingLeft: spacing.baseUnit,
65
- paddingRight: spacing.baseUnit,
89
+ display: 'flex',
90
+ backgroundColor: isFocused ? "var(--ds-UNSAFE-transparent, transparent)" : undefined,
91
+ fill: isFocused ? "var(--ds-text-selected, #000)" : "var(--ds-text, #000)",
92
+ paddingLeft: "var(--ds-space-025, 2px)",
93
+ paddingRight: "var(--ds-space-025, 2px)",
94
+ borderRadius: '0px 2px 2px 0px',
95
+ // DSP-6470 we should style like Tag once we have the :has selector
96
+ ':hover': {
97
+ backgroundColor: "var(--ds-background-danger-hovered, #FFD5D2)",
98
+ fill: "var(--ds-text-danger, #000)"
99
+ },
100
+ ':active': {
101
+ backgroundColor: "var(--ds-background-danger-pressed, #FD9891)",
102
+ fill: "var(--ds-text-danger, #000)"
103
+ }
104
+ }, (0, _platformFeatureFlags.fg)('platform-component-visual-refresh') && {
105
+ backgroundColor: "var(--ds-background-neutral-subtle, #00000000)",
106
+ border: 'none',
107
+ alignItems: 'center',
108
+ justifyContent: 'center',
109
+ alignSelf: 'center',
110
+ appearance: 'none',
111
+ borderRadius: "var(--ds-border-radius, 4px)",
112
+ color: "var(--ds-text, #172B4D)",
113
+ padding: "var(--ds-space-025, 2px)",
114
+ marginRight: "var(--ds-space-025, 2px)",
115
+ ':focus-visible': {
116
+ outlineOffset: "var(--ds-space-negative-025, -2px)"
117
+ },
66
118
  ':hover': {
67
- backgroundColor: colors.dangerLight,
68
- color: colors.danger
119
+ backgroundColor: "var(--ds-background-neutral-subtle-hovered, #091E420F)"
120
+ },
121
+ ':active': {
122
+ backgroundColor: "var(--ds-background-neutral-subtle-pressed, #091E4224)"
69
123
  }
70
124
  });
71
125
  };
@@ -6,38 +6,57 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.optionCSS = exports.default = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
9
  var _react = require("@emotion/react");
11
10
  var _utils = require("../utils");
12
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
11
+ /**
14
12
  * @jsxRuntime classic
15
13
  * @jsx jsx
16
14
  */
17
- var optionCSS = exports.optionCSS = function optionCSS(_ref, unstyled) {
15
+
16
+ var optionCSS = exports.optionCSS = function optionCSS(_ref) {
18
17
  var isDisabled = _ref.isDisabled,
19
18
  isFocused = _ref.isFocused,
20
- isSelected = _ref.isSelected,
21
- _ref$theme = _ref.theme,
22
- spacing = _ref$theme.spacing,
23
- colors = _ref$theme.colors;
24
- return _objectSpread({
19
+ isSelected = _ref.isSelected;
20
+ var color = "var(--ds-text, #172B4D)";
21
+ if (isDisabled) {
22
+ color = "var(--ds-text-disabled, #091E424F)";
23
+ } else if (isSelected) {
24
+ color = "var(--ds-text-selected, #0C66E4)";
25
+ }
26
+ var boxShadow;
27
+ var backgroundColor;
28
+ if (isDisabled) {
29
+ backgroundColor = undefined;
30
+ } else if (isSelected && isFocused) {
31
+ backgroundColor = "var(--ds-background-selected-hovered, #CCE0FF)";
32
+ } else if (isSelected) {
33
+ backgroundColor = "var(--ds-background-selected, #E9F2FF)";
34
+ } else if (isFocused) {
35
+ backgroundColor = "var(--ds-background-neutral-subtle-hovered, #091E420F)";
36
+ }
37
+ if (!isDisabled && (isFocused || isSelected)) {
38
+ boxShadow = "inset 2px 0px 0px ".concat("var(--ds-border-selected, #0C66E4)");
39
+ }
40
+ var cursor = isDisabled ? 'not-allowed' : 'default';
41
+ return {
25
42
  label: 'option',
26
- cursor: 'default',
27
43
  display: 'block',
28
44
  fontSize: 'inherit',
29
45
  width: '100%',
30
46
  userSelect: 'none',
31
- WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)'
32
- }, unstyled ? {} : {
33
- backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',
34
- color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',
35
- padding: "".concat(spacing.baseUnit * 2, "px ").concat(spacing.baseUnit * 3, "px"),
36
- // provide some affordance on touch devices
47
+ WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',
48
+ padding: "var(--ds-space-075, 6px)".concat(" ", "var(--ds-space-150, 12px)"),
49
+ backgroundColor: backgroundColor,
50
+ color: color,
51
+ cursor: cursor,
52
+ boxShadow: boxShadow,
37
53
  ':active': {
38
- backgroundColor: !isDisabled ? isSelected ? colors.primary : colors.primary50 : undefined
54
+ backgroundColor: !isDisabled ? isSelected ? "var(--ds-background-selected-pressed, #85B8FF)" : "var(--ds-background-neutral-subtle-pressed, #091E4224)" : undefined
55
+ },
56
+ '@media screen and (-ms-high-contrast: active)': {
57
+ borderLeft: !isDisabled && (isFocused || isSelected) ? '2px solid transparent' : ''
39
58
  }
40
- });
59
+ };
41
60
  };
42
61
  var Option = function Option(props) {
43
62
  var children = props.children,
@@ -6,26 +6,21 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.placeholderCSS = exports.default = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
9
  var _react = require("@emotion/react");
11
10
  var _utils = require("../utils");
12
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
11
+ /**
14
12
  * @jsxRuntime classic
15
13
  * @jsx jsx
16
14
  */
17
- var placeholderCSS = exports.placeholderCSS = function placeholderCSS(_ref, unstyled) {
18
- var _ref$theme = _ref.theme,
19
- spacing = _ref$theme.spacing,
20
- colors = _ref$theme.colors;
21
- return _objectSpread({
15
+
16
+ var placeholderCSS = exports.placeholderCSS = function placeholderCSS(_ref) {
17
+ var isDisabled = _ref.isDisabled;
18
+ return {
22
19
  label: 'placeholder',
23
- gridArea: '1 / 1 / 2 / 3'
24
- }, unstyled ? {} : {
25
- color: colors.neutral50,
26
- marginLeft: spacing.baseUnit / 2,
27
- marginRight: spacing.baseUnit / 2
28
- });
20
+ gridArea: '1 / 1 / 2 / 3',
21
+ margin: "0 ".concat("var(--ds-space-025, 2px)"),
22
+ color: isDisabled ? "var(--ds-text-disabled, #091E424F)" : "var(--ds-text-subtlest, #626F86)"
23
+ };
29
24
  };
30
25
  var Placeholder = function Placeholder(props) {
31
26
  var children = props.children,
@@ -6,31 +6,26 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = exports.css = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
9
  var _react = require("@emotion/react");
11
10
  var _utils = require("../utils");
12
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
11
+ /**
14
12
  * @jsxRuntime classic
15
13
  * @jsx jsx
16
14
  */
17
- var css = exports.css = function css(_ref, unstyled) {
15
+
16
+ var css = exports.css = function css(_ref) {
18
17
  var isDisabled = _ref.isDisabled,
19
- _ref$theme = _ref.theme,
20
- spacing = _ref$theme.spacing,
21
- colors = _ref$theme.colors;
22
- return _objectSpread({
18
+ spacing = _ref.theme.spacing;
19
+ return {
23
20
  label: 'singleValue',
24
21
  gridArea: '1 / 1 / 2 / 3',
25
22
  maxWidth: '100%',
26
23
  overflow: 'hidden',
27
24
  textOverflow: 'ellipsis',
28
- whiteSpace: 'nowrap'
29
- }, unstyled ? {} : {
30
- color: isDisabled ? colors.neutral40 : colors.neutral80,
31
- marginLeft: spacing.baseUnit / 2,
32
- marginRight: spacing.baseUnit / 2
33
- });
25
+ whiteSpace: 'nowrap',
26
+ margin: "0 ".concat("var(--ds-space-025, 2px)"),
27
+ color: isDisabled ? "var(--ds-text-disabled, #091E424F)" : "var(--ds-text, #172B4D)"
28
+ };
34
29
  };
35
30
  var SingleValue = function SingleValue(props) {
36
31
  var children = props.children,
@@ -78,8 +78,7 @@ var defaultProps = exports.defaultProps = {
78
78
  },
79
79
  styles: {},
80
80
  tabIndex: 0,
81
- tabSelectsValue: true,
82
- unstyled: false
81
+ tabSelectsValue: true
83
82
  };
84
83
  function toCategorizedOption(props, option, selectValue, index) {
85
84
  var isDisabled = _isOptionDisabled(props, option, selectValue);
@@ -399,8 +398,7 @@ var Select = exports.default = /*#__PURE__*/function (_Component) {
399
398
  return getOptionValue(_this.props, data);
400
399
  });
401
400
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getStyles", function (key, props) {
402
- var unstyled = _this.props.unstyled;
403
- var base = _styles.defaultStyles[key](props, unstyled);
401
+ var base = _styles.defaultStyles[key](props);
404
402
  base.boxSizing = 'border-box';
405
403
  var custom = _this.props.styles[key];
406
404
  return custom ? custom(base, props) : base;
@@ -1383,7 +1381,8 @@ var Select = exports.default = /*#__PURE__*/function (_Component) {
1383
1381
  var _this$props10 = this.props,
1384
1382
  clearControlLabel = _this$props10.clearControlLabel,
1385
1383
  isDisabled = _this$props10.isDisabled,
1386
- isLoading = _this$props10.isLoading;
1384
+ isLoading = _this$props10.isLoading,
1385
+ spacing = _this$props10.spacing;
1387
1386
  var isFocused = this.state.isFocused;
1388
1387
  if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {
1389
1388
  return null;
@@ -1393,11 +1392,13 @@ var Select = exports.default = /*#__PURE__*/function (_Component) {
1393
1392
  onTouchEnd: this.onClearIndicatorTouchEnd,
1394
1393
  'aria-hidden': 'true'
1395
1394
  };
1395
+ var isCompact = spacing === 'compact';
1396
1396
  return /*#__PURE__*/_react.default.createElement(ClearIndicator, (0, _extends2.default)({
1397
1397
  clearControlLabel: clearControlLabel
1398
1398
  }, commonProps, {
1399
1399
  innerProps: innerProps,
1400
- isFocused: isFocused
1400
+ isFocused: isFocused,
1401
+ isCompact: isCompact
1401
1402
  }));
1402
1403
  }
1403
1404
  }, {
@@ -1408,18 +1409,21 @@ var Select = exports.default = /*#__PURE__*/function (_Component) {
1408
1409
  var commonProps = this.commonProps;
1409
1410
  var _this$props11 = this.props,
1410
1411
  isDisabled = _this$props11.isDisabled,
1411
- isLoading = _this$props11.isLoading;
1412
+ isLoading = _this$props11.isLoading,
1413
+ spacing = _this$props11.spacing;
1412
1414
  var isFocused = this.state.isFocused;
1413
1415
  if (!LoadingIndicator || !isLoading) {
1414
1416
  return null;
1415
1417
  }
1418
+ var isCompact = spacing === 'compact';
1416
1419
  var innerProps = {
1417
1420
  'aria-hidden': 'true'
1418
1421
  };
1419
1422
  return /*#__PURE__*/_react.default.createElement(LoadingIndicator, (0, _extends2.default)({}, commonProps, {
1420
1423
  innerProps: innerProps,
1421
1424
  isDisabled: isDisabled,
1422
- isFocused: isFocused
1425
+ isFocused: isFocused,
1426
+ isCompact: isCompact
1423
1427
  }));
1424
1428
  }
1425
1429
  }, {
@@ -1450,8 +1454,11 @@ var Select = exports.default = /*#__PURE__*/function (_Component) {
1450
1454
  return null;
1451
1455
  }
1452
1456
  var commonProps = this.commonProps;
1453
- var isDisabled = this.props.isDisabled;
1457
+ var _this$props12 = this.props,
1458
+ isDisabled = _this$props12.isDisabled,
1459
+ spacing = _this$props12.spacing;
1454
1460
  var isFocused = this.state.isFocused;
1461
+ var isCompact = spacing === 'compact';
1455
1462
  var innerProps = {
1456
1463
  onMouseDown: this.onDropdownIndicatorMouseDown,
1457
1464
  onTouchEnd: this.onDropdownIndicatorTouchEnd,
@@ -1460,7 +1467,8 @@ var Select = exports.default = /*#__PURE__*/function (_Component) {
1460
1467
  return /*#__PURE__*/_react.default.createElement(DropdownIndicator, (0, _extends2.default)({}, commonProps, {
1461
1468
  innerProps: innerProps,
1462
1469
  isDisabled: isDisabled,
1463
- isFocused: isFocused
1470
+ isFocused: isFocused,
1471
+ isCompact: isCompact
1464
1472
  }));
1465
1473
  }
1466
1474
  }, {
@@ -1478,24 +1486,24 @@ var Select = exports.default = /*#__PURE__*/function (_Component) {
1478
1486
  Option = _this$getComponents7.Option;
1479
1487
  var commonProps = this.commonProps;
1480
1488
  var focusedOption = this.state.focusedOption;
1481
- var _this$props12 = this.props,
1482
- captureMenuScroll = _this$props12.captureMenuScroll,
1483
- inputValue = _this$props12.inputValue,
1484
- isLoading = _this$props12.isLoading,
1485
- loadingMessage = _this$props12.loadingMessage,
1486
- minMenuHeight = _this$props12.minMenuHeight,
1487
- maxMenuHeight = _this$props12.maxMenuHeight,
1488
- menuIsOpen = _this$props12.menuIsOpen,
1489
- menuPlacement = _this$props12.menuPlacement,
1490
- menuPosition = _this$props12.menuPosition,
1491
- menuPortalTarget = _this$props12.menuPortalTarget,
1492
- menuShouldBlockScroll = _this$props12.menuShouldBlockScroll,
1493
- menuShouldScrollIntoView = _this$props12.menuShouldScrollIntoView,
1494
- noOptionsMessage = _this$props12.noOptionsMessage,
1495
- onMenuScrollToTop = _this$props12.onMenuScrollToTop,
1496
- onMenuScrollToBottom = _this$props12.onMenuScrollToBottom,
1497
- labelId = _this$props12.labelId,
1498
- label = _this$props12.label;
1489
+ var _this$props13 = this.props,
1490
+ captureMenuScroll = _this$props13.captureMenuScroll,
1491
+ inputValue = _this$props13.inputValue,
1492
+ isLoading = _this$props13.isLoading,
1493
+ loadingMessage = _this$props13.loadingMessage,
1494
+ minMenuHeight = _this$props13.minMenuHeight,
1495
+ maxMenuHeight = _this$props13.maxMenuHeight,
1496
+ menuIsOpen = _this$props13.menuIsOpen,
1497
+ menuPlacement = _this$props13.menuPlacement,
1498
+ menuPosition = _this$props13.menuPosition,
1499
+ menuPortalTarget = _this$props13.menuPortalTarget,
1500
+ menuShouldBlockScroll = _this$props13.menuShouldBlockScroll,
1501
+ menuShouldScrollIntoView = _this$props13.menuShouldScrollIntoView,
1502
+ noOptionsMessage = _this$props13.noOptionsMessage,
1503
+ onMenuScrollToTop = _this$props13.onMenuScrollToTop,
1504
+ onMenuScrollToBottom = _this$props13.onMenuScrollToBottom,
1505
+ labelId = _this$props13.labelId,
1506
+ label = _this$props13.label;
1499
1507
  if (!menuIsOpen) {
1500
1508
  return null;
1501
1509
  }
@@ -1644,12 +1652,12 @@ var Select = exports.default = /*#__PURE__*/function (_Component) {
1644
1652
  key: "renderFormField",
1645
1653
  value: function renderFormField() {
1646
1654
  var _this5 = this;
1647
- var _this$props13 = this.props,
1648
- delimiter = _this$props13.delimiter,
1649
- isDisabled = _this$props13.isDisabled,
1650
- isMulti = _this$props13.isMulti,
1651
- required = _this$props13.required,
1652
- name = _this$props13.name;
1655
+ var _this$props14 = this.props,
1656
+ delimiter = _this$props14.delimiter,
1657
+ isDisabled = _this$props14.isDisabled,
1658
+ isMulti = _this$props14.isMulti,
1659
+ required = _this$props14.required,
1660
+ name = _this$props14.name;
1653
1661
  var selectValue = this.state.selectValue;
1654
1662
  if (required && !this.hasValue() && !isDisabled) {
1655
1663
  return /*#__PURE__*/_react.default.createElement(_internal.RequiredInput, {
@@ -1724,13 +1732,19 @@ var Select = exports.default = /*#__PURE__*/function (_Component) {
1724
1732
  IndicatorsContainer = _this$getComponents8.IndicatorsContainer,
1725
1733
  SelectContainer = _this$getComponents8.SelectContainer,
1726
1734
  ValueContainer = _this$getComponents8.ValueContainer;
1727
- var _this$props14 = this.props,
1728
- className = _this$props14.className,
1729
- id = _this$props14.id,
1730
- isDisabled = _this$props14.isDisabled,
1731
- menuIsOpen = _this$props14.menuIsOpen;
1735
+ var _this$props15 = this.props,
1736
+ className = _this$props15.className,
1737
+ id = _this$props15.id,
1738
+ isDisabled = _this$props15.isDisabled,
1739
+ menuIsOpen = _this$props15.menuIsOpen,
1740
+ isInvalid = _this$props15.isInvalid,
1741
+ _this$props15$appeara = _this$props15.appearance,
1742
+ appearance = _this$props15$appeara === void 0 ? 'default' : _this$props15$appeara,
1743
+ _this$props15$spacing = _this$props15.spacing,
1744
+ spacing = _this$props15$spacing === void 0 ? 'default' : _this$props15$spacing;
1732
1745
  var isFocused = this.state.isFocused;
1733
1746
  var commonProps = this.commonProps = this.getCommonProps();
1747
+ var isCompact = spacing === 'compact';
1734
1748
  return /*#__PURE__*/_react.default.createElement(SelectContainer, (0, _extends2.default)({}, commonProps, {
1735
1749
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
1736
1750
  className: className,
@@ -1746,11 +1760,15 @@ var Select = exports.default = /*#__PURE__*/function (_Component) {
1746
1760
  onMouseDown: this.onControlMouseDown,
1747
1761
  onTouchEnd: this.onControlTouchEnd
1748
1762
  },
1763
+ appearance: appearance,
1764
+ isInvalid: isInvalid,
1749
1765
  isDisabled: isDisabled,
1750
1766
  isFocused: isFocused,
1751
- menuIsOpen: menuIsOpen
1767
+ menuIsOpen: menuIsOpen,
1768
+ isCompact: isCompact
1752
1769
  }), /*#__PURE__*/_react.default.createElement(ValueContainer, (0, _extends2.default)({}, commonProps, {
1753
- isDisabled: isDisabled
1770
+ isDisabled: isDisabled,
1771
+ isCompact: isCompact
1754
1772
  }), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/_react.default.createElement(IndicatorsContainer, (0, _extends2.default)({}, commonProps, {
1755
1773
  isDisabled: isDisabled
1756
1774
  }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());
@@ -17,9 +17,10 @@ export const containerCSS = ({
17
17
  }) => ({
18
18
  label: 'container',
19
19
  direction: isRtl ? 'rtl' : undefined,
20
- pointerEvents: isDisabled ? 'none' : undefined,
21
- // cancel mouse events when disabled
22
- position: 'relative'
20
+ position: 'relative',
21
+ font: "var(--ds-font-body, normal 400 14px/20px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, system-ui, \"Helvetica Neue\", sans-serif)",
22
+ pointerEvents: 'all',
23
+ cursor: isDisabled ? 'not-allowed' : undefined
23
24
  });
24
25
 
25
26
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
@@ -41,15 +42,13 @@ export const SelectContainer = props => {
41
42
  // ==============================
42
43
 
43
44
  export const valueContainerCSS = ({
44
- theme: {
45
- spacing
46
- },
47
45
  isMulti,
48
46
  hasValue,
47
+ isCompact,
49
48
  selectProps: {
50
49
  controlShouldRenderValue
51
50
  }
52
- }, unstyled) => ({
51
+ }) => ({
53
52
  alignItems: 'center',
54
53
  display: isMulti && hasValue && controlShouldRenderValue ? 'flex' : 'grid',
55
54
  flex: 1,
@@ -57,9 +56,7 @@ export const valueContainerCSS = ({
57
56
  WebkitOverflowScrolling: 'touch',
58
57
  position: 'relative',
59
58
  overflow: 'hidden',
60
- ...(unstyled ? {} : {
61
- padding: `${spacing.baseUnit / 2}px ${spacing.baseUnit * 2}px`
62
- })
59
+ padding: `${isCompact ? 0 : "var(--ds-space-025, 2px)"} ${"var(--ds-space-075, 6px)"}`
63
60
  });
64
61
 
65
62
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
@@ -91,7 +88,8 @@ export const indicatorsContainerCSS = () => ({
91
88
  alignItems: 'center',
92
89
  alignSelf: 'stretch',
93
90
  display: 'flex',
94
- flexShrink: 0
91
+ flexShrink: 0,
92
+ paddingRight: "var(--ds-space-050, 4px)"
95
93
  });
96
94
 
97
95
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
@@ -9,34 +9,79 @@ import { getStyleProps } from '../utils';
9
9
  export const css = ({
10
10
  isDisabled,
11
11
  isFocused,
12
- theme: {
13
- colors,
14
- borderRadius,
15
- spacing
12
+ isInvalid,
13
+ isCompact,
14
+ appearance
15
+ }) => {
16
+ let borderColor = isFocused ? "var(--ds-border-focused, #388BFF)" : "var(--ds-border-input, #8590A2)";
17
+ let backgroundColor = isFocused ? "var(--ds-background-input-pressed, #FFFFFF)" : "var(--ds-background-input, #FFFFFF)";
18
+ let backgroundColorHover = isFocused ? "var(--ds-background-input-pressed, #FFFFFF)" : "var(--ds-background-input-hovered, #F7F8F9)";
19
+ let borderColorHover = isFocused ? "var(--ds-border-focused, #388BFF)" : "var(--ds-border-input, #8590A2)";
20
+ if (isDisabled) {
21
+ backgroundColor = "var(--ds-background-disabled, #091E4208)";
22
+ borderColor = "var(--ds-background-disabled, #091E4208)";
16
23
  }
17
- }, unstyled) => ({
18
- label: 'control',
19
- alignItems: 'center',
20
- cursor: 'default',
21
- display: 'flex',
22
- flexWrap: 'wrap',
23
- justifyContent: 'space-between',
24
- minHeight: spacing.controlHeight,
25
- outline: '0 !important',
26
- position: 'relative',
27
- transition: 'all 100ms',
28
- ...(unstyled ? {} : {
29
- backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,
30
- borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,
31
- borderRadius: borderRadius,
24
+ if (isInvalid) {
25
+ borderColor = "var(--ds-border-danger, #E2483D)";
26
+ borderColorHover = "var(--ds-border-danger, #E2483D)";
27
+ }
28
+ const transitionDuration = '200ms';
29
+ if (appearance === 'subtle') {
30
+ borderColor = isFocused ? "var(--ds-border-focused, #388BFF)" : 'transparent';
31
+ backgroundColor = isFocused ? "var(--ds-surface, #FFFFFF)" : 'transparent';
32
+ backgroundColorHover = isFocused ? "var(--ds-background-input-pressed, #FFFFFF)" : "var(--ds-background-input-hovered, #F7F8F9)";
33
+ }
34
+ if (appearance === 'none') {
35
+ borderColor = 'transparent';
36
+ backgroundColor = 'transparent';
37
+ backgroundColorHover = 'transparent';
38
+ borderColorHover = 'transparent';
39
+ }
40
+ return {
41
+ label: 'control',
42
+ alignItems: 'center',
43
+ cursor: 'default',
44
+ display: 'flex',
45
+ flexWrap: 'wrap',
46
+ justifyContent: 'space-between',
47
+ outline: '0 !important',
48
+ position: 'relative',
49
+ // Turn pointer events off when disabled - this makes it so hover etc don't work.
50
+ pointerEvents: isDisabled ? 'none' : undefined,
51
+ backgroundColor,
52
+ borderColor,
32
53
  borderStyle: 'solid',
33
- borderWidth: 1,
34
- boxShadow: isFocused ? `0 0 0 1px ${colors.primary}` : undefined,
35
- '&:hover': {
36
- borderColor: isFocused ? colors.primary : colors.neutral30
54
+ borderRadius: "var(--ds-border-radius-100, 3px)",
55
+ borderWidth: "var(--ds-border-width, 1px)",
56
+ boxShadow: isInvalid ? `inset 0 0 0 ${"var(--ds-border-width, 1px)"} ${borderColor}` : 'none',
57
+ '&:focus-within': {
58
+ boxShadow: `inset 0 0 0 ${"var(--ds-border-width, 1px)"} ${borderColor}`
59
+ },
60
+ minHeight: isCompact ? 32 : 40,
61
+ padding: 0,
62
+ transition: `background-color ${transitionDuration} ease-in-out,
63
+ border-color ${transitionDuration} ease-in-out`,
64
+ '::-webkit-scrollbar': {
65
+ height: 8,
66
+ width: 8
67
+ },
68
+ '::-webkit-scrollbar-corner': {
69
+ display: 'none'
70
+ },
71
+ ':hover': {
72
+ '::-webkit-scrollbar-thumb': {
73
+ // scrollbars occur only if the user passes in a custom component with overflow: scroll
74
+ backgroundColor: 'rgba(0,0,0,0.2)'
75
+ },
76
+ cursor: 'pointer',
77
+ backgroundColor: backgroundColorHover,
78
+ borderColor: borderColorHover
79
+ },
80
+ '::-webkit-scrollbar-thumb:hover': {
81
+ backgroundColor: 'rgba(0,0,0,0.4)'
37
82
  }
38
- })
39
- });
83
+ };
84
+ };
40
85
  const Control = props => {
41
86
  const {
42
87
  children,