@atlaskit/react-select 1.4.0 → 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 (55) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/components/containers.js +9 -7
  3. package/dist/cjs/components/control.js +58 -13
  4. package/dist/cjs/components/group.js +11 -11
  5. package/dist/cjs/components/indicators.js +39 -34
  6. package/dist/cjs/components/input.js +1 -1
  7. package/dist/cjs/components/menu.js +4 -5
  8. package/dist/cjs/components/multi-value.js +86 -30
  9. package/dist/cjs/components/option.js +31 -10
  10. package/dist/cjs/components/placeholder.js +3 -6
  11. package/dist/cjs/components/single-value.js +3 -6
  12. package/dist/cjs/select.js +57 -37
  13. package/dist/es2019/components/containers.js +8 -8
  14. package/dist/es2019/components/control.js +71 -24
  15. package/dist/es2019/components/group.js +10 -18
  16. package/dist/es2019/components/indicators.js +25 -28
  17. package/dist/es2019/components/input.js +1 -1
  18. package/dist/es2019/components/menu.js +6 -11
  19. package/dist/es2019/components/multi-value.js +89 -30
  20. package/dist/es2019/components/option.js +41 -19
  21. package/dist/es2019/components/placeholder.js +3 -7
  22. package/dist/es2019/components/single-value.js +3 -5
  23. package/dist/es2019/select.js +26 -9
  24. package/dist/esm/components/containers.js +9 -7
  25. package/dist/esm/components/control.js +58 -13
  26. package/dist/esm/components/group.js +11 -11
  27. package/dist/esm/components/indicators.js +39 -34
  28. package/dist/esm/components/input.js +1 -1
  29. package/dist/esm/components/menu.js +4 -5
  30. package/dist/esm/components/multi-value.js +86 -30
  31. package/dist/esm/components/option.js +31 -10
  32. package/dist/esm/components/placeholder.js +3 -6
  33. package/dist/esm/components/single-value.js +3 -6
  34. package/dist/esm/select.js +57 -37
  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/menu.d.ts +1 -1
  40. package/dist/types/components/multi-value.d.ts +3 -3
  41. package/dist/types/components/option.d.ts +1 -1
  42. package/dist/types/components/placeholder.d.ts +1 -1
  43. package/dist/types/components/single-value.d.ts +1 -1
  44. package/dist/types/select.d.ts +5 -0
  45. package/dist/types-ts4.5/components/containers.d.ts +5 -1
  46. package/dist/types-ts4.5/components/control.d.ts +10 -1
  47. package/dist/types-ts4.5/components/group.d.ts +2 -2
  48. package/dist/types-ts4.5/components/indicators.d.ts +16 -4
  49. package/dist/types-ts4.5/components/menu.d.ts +1 -1
  50. package/dist/types-ts4.5/components/multi-value.d.ts +3 -3
  51. package/dist/types-ts4.5/components/option.d.ts +1 -1
  52. package/dist/types-ts4.5/components/placeholder.d.ts +1 -1
  53. package/dist/types-ts4.5/components/single-value.d.ts +1 -1
  54. package/dist/types-ts4.5/select.d.ts +5 -0
  55. package/package.json +5 -1
@@ -1,5 +1,5 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  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; }
4
4
  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) { _defineProperty(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; }
5
5
  /**
@@ -8,57 +8,113 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
8
8
  */
9
9
 
10
10
  import { jsx } from '@emotion/react';
11
+ import { fg } from '@atlaskit/platform-feature-flags';
11
12
  import { getStyleProps } from '../utils';
12
13
  import { CrossIcon } from './indicators';
13
14
  export var multiValueCSS = function multiValueCSS(_ref) {
14
- var _ref$theme = _ref.theme,
15
+ var isDisabled = _ref.isDisabled,
16
+ isFocused = _ref.isFocused,
17
+ _ref$theme = _ref.theme,
15
18
  spacing = _ref$theme.spacing,
16
19
  borderRadius = _ref$theme.borderRadius,
17
20
  colors = _ref$theme.colors;
18
- return {
21
+ var backgroundColor;
22
+ var color;
23
+ if (isDisabled) {
24
+ // Use the basic neutral background so it is slightly separate from the
25
+ // field's background
26
+ backgroundColor = "var(--ds-background-neutral, #091E420F)";
27
+ color = "var(--ds-text-disabled, #091E424F)";
28
+ } else if (isFocused) {
29
+ backgroundColor = "var(--ds-background-selected, #E9F2FF)";
30
+ color = "var(--ds-text-selected, hsl(0, 0%, 20%))";
31
+ } else {
32
+ backgroundColor = fg('platform-component-visual-refresh') ? "var(--ds-background-neutral-subtle-hovered, #091E420F)" : "var(--ds-background-neutral, #091E420F)";
33
+ color = "var(--ds-text, hsl(0, 0%, 20%))";
34
+ }
35
+ return _objectSpread({
19
36
  label: 'multiValue',
20
37
  display: 'flex',
21
38
  minWidth: 0,
22
39
  // resolves flex/text-overflow bug
23
- backgroundColor: colors.neutral10,
24
- borderRadius: borderRadius / 2,
25
- margin: spacing.baseUnit / 2
26
- };
40
+ margin: "var(--ds-space-025, 2px)",
41
+ borderRadius: "var(--ds-border-radius-050, 2px)",
42
+ backgroundColor: backgroundColor,
43
+ boxShadow: isFocused ? "0 0 0 2px ".concat("var(--ds-surface, transparent)", ", 0 0 0 4px ", "var(--ds-border-focused, transparent)") : 'none',
44
+ maxWidth: '100%',
45
+ '@media screen and (-ms-high-contrast: active)': {
46
+ border: isFocused ? '1px solid transparent' : 'none'
47
+ },
48
+ color: color
49
+ }, fg('platform-component-visual-refresh') && {
50
+ borderRadius: "var(--ds-border-radius-100, 4px)",
51
+ // Hardcode this color for visual refresh as there is no token color yet
52
+ borderColor: '#B7B9BE',
53
+ borderWidth: "var(--ds-border-width, 1px)",
54
+ borderStyle: 'solid',
55
+ backgroundColor: "var(--ds-background-input, #FFFFFF)"
56
+ });
27
57
  };
28
58
  export var multiValueLabelCSS = function multiValueLabelCSS(_ref2) {
29
- var _ref2$theme = _ref2.theme,
30
- borderRadius = _ref2$theme.borderRadius,
31
- colors = _ref2$theme.colors,
32
- cropWithEllipsis = _ref2.cropWithEllipsis;
33
- return {
59
+ var cropWithEllipsis = _ref2.cropWithEllipsis,
60
+ isDisabled = _ref2.isDisabled;
61
+ return _objectSpread({
34
62
  overflow: 'hidden',
35
63
  textOverflow: cropWithEllipsis || cropWithEllipsis === undefined ? 'ellipsis' : undefined,
36
64
  whiteSpace: 'nowrap',
37
- borderRadius: borderRadius / 2,
38
- color: colors.neutral80,
65
+ borderRadius: "var(--ds-border-radius-050, 2px)",
39
66
  fontSize: '85%',
40
- padding: 3,
41
- paddingLeft: 6
42
- };
67
+ 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)",
68
+ padding: "var(--ds-space-025, 2px)",
69
+ color: isDisabled ? "var(--ds-text-disabled, #091E424F)" : 'inherit',
70
+ paddingLeft: "var(--ds-space-075, 6px)"
71
+ }, fg('platform-component-visual-refresh') && {
72
+ font: "var(--ds-font-body, normal 400 14px/20px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, system-ui, \"Helvetica Neue\", sans-serif)",
73
+ paddingTop: 0,
74
+ paddingBottom: 0,
75
+ paddingLeft: "var(--ds-space-050, 4px)"
76
+ });
43
77
  };
44
78
  export var multiValueRemoveCSS = function multiValueRemoveCSS(_ref3) {
45
- var _ref3$theme = _ref3.theme,
46
- spacing = _ref3$theme.spacing,
47
- borderRadius = _ref3$theme.borderRadius,
48
- colors = _ref3$theme.colors,
49
- isFocused = _ref3.isFocused;
50
- return {
79
+ var isFocused = _ref3.isFocused;
80
+ return _objectSpread({
51
81
  alignItems: 'center',
52
82
  display: 'flex',
53
- borderRadius: borderRadius / 2,
54
- backgroundColor: isFocused ? colors.dangerLight : undefined,
55
- paddingLeft: spacing.baseUnit,
56
- paddingRight: spacing.baseUnit,
83
+ backgroundColor: isFocused ? "var(--ds-UNSAFE-transparent, transparent)" : undefined,
84
+ fill: isFocused ? "var(--ds-text-selected, #000)" : "var(--ds-text, #000)",
85
+ paddingLeft: "var(--ds-space-025, 2px)",
86
+ paddingRight: "var(--ds-space-025, 2px)",
87
+ borderRadius: '0px 2px 2px 0px',
88
+ // DSP-6470 we should style like Tag once we have the :has selector
89
+ ':hover': {
90
+ backgroundColor: "var(--ds-background-danger-hovered, #FFD5D2)",
91
+ fill: "var(--ds-text-danger, #000)"
92
+ },
93
+ ':active': {
94
+ backgroundColor: "var(--ds-background-danger-pressed, #FD9891)",
95
+ fill: "var(--ds-text-danger, #000)"
96
+ }
97
+ }, fg('platform-component-visual-refresh') && {
98
+ backgroundColor: "var(--ds-background-neutral-subtle, #00000000)",
99
+ border: 'none',
100
+ alignItems: 'center',
101
+ justifyContent: 'center',
102
+ alignSelf: 'center',
103
+ appearance: 'none',
104
+ borderRadius: "var(--ds-border-radius, 4px)",
105
+ color: "var(--ds-text, #172B4D)",
106
+ padding: "var(--ds-space-025, 2px)",
107
+ marginRight: "var(--ds-space-025, 2px)",
108
+ ':focus-visible': {
109
+ outlineOffset: "var(--ds-space-negative-025, -2px)"
110
+ },
57
111
  ':hover': {
58
- backgroundColor: colors.dangerLight,
59
- color: colors.danger
112
+ backgroundColor: "var(--ds-background-neutral-subtle-hovered, #091E420F)"
113
+ },
114
+ ':active': {
115
+ backgroundColor: "var(--ds-background-neutral-subtle-pressed, #091E4224)"
60
116
  }
61
- };
117
+ });
62
118
  };
63
119
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
64
120
  export var MultiValueGeneric = function MultiValueGeneric(_ref4) {
@@ -9,24 +9,45 @@ import { getStyleProps } from '../utils';
9
9
  export var optionCSS = function optionCSS(_ref) {
10
10
  var isDisabled = _ref.isDisabled,
11
11
  isFocused = _ref.isFocused,
12
- isSelected = _ref.isSelected,
13
- _ref$theme = _ref.theme,
14
- spacing = _ref$theme.spacing,
15
- colors = _ref$theme.colors;
12
+ isSelected = _ref.isSelected;
13
+ var color = "var(--ds-text, #172B4D)";
14
+ if (isDisabled) {
15
+ color = "var(--ds-text-disabled, #091E424F)";
16
+ } else if (isSelected) {
17
+ color = "var(--ds-text-selected, #0C66E4)";
18
+ }
19
+ var boxShadow;
20
+ var backgroundColor;
21
+ if (isDisabled) {
22
+ backgroundColor = undefined;
23
+ } else if (isSelected && isFocused) {
24
+ backgroundColor = "var(--ds-background-selected-hovered, #CCE0FF)";
25
+ } else if (isSelected) {
26
+ backgroundColor = "var(--ds-background-selected, #E9F2FF)";
27
+ } else if (isFocused) {
28
+ backgroundColor = "var(--ds-background-neutral-subtle-hovered, #091E420F)";
29
+ }
30
+ if (!isDisabled && (isFocused || isSelected)) {
31
+ boxShadow = "inset 2px 0px 0px ".concat("var(--ds-border-selected, #0C66E4)");
32
+ }
33
+ var cursor = isDisabled ? 'not-allowed' : 'default';
16
34
  return {
17
35
  label: 'option',
18
- cursor: 'default',
19
36
  display: 'block',
20
37
  fontSize: 'inherit',
21
38
  width: '100%',
22
39
  userSelect: 'none',
23
40
  WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',
24
- backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',
25
- color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',
26
- padding: "".concat(spacing.baseUnit * 2, "px ").concat(spacing.baseUnit * 3, "px"),
27
- // provide some affordance on touch devices
41
+ padding: "var(--ds-space-075, 6px)".concat(" ", "var(--ds-space-150, 12px)"),
42
+ backgroundColor: backgroundColor,
43
+ color: color,
44
+ cursor: cursor,
45
+ boxShadow: boxShadow,
28
46
  ':active': {
29
- backgroundColor: !isDisabled ? isSelected ? colors.primary : colors.primary50 : undefined
47
+ backgroundColor: !isDisabled ? isSelected ? "var(--ds-background-selected-pressed, #85B8FF)" : "var(--ds-background-neutral-subtle-pressed, #091E4224)" : undefined
48
+ },
49
+ '@media screen and (-ms-high-contrast: active)': {
50
+ borderLeft: !isDisabled && (isFocused || isSelected) ? '2px solid transparent' : ''
30
51
  }
31
52
  };
32
53
  };
@@ -7,15 +7,12 @@ import _extends from "@babel/runtime/helpers/extends";
7
7
  import { jsx } from '@emotion/react';
8
8
  import { getStyleProps } from '../utils';
9
9
  export var placeholderCSS = function placeholderCSS(_ref) {
10
- var _ref$theme = _ref.theme,
11
- spacing = _ref$theme.spacing,
12
- colors = _ref$theme.colors;
10
+ var isDisabled = _ref.isDisabled;
13
11
  return {
14
12
  label: 'placeholder',
15
13
  gridArea: '1 / 1 / 2 / 3',
16
- color: colors.neutral50,
17
- marginLeft: spacing.baseUnit / 2,
18
- marginRight: spacing.baseUnit / 2
14
+ margin: "0 ".concat("var(--ds-space-025, 2px)"),
15
+ color: isDisabled ? "var(--ds-text-disabled, #091E424F)" : "var(--ds-text-subtlest, #626F86)"
19
16
  };
20
17
  };
21
18
  var Placeholder = function Placeholder(props) {
@@ -8,9 +8,7 @@ import { jsx } from '@emotion/react';
8
8
  import { getStyleProps } from '../utils';
9
9
  export var css = function css(_ref) {
10
10
  var isDisabled = _ref.isDisabled,
11
- _ref$theme = _ref.theme,
12
- spacing = _ref$theme.spacing,
13
- colors = _ref$theme.colors;
11
+ spacing = _ref.theme.spacing;
14
12
  return {
15
13
  label: 'singleValue',
16
14
  gridArea: '1 / 1 / 2 / 3',
@@ -18,9 +16,8 @@ export var css = function css(_ref) {
18
16
  overflow: 'hidden',
19
17
  textOverflow: 'ellipsis',
20
18
  whiteSpace: 'nowrap',
21
- color: isDisabled ? colors.neutral40 : colors.neutral80,
22
- marginLeft: spacing.baseUnit / 2,
23
- marginRight: spacing.baseUnit / 2
19
+ margin: "0 ".concat("var(--ds-space-025, 2px)"),
20
+ color: isDisabled ? "var(--ds-text-disabled, #091E424F)" : "var(--ds-text, #172B4D)"
24
21
  };
25
22
  };
26
23
  var SingleValue = function SingleValue(props) {
@@ -1371,7 +1371,8 @@ var Select = /*#__PURE__*/function (_Component) {
1371
1371
  var _this$props10 = this.props,
1372
1372
  clearControlLabel = _this$props10.clearControlLabel,
1373
1373
  isDisabled = _this$props10.isDisabled,
1374
- isLoading = _this$props10.isLoading;
1374
+ isLoading = _this$props10.isLoading,
1375
+ spacing = _this$props10.spacing;
1375
1376
  var isFocused = this.state.isFocused;
1376
1377
  if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {
1377
1378
  return null;
@@ -1381,11 +1382,13 @@ var Select = /*#__PURE__*/function (_Component) {
1381
1382
  onTouchEnd: this.onClearIndicatorTouchEnd,
1382
1383
  'aria-hidden': 'true'
1383
1384
  };
1385
+ var isCompact = spacing === 'compact';
1384
1386
  return /*#__PURE__*/React.createElement(ClearIndicator, _extends({
1385
1387
  clearControlLabel: clearControlLabel
1386
1388
  }, commonProps, {
1387
1389
  innerProps: innerProps,
1388
- isFocused: isFocused
1390
+ isFocused: isFocused,
1391
+ isCompact: isCompact
1389
1392
  }));
1390
1393
  }
1391
1394
  }, {
@@ -1396,18 +1399,21 @@ var Select = /*#__PURE__*/function (_Component) {
1396
1399
  var commonProps = this.commonProps;
1397
1400
  var _this$props11 = this.props,
1398
1401
  isDisabled = _this$props11.isDisabled,
1399
- isLoading = _this$props11.isLoading;
1402
+ isLoading = _this$props11.isLoading,
1403
+ spacing = _this$props11.spacing;
1400
1404
  var isFocused = this.state.isFocused;
1401
1405
  if (!LoadingIndicator || !isLoading) {
1402
1406
  return null;
1403
1407
  }
1408
+ var isCompact = spacing === 'compact';
1404
1409
  var innerProps = {
1405
1410
  'aria-hidden': 'true'
1406
1411
  };
1407
1412
  return /*#__PURE__*/React.createElement(LoadingIndicator, _extends({}, commonProps, {
1408
1413
  innerProps: innerProps,
1409
1414
  isDisabled: isDisabled,
1410
- isFocused: isFocused
1415
+ isFocused: isFocused,
1416
+ isCompact: isCompact
1411
1417
  }));
1412
1418
  }
1413
1419
  }, {
@@ -1438,8 +1444,11 @@ var Select = /*#__PURE__*/function (_Component) {
1438
1444
  return null;
1439
1445
  }
1440
1446
  var commonProps = this.commonProps;
1441
- var isDisabled = this.props.isDisabled;
1447
+ var _this$props12 = this.props,
1448
+ isDisabled = _this$props12.isDisabled,
1449
+ spacing = _this$props12.spacing;
1442
1450
  var isFocused = this.state.isFocused;
1451
+ var isCompact = spacing === 'compact';
1443
1452
  var innerProps = {
1444
1453
  onMouseDown: this.onDropdownIndicatorMouseDown,
1445
1454
  onTouchEnd: this.onDropdownIndicatorTouchEnd,
@@ -1448,7 +1457,8 @@ var Select = /*#__PURE__*/function (_Component) {
1448
1457
  return /*#__PURE__*/React.createElement(DropdownIndicator, _extends({}, commonProps, {
1449
1458
  innerProps: innerProps,
1450
1459
  isDisabled: isDisabled,
1451
- isFocused: isFocused
1460
+ isFocused: isFocused,
1461
+ isCompact: isCompact
1452
1462
  }));
1453
1463
  }
1454
1464
  }, {
@@ -1466,24 +1476,24 @@ var Select = /*#__PURE__*/function (_Component) {
1466
1476
  Option = _this$getComponents7.Option;
1467
1477
  var commonProps = this.commonProps;
1468
1478
  var focusedOption = this.state.focusedOption;
1469
- var _this$props12 = this.props,
1470
- captureMenuScroll = _this$props12.captureMenuScroll,
1471
- inputValue = _this$props12.inputValue,
1472
- isLoading = _this$props12.isLoading,
1473
- loadingMessage = _this$props12.loadingMessage,
1474
- minMenuHeight = _this$props12.minMenuHeight,
1475
- maxMenuHeight = _this$props12.maxMenuHeight,
1476
- menuIsOpen = _this$props12.menuIsOpen,
1477
- menuPlacement = _this$props12.menuPlacement,
1478
- menuPosition = _this$props12.menuPosition,
1479
- menuPortalTarget = _this$props12.menuPortalTarget,
1480
- menuShouldBlockScroll = _this$props12.menuShouldBlockScroll,
1481
- menuShouldScrollIntoView = _this$props12.menuShouldScrollIntoView,
1482
- noOptionsMessage = _this$props12.noOptionsMessage,
1483
- onMenuScrollToTop = _this$props12.onMenuScrollToTop,
1484
- onMenuScrollToBottom = _this$props12.onMenuScrollToBottom,
1485
- labelId = _this$props12.labelId,
1486
- label = _this$props12.label;
1479
+ var _this$props13 = this.props,
1480
+ captureMenuScroll = _this$props13.captureMenuScroll,
1481
+ inputValue = _this$props13.inputValue,
1482
+ isLoading = _this$props13.isLoading,
1483
+ loadingMessage = _this$props13.loadingMessage,
1484
+ minMenuHeight = _this$props13.minMenuHeight,
1485
+ maxMenuHeight = _this$props13.maxMenuHeight,
1486
+ menuIsOpen = _this$props13.menuIsOpen,
1487
+ menuPlacement = _this$props13.menuPlacement,
1488
+ menuPosition = _this$props13.menuPosition,
1489
+ menuPortalTarget = _this$props13.menuPortalTarget,
1490
+ menuShouldBlockScroll = _this$props13.menuShouldBlockScroll,
1491
+ menuShouldScrollIntoView = _this$props13.menuShouldScrollIntoView,
1492
+ noOptionsMessage = _this$props13.noOptionsMessage,
1493
+ onMenuScrollToTop = _this$props13.onMenuScrollToTop,
1494
+ onMenuScrollToBottom = _this$props13.onMenuScrollToBottom,
1495
+ labelId = _this$props13.labelId,
1496
+ label = _this$props13.label;
1487
1497
  if (!menuIsOpen) {
1488
1498
  return null;
1489
1499
  }
@@ -1632,12 +1642,12 @@ var Select = /*#__PURE__*/function (_Component) {
1632
1642
  key: "renderFormField",
1633
1643
  value: function renderFormField() {
1634
1644
  var _this5 = this;
1635
- var _this$props13 = this.props,
1636
- delimiter = _this$props13.delimiter,
1637
- isDisabled = _this$props13.isDisabled,
1638
- isMulti = _this$props13.isMulti,
1639
- required = _this$props13.required,
1640
- name = _this$props13.name;
1645
+ var _this$props14 = this.props,
1646
+ delimiter = _this$props14.delimiter,
1647
+ isDisabled = _this$props14.isDisabled,
1648
+ isMulti = _this$props14.isMulti,
1649
+ required = _this$props14.required,
1650
+ name = _this$props14.name;
1641
1651
  var selectValue = this.state.selectValue;
1642
1652
  if (required && !this.hasValue() && !isDisabled) {
1643
1653
  return /*#__PURE__*/React.createElement(RequiredInput, {
@@ -1712,13 +1722,19 @@ var Select = /*#__PURE__*/function (_Component) {
1712
1722
  IndicatorsContainer = _this$getComponents8.IndicatorsContainer,
1713
1723
  SelectContainer = _this$getComponents8.SelectContainer,
1714
1724
  ValueContainer = _this$getComponents8.ValueContainer;
1715
- var _this$props14 = this.props,
1716
- className = _this$props14.className,
1717
- id = _this$props14.id,
1718
- isDisabled = _this$props14.isDisabled,
1719
- menuIsOpen = _this$props14.menuIsOpen;
1725
+ var _this$props15 = this.props,
1726
+ className = _this$props15.className,
1727
+ id = _this$props15.id,
1728
+ isDisabled = _this$props15.isDisabled,
1729
+ menuIsOpen = _this$props15.menuIsOpen,
1730
+ isInvalid = _this$props15.isInvalid,
1731
+ _this$props15$appeara = _this$props15.appearance,
1732
+ appearance = _this$props15$appeara === void 0 ? 'default' : _this$props15$appeara,
1733
+ _this$props15$spacing = _this$props15.spacing,
1734
+ spacing = _this$props15$spacing === void 0 ? 'default' : _this$props15$spacing;
1720
1735
  var isFocused = this.state.isFocused;
1721
1736
  var commonProps = this.commonProps = this.getCommonProps();
1737
+ var isCompact = spacing === 'compact';
1722
1738
  return /*#__PURE__*/React.createElement(SelectContainer, _extends({}, commonProps, {
1723
1739
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
1724
1740
  className: className,
@@ -1734,11 +1750,15 @@ var Select = /*#__PURE__*/function (_Component) {
1734
1750
  onMouseDown: this.onControlMouseDown,
1735
1751
  onTouchEnd: this.onControlTouchEnd
1736
1752
  },
1753
+ appearance: appearance,
1754
+ isInvalid: isInvalid,
1737
1755
  isDisabled: isDisabled,
1738
1756
  isFocused: isFocused,
1739
- menuIsOpen: menuIsOpen
1757
+ menuIsOpen: menuIsOpen,
1758
+ isCompact: isCompact
1740
1759
  }), /*#__PURE__*/React.createElement(ValueContainer, _extends({}, commonProps, {
1741
- isDisabled: isDisabled
1760
+ isDisabled: isDisabled,
1761
+ isCompact: isCompact
1742
1762
  }), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/React.createElement(IndicatorsContainer, _extends({}, commonProps, {
1743
1763
  isDisabled: isDisabled
1744
1764
  }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());
@@ -32,8 +32,12 @@ export interface ValueContainerProps<Option = unknown, IsMulti extends boolean =
32
32
  */
33
33
  children: ReactNode;
34
34
  isDisabled: boolean;
35
+ /**
36
+ * Whether the select is compact.
37
+ */
38
+ isCompact?: boolean;
35
39
  }
36
- export declare const valueContainerCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing }, isMulti, hasValue, selectProps: { controlShouldRenderValue }, }: ValueContainerProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
40
+ export declare const valueContainerCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isMulti, hasValue, isCompact, selectProps: { controlShouldRenderValue }, }: ValueContainerProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
37
41
  export declare const ValueContainer: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: ValueContainerProps<Option, IsMulti, Group>) => jsx.JSX.Element;
38
42
  export interface IndicatorsContainerProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> extends CommonPropsAndClassName<Option, IsMulti, Group> {
39
43
  isDisabled: boolean;
@@ -23,11 +23,20 @@ export interface ControlProps<Option = unknown, IsMulti extends boolean = boolea
23
23
  * Whether the select is focused.
24
24
  */
25
25
  isFocused: boolean;
26
+ /**
27
+ * Whether the select is invalid.
28
+ */
29
+ isInvalid: boolean | undefined;
30
+ /**
31
+ * Whether the select is compact.
32
+ */
33
+ isCompact?: boolean;
34
+ appearance?: 'default' | 'subtle' | 'none';
26
35
  /**
27
36
  * Whether the select is expanded.
28
37
  */
29
38
  menuIsOpen: boolean;
30
39
  }
31
- export declare const css: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, theme: { colors, borderRadius, spacing }, }: ControlProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
40
+ export declare const css: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, isInvalid, isCompact, appearance, }: ControlProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
32
41
  declare const Control: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: ControlProps<Option, IsMulti, Group>) => jsx.JSX.Element;
33
42
  export default Control;
@@ -37,7 +37,7 @@ export interface GroupProps<Option = unknown, IsMulti extends boolean = boolean,
37
37
  data: Group;
38
38
  options: Options<Option>;
39
39
  }
40
- export declare const groupCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing }, }: GroupProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
40
+ export declare const groupCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({}: GroupProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
41
41
  declare const Group: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: GroupProps<Option, IsMulti, Group>) => jsx.JSX.Element;
42
42
  interface GroupHeadingPropsDefinedProps<Option, IsMulti extends boolean, Group extends GroupBase<Option>> extends ForwardedHeadingProps<Option, Group> {
43
43
  className?: string | undefined;
@@ -48,6 +48,6 @@ interface GroupHeadingPropsDefinedProps<Option, IsMulti extends boolean, Group e
48
48
  cx: CX;
49
49
  }
50
50
  export type GroupHeadingProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> = GroupHeadingPropsDefinedProps<Option, IsMulti, Group> & JSX.IntrinsicElements['div'];
51
- export declare const groupHeadingCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { colors, spacing }, }: GroupHeadingProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
51
+ export declare const groupHeadingCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({}: GroupHeadingProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
52
52
  export declare const GroupHeading: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: GroupHeadingProps<Option, IsMulti, Group>) => jsx.JSX.Element;
53
53
  export default Group;
@@ -27,8 +27,12 @@ export interface DropdownIndicatorProps<Option = unknown, IsMulti extends boolea
27
27
  */
28
28
  isFocused: boolean;
29
29
  isDisabled: boolean;
30
+ /**
31
+ * Whether the select is compact.
32
+ */
33
+ isCompact?: boolean;
30
34
  }
31
- export declare const dropdownIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isFocused, theme: { spacing: { baseUnit }, colors, }, }: DropdownIndicatorProps<Option, IsMulti, Group> | ClearIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
35
+ export declare const dropdownIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isCompact, isDisabled, }: DropdownIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
32
36
  export declare const DropdownIndicator: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: DropdownIndicatorProps<Option, IsMulti, Group>) => jsx.JSX.Element;
33
37
  export interface ClearIndicatorProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> extends CommonPropsAndClassName<Option, IsMulti, Group> {
34
38
  /**
@@ -47,17 +51,21 @@ export interface ClearIndicatorProps<Option = unknown, IsMulti extends boolean =
47
51
  * The focused state of the select.
48
52
  */
49
53
  isFocused: boolean;
54
+ /**
55
+ * Whether the select is compact.
56
+ */
57
+ isCompact?: boolean;
50
58
  }
51
- export declare const clearIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isFocused, theme: { spacing: { baseUnit }, colors, }, }: DropdownIndicatorProps<Option, IsMulti, Group> | ClearIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
59
+ export declare const clearIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isCompact, }: ClearIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
52
60
  export declare const ClearIndicator: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: ClearIndicatorProps<Option, IsMulti, Group>) => jsx.JSX.Element;
53
61
  export interface IndicatorSeparatorProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> extends CommonPropsAndClassName<Option, IsMulti, Group> {
54
62
  isDisabled: boolean;
55
63
  isFocused: boolean;
56
64
  innerProps?: JSX.IntrinsicElements['span'];
57
65
  }
58
- export declare const indicatorSeparatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, theme: { spacing: { baseUnit }, colors, }, }: IndicatorSeparatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
66
+ export declare const indicatorSeparatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, }: IndicatorSeparatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
59
67
  export declare const IndicatorSeparator: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: IndicatorSeparatorProps<Option, IsMulti, Group>) => jsx.JSX.Element;
60
- export declare const loadingIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isFocused, size, theme: { colors, spacing: { baseUnit }, }, }: LoadingIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
68
+ export declare const loadingIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isFocused, size, isCompact, theme: { colors }, }: LoadingIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
61
69
  export interface LoadingIndicatorProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> extends CommonPropsAndClassName<Option, IsMulti, Group> {
62
70
  /**
63
71
  * Props that will be passed on to the children.
@@ -72,5 +80,9 @@ export interface LoadingIndicatorProps<Option = unknown, IsMulti extends boolean
72
80
  * Set size of the container.
73
81
  */
74
82
  size: number;
83
+ /**
84
+ * Whether the select is compact.
85
+ */
86
+ isCompact?: boolean;
75
87
  }
76
88
  export declare const LoadingIndicator: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ innerProps, isRtl, size, ...restProps }: LoadingIndicatorProps<Option, IsMulti, Group>) => jsx.JSX.Element;
@@ -94,7 +94,7 @@ export interface MenuListProps<Option = unknown, IsMulti extends boolean = boole
94
94
  */
95
95
  innerProps: JSX.IntrinsicElements['div'];
96
96
  }
97
- export declare const menuListCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ maxHeight, theme: { spacing: { baseUnit }, }, }: MenuListProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
97
+ export declare const menuListCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ maxHeight, }: MenuListProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
98
98
  export declare const MenuList: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: MenuListProps<Option, IsMulti, Group>) => jsx.JSX.Element;
99
99
  export declare const noOptionsMessageCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing: { baseUnit }, colors, }, }: NoticeProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
100
100
  export declare const loadingMessageCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing: { baseUnit }, colors, }, }: NoticeProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
@@ -22,9 +22,9 @@ export interface MultiValueProps<Option = unknown, IsMulti extends boolean = boo
22
22
  removeProps: JSX.IntrinsicElements['div'];
23
23
  index: number;
24
24
  }
25
- export declare const multiValueCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing, borderRadius, colors }, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
26
- export declare const multiValueLabelCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { borderRadius, colors }, cropWithEllipsis, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
27
- export declare const multiValueRemoveCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing, borderRadius, colors }, isFocused, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
25
+ export declare const multiValueCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, theme: { spacing, borderRadius, colors }, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
26
+ export declare const multiValueLabelCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ cropWithEllipsis, isDisabled, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
27
+ export declare const multiValueRemoveCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isFocused, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
28
28
  export interface MultiValueGenericProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> {
29
29
  children: ReactNode;
30
30
  data: any;
@@ -44,6 +44,6 @@ export interface OptionProps<Option = unknown, IsMulti extends boolean = boolean
44
44
  */
45
45
  isSelected: boolean;
46
46
  }
47
- export declare const optionCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, isSelected, theme: { spacing, colors }, }: OptionProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
47
+ export declare const optionCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, isSelected, }: OptionProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
48
48
  declare const Option: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: OptionProps<Option, IsMulti, Group>) => jsx.JSX.Element;
49
49
  export default Option;
@@ -17,6 +17,6 @@ export interface PlaceholderProps<Option = unknown, IsMulti extends boolean = bo
17
17
  isDisabled: boolean;
18
18
  isFocused: boolean;
19
19
  }
20
- export declare const placeholderCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing, colors }, }: PlaceholderProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
20
+ export declare const placeholderCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, }: PlaceholderProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
21
21
  declare const Placeholder: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: PlaceholderProps<Option, IsMulti, Group>) => jsx.JSX.Element;
22
22
  export default Placeholder;
@@ -23,6 +23,6 @@ export interface SingleValueProps<Option = unknown, IsMulti extends boolean = bo
23
23
  */
24
24
  isDisabled: boolean;
25
25
  }
26
- export declare const css: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, theme: { spacing, colors }, }: SingleValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
26
+ export declare const css: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, theme: { spacing }, }: SingleValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
27
27
  declare const SingleValue: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: SingleValueProps<Option, IsMulti, Group>) => jsx.JSX.Element;
28
28
  export default SingleValue;
@@ -405,6 +405,11 @@ export interface SelectProps<Option, IsMulti extends boolean, Group extends Grou
405
405
  * Use `isRequired` instead.
406
406
  */
407
407
  required?: boolean;
408
+ /**
409
+ * This prop affects the height of the select control. Compact is gridSize() * 4, default is gridSize * 5
410
+ */
411
+ spacing?: 'compact' | 'default';
412
+ appearance: 'default' | 'subtle' | 'none';
408
413
  [key: string]: any;
409
414
  }
410
415
  export declare const defaultProps: {
@@ -32,8 +32,12 @@ export interface ValueContainerProps<Option = unknown, IsMulti extends boolean =
32
32
  */
33
33
  children: ReactNode;
34
34
  isDisabled: boolean;
35
+ /**
36
+ * Whether the select is compact.
37
+ */
38
+ isCompact?: boolean;
35
39
  }
36
- export declare const valueContainerCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing }, isMulti, hasValue, selectProps: { controlShouldRenderValue }, }: ValueContainerProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
40
+ export declare const valueContainerCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isMulti, hasValue, isCompact, selectProps: { controlShouldRenderValue }, }: ValueContainerProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
37
41
  export declare const ValueContainer: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: ValueContainerProps<Option, IsMulti, Group>) => jsx.JSX.Element;
38
42
  export interface IndicatorsContainerProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> extends CommonPropsAndClassName<Option, IsMulti, Group> {
39
43
  isDisabled: boolean;
@@ -23,11 +23,20 @@ export interface ControlProps<Option = unknown, IsMulti extends boolean = boolea
23
23
  * Whether the select is focused.
24
24
  */
25
25
  isFocused: boolean;
26
+ /**
27
+ * Whether the select is invalid.
28
+ */
29
+ isInvalid: boolean | undefined;
30
+ /**
31
+ * Whether the select is compact.
32
+ */
33
+ isCompact?: boolean;
34
+ appearance?: 'default' | 'subtle' | 'none';
26
35
  /**
27
36
  * Whether the select is expanded.
28
37
  */
29
38
  menuIsOpen: boolean;
30
39
  }
31
- export declare const css: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, theme: { colors, borderRadius, spacing }, }: ControlProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
40
+ export declare const css: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, isInvalid, isCompact, appearance, }: ControlProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
32
41
  declare const Control: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: ControlProps<Option, IsMulti, Group>) => jsx.JSX.Element;
33
42
  export default Control;