@atlaskit/react-select 1.5.1 → 1.6.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.
Files changed (60) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/components/group.js +2 -7
  3. package/dist/cjs/components/index.js +0 -3
  4. package/dist/cjs/components/indicators.js +54 -133
  5. package/dist/cjs/components/input.js +5 -8
  6. package/dist/cjs/components/menu.js +23 -21
  7. package/dist/cjs/components/multi-value.js +47 -10
  8. package/dist/cjs/components/single-value.js +1 -2
  9. package/dist/cjs/index.js +0 -7
  10. package/dist/cjs/select.js +88 -131
  11. package/dist/cjs/styles.js +0 -1
  12. package/dist/cjs/utils.js +1 -2
  13. package/dist/es2019/components/group.js +2 -7
  14. package/dist/es2019/components/index.js +1 -4
  15. package/dist/es2019/components/indicators.js +39 -113
  16. package/dist/es2019/components/input.js +5 -9
  17. package/dist/es2019/components/menu.js +23 -29
  18. package/dist/es2019/components/multi-value.js +48 -12
  19. package/dist/es2019/components/single-value.js +1 -4
  20. package/dist/es2019/index.js +0 -1
  21. package/dist/es2019/select.js +7 -52
  22. package/dist/es2019/styles.js +1 -2
  23. package/dist/es2019/utils.js +0 -2
  24. package/dist/esm/components/group.js +2 -7
  25. package/dist/esm/components/index.js +1 -4
  26. package/dist/esm/components/indicators.js +54 -133
  27. package/dist/esm/components/input.js +5 -8
  28. package/dist/esm/components/menu.js +23 -21
  29. package/dist/esm/components/multi-value.js +48 -11
  30. package/dist/esm/components/single-value.js +1 -2
  31. package/dist/esm/index.js +0 -1
  32. package/dist/esm/select.js +88 -131
  33. package/dist/esm/styles.js +1 -2
  34. package/dist/esm/utils.js +1 -2
  35. package/dist/types/components/group.d.ts +1 -2
  36. package/dist/types/components/index.d.ts +16 -22
  37. package/dist/types/components/indicators.d.ts +1 -16
  38. package/dist/types/components/input.d.ts +1 -1
  39. package/dist/types/components/menu.d.ts +3 -3
  40. package/dist/types/components/multi-value.d.ts +3 -2
  41. package/dist/types/components/single-value.d.ts +1 -1
  42. package/dist/types/index.d.ts +1 -3
  43. package/dist/types/select.d.ts +15 -28
  44. package/dist/types/styles.d.ts +1 -3
  45. package/dist/types/theme.d.ts +0 -1
  46. package/dist/types/types.d.ts +0 -1
  47. package/dist/types-ts4.5/components/group.d.ts +1 -2
  48. package/dist/types-ts4.5/components/index.d.ts +16 -22
  49. package/dist/types-ts4.5/components/indicators.d.ts +1 -16
  50. package/dist/types-ts4.5/components/input.d.ts +1 -1
  51. package/dist/types-ts4.5/components/menu.d.ts +3 -3
  52. package/dist/types-ts4.5/components/multi-value.d.ts +3 -2
  53. package/dist/types-ts4.5/components/single-value.d.ts +1 -1
  54. package/dist/types-ts4.5/index.d.ts +1 -3
  55. package/dist/types-ts4.5/select.d.ts +15 -28
  56. package/dist/types-ts4.5/styles.d.ts +1 -3
  57. package/dist/types-ts4.5/theme.d.ts +0 -1
  58. package/dist/types-ts4.5/types.d.ts +0 -1
  59. package/package.json +11 -2
  60. package/types/package.json +17 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/react-select
2
2
 
3
+ ## 1.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#177875](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/177875)
8
+ [`d0c3d27216b7c`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/d0c3d27216b7c) -
9
+ Remove theme prop and merge customized components for performance
10
+
11
+ ## 1.5.2
12
+
13
+ ### Patch Changes
14
+
15
+ - [#167291](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/167291)
16
+ [`4645a4d115b15`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/4645a4d115b15) -
17
+ Fix the calculation of scroll space below to place menu bottom as much as possible
18
+
3
19
  ## 1.5.1
4
20
 
5
21
  ### Patch Changes
@@ -31,15 +31,11 @@ var Group = function Group(props) {
31
31
  headingProps = props.headingProps,
32
32
  innerProps = props.innerProps,
33
33
  label = props.label,
34
- theme = props.theme,
35
34
  selectProps = props.selectProps;
36
35
  return (0, _react.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(props, 'group', {
37
36
  group: true
38
37
  }), innerProps), (0, _react.jsx)(Heading, (0, _extends2.default)({}, headingProps, {
39
- selectProps: selectProps
40
- // eslint-disable-next-line @repo/internal/react/no-unsafe-overrides
41
- ,
42
- theme: theme,
38
+ selectProps: selectProps,
43
39
  getStyles: getStyles,
44
40
  getClassNames: getClassNames,
45
41
  cx: cx
@@ -51,13 +47,12 @@ var groupHeadingCSS = exports.groupHeadingCSS = function groupHeadingCSS(_ref2)
51
47
  label: 'group',
52
48
  cursor: 'default',
53
49
  display: 'block',
54
- fontSize: '75%',
55
50
  marginBottom: '0.25em',
56
51
  paddingLeft: "var(--ds-space-150, 12px)",
57
52
  paddingRight: "var(--ds-space-150, 12px)",
58
53
  font: "var(--ds-font-body-small, normal 400 11px/16px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, system-ui, \"Helvetica Neue\", sans-serif)",
59
54
  color: "var(--ds-text-subtle, #44546F)",
60
- fontWeight: "var(--ds-font-weight-bold, 700)".concat(" !important"),
55
+ fontWeight: "var(--ds-font-weight-bold, 700)",
61
56
  textTransform: 'none'
62
57
  };
63
58
  };
@@ -25,12 +25,9 @@ var components = exports.components = {
25
25
  ClearIndicator: _indicators.ClearIndicator,
26
26
  Control: _control.default,
27
27
  DropdownIndicator: _indicators.DropdownIndicator,
28
- DownChevron: _indicators.DownChevron,
29
- CrossIcon: _indicators.CrossIcon,
30
28
  Group: _group.default,
31
29
  GroupHeading: _group.GroupHeading,
32
30
  IndicatorsContainer: _containers.IndicatorsContainer,
33
- IndicatorSeparator: _indicators.IndicatorSeparator,
34
31
  Input: _input.default,
35
32
  LoadingIndicator: _indicators.LoadingIndicator,
36
33
  Menu: _menu.default,
@@ -4,14 +4,17 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.loadingIndicatorCSS = exports.indicatorSeparatorCSS = exports.dropdownIndicatorCSS = exports.clearIndicatorCSS = exports.LoadingIndicator = exports.IndicatorSeparator = exports.DropdownIndicator = exports.DownChevron = exports.CrossIcon = exports.ClearIndicator = void 0;
7
+ exports.loadingIndicatorCSS = exports.dropdownIndicatorCSS = exports.clearIndicatorCSS = exports.LoadingIndicator = exports.DropdownIndicator = exports.ClearIndicator = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var _react = require("@emotion/react");
12
+ var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/utility/migration/chevron-down"));
13
+ var _crossCircleSelectClear = _interopRequireDefault(require("@atlaskit/icon/utility/migration/cross-circle--select-clear"));
14
+ var _primitives = require("@atlaskit/primitives");
15
+ var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
12
16
  var _utils = require("../utils");
13
- var _excluded = ["size"],
14
- _excluded2 = ["innerProps", "isRtl", "size"];
17
+ var _excluded = ["innerProps", "isRtl", "size"];
15
18
  /**
16
19
  * @jsxRuntime classic
17
20
  * @jsx jsx
@@ -22,56 +25,25 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
22
25
  // Dropdown & Clear Icons
23
26
  // ==============================
24
27
 
25
- var styles = (0, _react.css)({
26
- display: 'inline-block',
27
- fill: 'currentColor',
28
- lineHeight: 1,
29
- stroke: 'currentColor',
30
- strokeWidth: 0
28
+ var iconContainerStyles = (0, _primitives.xcss)({
29
+ all: 'unset',
30
+ outline: 'revert',
31
+ display: 'flex',
32
+ alignItems: 'center',
33
+ justifyContent: 'center',
34
+ padding: 'space.025'
35
+ });
36
+ var dropdownWrapperStyles = (0, _primitives.xcss)({
37
+ padding: 'space.075'
31
38
  });
32
- var Svg = function Svg(_ref) {
33
- var size = _ref.size,
34
- props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
35
- return (0, _react.jsx)("svg", (0, _extends2.default)({
36
- height: size,
37
- width: size,
38
- viewBox: "0 0 20 20",
39
- "aria-hidden": "true",
40
- focusable: "false",
41
- css: styles
42
- // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
43
- }, props));
44
- };
45
- // eslint-disable-next-line @repo/internal/react/require-jsdoc
46
- var CrossIcon = exports.CrossIcon = function CrossIcon(props) {
47
- return (
48
- // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
49
- (0, _react.jsx)(Svg, (0, _extends2.default)({
50
- size: 20
51
- }, props), (0, _react.jsx)("path", {
52
- d: "M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"
53
- }))
54
- );
55
- };
56
- // eslint-disable-next-line @repo/internal/react/require-jsdoc
57
- var DownChevron = exports.DownChevron = function DownChevron(props) {
58
- return (
59
- // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
60
- (0, _react.jsx)(Svg, (0, _extends2.default)({
61
- size: 20
62
- }, props), (0, _react.jsx)("path", {
63
- d: "M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"
64
- }))
65
- );
66
- };
67
39
 
68
40
  // ==============================
69
41
  // Dropdown & Clear Buttons
70
42
  // ==============================
71
43
 
72
- var dropdownIndicatorCSS = exports.dropdownIndicatorCSS = function dropdownIndicatorCSS(_ref2) {
73
- var isCompact = _ref2.isCompact,
74
- isDisabled = _ref2.isDisabled;
44
+ var dropdownIndicatorCSS = exports.dropdownIndicatorCSS = function dropdownIndicatorCSS(_ref) {
45
+ var isCompact = _ref.isCompact,
46
+ isDisabled = _ref.isDisabled;
75
47
  return {
76
48
  label: 'indicatorContainer',
77
49
  display: 'flex',
@@ -86,15 +58,22 @@ var dropdownIndicatorCSS = exports.dropdownIndicatorCSS = function dropdownIndic
86
58
 
87
59
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
88
60
  var DropdownIndicator = exports.DropdownIndicator = function DropdownIndicator(props) {
89
- var children = props.children,
90
- innerProps = props.innerProps;
61
+ var innerProps = props.innerProps,
62
+ children = props.children;
91
63
  return (0, _react.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(props, 'dropdownIndicator', {
92
64
  indicator: true,
93
65
  'dropdown-indicator': true
94
- }), innerProps), children || (0, _react.jsx)(DownChevron, null));
66
+ }), innerProps), children ? children : (0, _react.jsx)(_primitives.Inline, {
67
+ as: "span",
68
+ xcss: dropdownWrapperStyles
69
+ }, (0, _react.jsx)(_chevronDown.default, {
70
+ color: "currentColor",
71
+ label: "open",
72
+ LEGACY_margin: "var(--ds-space-negative-075, -0.375rem)"
73
+ })));
95
74
  };
96
- var clearIndicatorCSS = exports.clearIndicatorCSS = function clearIndicatorCSS(_ref3) {
97
- var isCompact = _ref3.isCompact;
75
+ var clearIndicatorCSS = exports.clearIndicatorCSS = function clearIndicatorCSS(_ref2) {
76
+ var isCompact = _ref2.isCompact;
98
77
  return {
99
78
  label: 'indicatorContainer',
100
79
  display: 'flex',
@@ -109,35 +88,21 @@ var clearIndicatorCSS = exports.clearIndicatorCSS = function clearIndicatorCSS(_
109
88
 
110
89
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
111
90
  var ClearIndicator = exports.ClearIndicator = function ClearIndicator(props) {
112
- var children = props.children,
113
- innerProps = props.innerProps;
91
+ var innerProps = props.innerProps,
92
+ _props$clearControlLa = props.clearControlLabel,
93
+ clearControlLabel = _props$clearControlLa === void 0 ? 'clear' : _props$clearControlLa;
114
94
  return (0, _react.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(props, 'clearIndicator', {
115
95
  indicator: true,
116
96
  'clear-indicator': true
117
- }), innerProps), children || (0, _react.jsx)(CrossIcon, null));
118
- };
119
-
120
- // ==============================
121
- // Separator
122
- // ==============================
123
-
124
- var indicatorSeparatorCSS = exports.indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4) {
125
- var isDisabled = _ref4.isDisabled;
126
- return {
127
- label: 'indicatorSeparator',
128
- alignSelf: 'stretch',
129
- width: 1,
130
- backgroundColor: isDisabled ? "var(--ds-border-disabled, #091E420F)" : "var(--ds-border, #091E4224)",
131
- marginBottom: "var(--ds-space-100, 8px)",
132
- marginTop: "var(--ds-space-100, 8px)"
133
- };
134
- };
135
-
136
- // eslint-disable-next-line @repo/internal/react/require-jsdoc
137
- var IndicatorSeparator = exports.IndicatorSeparator = function IndicatorSeparator(props) {
138
- var innerProps = props.innerProps;
139
- return (0, _react.jsx)("span", (0, _extends2.default)({}, innerProps, (0, _utils.getStyleProps)(props, 'indicatorSeparator', {
140
- 'indicator-separator': true
97
+ }), innerProps), (0, _react.jsx)(_primitives.Pressable, {
98
+ xcss: iconContainerStyles,
99
+ tabIndex: -1,
100
+ "aria-label": clearControlLabel
101
+ }, (0, _react.jsx)(_crossCircleSelectClear.default, {
102
+ label: "",
103
+ color: "currentColor",
104
+ LEGACY_size: "small",
105
+ LEGACY_margin: "var(--ds-space-negative-025, -0.125rem)"
141
106
  })));
142
107
  };
143
108
 
@@ -145,57 +110,20 @@ var IndicatorSeparator = exports.IndicatorSeparator = function IndicatorSeparato
145
110
  // Loading
146
111
  // ==============================
147
112
 
148
- var loadingDotAnimations = (0, _react.keyframes)({
149
- '0%, 80%, 100%': {
150
- opacity: 0
151
- },
152
- '40%': {
153
- opacity: 1
154
- }
155
- });
156
- var loadingIndicatorCSS = exports.loadingIndicatorCSS = function loadingIndicatorCSS(_ref5) {
157
- var isFocused = _ref5.isFocused,
158
- size = _ref5.size,
159
- isCompact = _ref5.isCompact,
160
- colors = _ref5.theme.colors;
113
+ var loadingIndicatorCSS = exports.loadingIndicatorCSS = function loadingIndicatorCSS(_ref3) {
114
+ var isCompact = _ref3.isCompact;
161
115
  return {
162
116
  label: 'loadingIndicator',
163
- display: 'flex',
164
- transition: 'color 150ms',
165
- alignSelf: 'center',
166
- fontSize: size,
167
- lineHeight: 1,
168
- marginRight: size,
169
- textAlign: 'center',
170
- verticalAlign: 'middle',
171
- color: isFocused ? colors.neutral60 : colors.neutral20,
172
117
  padding: "".concat(isCompact ? 0 : "var(--ds-space-075, 6px)", " ", "var(--ds-space-100, 8px)")
173
118
  };
174
119
  };
175
- var LoadingDot = function LoadingDot(_ref6) {
176
- var delay = _ref6.delay,
177
- offset = _ref6.offset;
178
- return (0, _react.jsx)("span", {
179
- // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage
180
- css: {
181
- animation: "".concat(loadingDotAnimations, " 1s ease-in-out ").concat(delay, "ms infinite;"),
182
- backgroundColor: 'currentColor',
183
- borderRadius: '1em',
184
- display: 'inline-block',
185
- marginLeft: offset ? '1em' : undefined,
186
- height: '1em',
187
- verticalAlign: 'top',
188
- width: '1em'
189
- }
190
- });
191
- };
192
120
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
193
- var LoadingIndicator = exports.LoadingIndicator = function LoadingIndicator(_ref7) {
194
- var innerProps = _ref7.innerProps,
195
- isRtl = _ref7.isRtl,
196
- _ref7$size = _ref7.size,
197
- size = _ref7$size === void 0 ? 4 : _ref7$size,
198
- restProps = (0, _objectWithoutProperties2.default)(_ref7, _excluded2);
121
+ var LoadingIndicator = exports.LoadingIndicator = function LoadingIndicator(_ref4) {
122
+ var innerProps = _ref4.innerProps,
123
+ isRtl = _ref4.isRtl,
124
+ _ref4$size = _ref4.size,
125
+ size = _ref4$size === void 0 ? 4 : _ref4$size,
126
+ restProps = (0, _objectWithoutProperties2.default)(_ref4, _excluded);
199
127
  return (0, _react.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(_objectSpread(_objectSpread({}, restProps), {}, {
200
128
  innerProps: innerProps,
201
129
  isRtl: isRtl,
@@ -203,14 +131,7 @@ var LoadingIndicator = exports.LoadingIndicator = function LoadingIndicator(_ref
203
131
  }), 'loadingIndicator', {
204
132
  indicator: true,
205
133
  'loading-indicator': true
206
- }), innerProps), (0, _react.jsx)(LoadingDot, {
207
- delay: 0,
208
- offset: isRtl
209
- }), (0, _react.jsx)(LoadingDot, {
210
- delay: 160,
211
- offset: true
212
- }), (0, _react.jsx)(LoadingDot, {
213
- delay: 320,
214
- offset: !isRtl
134
+ }), innerProps), (0, _react.jsx)(_spinner.default, {
135
+ size: "small"
215
136
  }));
216
137
  };
@@ -18,20 +18,17 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
18
18
  */
19
19
  var inputCSS = exports.inputCSS = function inputCSS(_ref) {
20
20
  var isDisabled = _ref.isDisabled,
21
- value = _ref.value,
22
- _ref$theme = _ref.theme,
23
- spacing = _ref$theme.spacing,
24
- colors = _ref$theme.colors;
21
+ value = _ref.value;
25
22
  return _objectSpread(_objectSpread({
26
23
  visibility: isDisabled ? 'hidden' : 'visible',
27
24
  // force css to recompute when value change due to @emotion bug.
28
25
  // We can remove it whenever the bug is fixed.
29
26
  transform: value ? 'translateZ(0)' : ''
30
27
  }, containerStyle), {}, {
31
- margin: spacing.baseUnit / 2,
32
- paddingBottom: spacing.baseUnit / 2,
33
- paddingTop: spacing.baseUnit / 2,
34
- color: "var(--ds-text, hsl(0, 0%, 20%))"
28
+ margin: "var(--ds-space-025, 2px)",
29
+ paddingBottom: "var(--ds-space-025, 2px)",
30
+ paddingTop: "var(--ds-space-025, 2px)",
31
+ color: "var(--ds-text, #172B4D)"
35
32
  });
36
33
  };
37
34
  var spacingStyle = {
@@ -8,6 +8,7 @@ exports.default = exports.NoOptionsMessage = exports.MenuPortal = exports.MenuPl
8
8
  exports.getMenuPlacement = getMenuPlacement;
9
9
  exports.noOptionsMessageCSS = exports.menuPortalCSS = exports.menuListCSS = exports.menuCSS = exports.loadingMessageCSS = void 0;
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
11
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
13
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -16,6 +17,8 @@ var _react2 = require("@emotion/react");
16
17
  var _dom = require("@floating-ui/dom");
17
18
  var _reactDom = require("react-dom");
18
19
  var _useIsomorphicLayoutEffect = _interopRequireDefault(require("use-isomorphic-layout-effect"));
20
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
21
+ var _primitives = require("@atlaskit/primitives");
19
22
  var _utils = require("../utils");
20
23
  var _excluded = ["children", "innerProps"],
21
24
  _excluded2 = ["children", "innerProps"];
@@ -53,7 +56,8 @@ function getMenuPlacement(_ref) {
53
56
  // we can't trust `scrollParent.scrollHeight` --> it may increase when
54
57
  // the menu is rendered
55
58
  var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),
56
- scrollHeight = _scrollParent$getBoun.height;
59
+ scrollHeight = _scrollParent$getBoun.height,
60
+ scrollParentTop = _scrollParent$getBoun.top;
57
61
  var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),
58
62
  menuBottom = _menuEl$getBoundingCl.bottom,
59
63
  menuHeight = _menuEl$getBoundingCl.height,
@@ -62,12 +66,14 @@ function getMenuPlacement(_ref) {
62
66
  containerTop = _menuEl$offsetParent$.top;
63
67
  var viewHeight = isFixedPosition ? window.innerHeight : (0, _utils.normalizedHeight)(scrollParent);
64
68
  var scrollTop = (0, _utils.getScrollTop)(scrollParent);
69
+ // use menuTop - scrollParentTop for the actual top space of menu in the scroll container
70
+ var menuTopFromParent = (0, _platformFeatureFlags.fg)('design-system-select-fix-placement') ? menuTop - scrollParentTop : menuTop;
65
71
  var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);
66
72
  var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);
67
73
  var viewSpaceAbove = containerTop - marginTop;
68
- var viewSpaceBelow = viewHeight - menuTop;
74
+ var viewSpaceBelow = viewHeight - menuTopFromParent;
69
75
  var scrollSpaceAbove = viewSpaceAbove + scrollTop;
70
- var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;
76
+ var scrollSpaceBelow = scrollHeight - scrollTop - menuTopFromParent;
71
77
  var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;
72
78
  var scrollUp = scrollTop + menuTop - marginTop;
73
79
  var scrollDuration = 160;
@@ -200,15 +206,10 @@ var coercePlacement = function coercePlacement(p) {
200
206
  return p === 'auto' ? 'bottom' : p;
201
207
  };
202
208
  var menuCSS = exports.menuCSS = function menuCSS(_ref2) {
203
- var _ref3;
204
- var placement = _ref2.placement,
205
- _ref2$theme = _ref2.theme,
206
- borderRadius = _ref2$theme.borderRadius,
207
- spacing = _ref2$theme.spacing,
208
- colors = _ref2$theme.colors;
209
- return _ref3 = {
209
+ var placement = _ref2.placement;
210
+ return (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({
210
211
  label: 'menu'
211
- }, (0, _defineProperty2.default)(_ref3, alignToControl(placement), '100%'), (0, _defineProperty2.default)(_ref3, "position", 'absolute'), (0, _defineProperty2.default)(_ref3, "width", '100%'), (0, _defineProperty2.default)(_ref3, "zIndex", 1), (0, _defineProperty2.default)(_ref3, "borderRadius", borderRadius), (0, _defineProperty2.default)(_ref3, "marginBottom", spacing.menuGutter), (0, _defineProperty2.default)(_ref3, "marginTop", spacing.menuGutter), (0, _defineProperty2.default)(_ref3, "backgroundColor", "var(--ds-surface-overlay, white)"), (0, _defineProperty2.default)(_ref3, "boxShadow", "var(--ds-shadow-overlay, 0 0 0 1px hsl(0deg 0% 0% / 10%), 0 4px 11px hsl(0deg 0% 0% / 10%))"), _ref3;
212
+ }, alignToControl(placement), '100%'), "position", 'absolute'), "width", '100%'), "zIndex", 1), "borderRadius", "var(--ds-border-radius, 4px)"), "marginBottom", "var(--ds-space-100, 8px)"), "marginTop", "var(--ds-space-100, 8px)"), "backgroundColor", "var(--ds-surface-overlay, white)"), "boxShadow", "var(--ds-shadow-overlay, 0 0 0 1px hsl(0deg 0% 0% / 10%), 0 4px 11px hsl(0deg 0% 0% / 10%))");
212
213
  };
213
214
  var PortalPlacementContext = /*#__PURE__*/(0, _react.createContext)(null);
214
215
 
@@ -220,8 +221,7 @@ var MenuPlacer = exports.MenuPlacer = function MenuPlacer(props) {
220
221
  maxMenuHeight = props.maxMenuHeight,
221
222
  menuPlacement = props.menuPlacement,
222
223
  menuPosition = props.menuPosition,
223
- menuShouldScrollIntoView = props.menuShouldScrollIntoView,
224
- theme = props.theme;
224
+ menuShouldScrollIntoView = props.menuShouldScrollIntoView;
225
225
  var _ref4 = (0, _react.useContext)(PortalPlacementContext) || {},
226
226
  setPortalPlacement = _ref4.setPortalPlacement;
227
227
  var ref = (0, _react.useRef)(null);
@@ -233,7 +233,8 @@ var MenuPlacer = exports.MenuPlacer = function MenuPlacer(props) {
233
233
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
234
234
  placement = _useState4[0],
235
235
  setPlacement = _useState4[1];
236
- var controlHeight = theme.spacing.controlHeight;
236
+ // The minimum height of the control
237
+ var controlHeight = 38;
237
238
  (0, _useIsomorphicLayoutEffect.default)(function () {
238
239
  var menuEl = ref.current;
239
240
  if (!menuEl) {
@@ -313,13 +314,10 @@ var MenuList = exports.MenuList = function MenuList(props) {
313
314
  // ==============================
314
315
 
315
316
  var noticeCSS = function noticeCSS(_ref6) {
316
- var _ref6$theme = _ref6.theme,
317
- baseUnit = _ref6$theme.spacing.baseUnit,
318
- colors = _ref6$theme.colors;
317
+ (0, _objectDestructuringEmpty2.default)(_ref6);
319
318
  return {
320
319
  textAlign: 'center',
321
- color: colors.neutral40,
322
- padding: "".concat(baseUnit * 2, "px ").concat(baseUnit * 3, "px")
320
+ padding: "var(--ds-space-100, 8px)".concat(" ", "var(--ds-space-150, 12px)")
323
321
  };
324
322
  };
325
323
  var noOptionsMessageCSS = exports.noOptionsMessageCSS = noticeCSS;
@@ -339,7 +337,9 @@ var NoOptionsMessage = exports.NoOptionsMessage = function NoOptionsMessage(_ref
339
337
  }), {
340
338
  // eslint-disable-next-line jsx-a11y/role-has-required-aria-props
341
339
  role: "option"
342
- }, innerProps), children);
340
+ }, innerProps), (0, _react2.jsx)(_primitives.Text, {
341
+ color: "color.text.subtle"
342
+ }, children));
343
343
  };
344
344
 
345
345
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
@@ -357,7 +357,9 @@ var LoadingMessage = exports.LoadingMessage = function LoadingMessage(_ref8) {
357
357
  }), innerProps, {
358
358
  // eslint-disable-next-line jsx-a11y/role-has-required-aria-props
359
359
  role: "option"
360
- }), children);
360
+ }), (0, _react2.jsx)(_primitives.Text, {
361
+ color: "color.text.subtle"
362
+ }, children));
361
363
  };
362
364
 
363
365
  // ==============================
@@ -10,9 +10,11 @@ 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 _selectClear = _interopRequireDefault(require("@atlaskit/icon/glyph/select-clear"));
14
+ var _cross = _interopRequireDefault(require("@atlaskit/icon/utility/cross"));
13
15
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
16
+ var _primitives = require("@atlaskit/primitives");
14
17
  var _utils = require("../utils");
15
- var _indicators = require("./indicators");
16
18
  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
19
  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; } /**
18
20
  * @jsxRuntime classic
@@ -20,11 +22,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
20
22
  */
21
23
  var multiValueCSS = exports.multiValueCSS = function multiValueCSS(_ref) {
22
24
  var isDisabled = _ref.isDisabled,
23
- isFocused = _ref.isFocused,
24
- _ref$theme = _ref.theme,
25
- spacing = _ref$theme.spacing,
26
- borderRadius = _ref$theme.borderRadius,
27
- colors = _ref$theme.colors;
25
+ isFocused = _ref.isFocused;
28
26
  var backgroundColor;
29
27
  var color;
30
28
  if (isDisabled) {
@@ -135,14 +133,52 @@ var MultiValueContainer = exports.MultiValueContainer = MultiValueGeneric;
135
133
 
136
134
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
137
135
  var MultiValueLabel = exports.MultiValueLabel = MultiValueGeneric;
136
+ var disabledStyles = (0, _react.css)({
137
+ display: 'none'
138
+ });
139
+ var enabledStyles = (0, _react.css)({
140
+ display: 'inherit'
141
+ });
142
+ var iconWrapperStyles = (0, _primitives.xcss)({
143
+ padding: 'space.025'
144
+ });
145
+ var renderIcon = function renderIcon() {
146
+ // eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
147
+ if ((0, _platformFeatureFlags.fg)('platform-component-visual-refresh')) {
148
+ return (0, _react.jsx)(_cross.default, {
149
+ label: "Clear",
150
+ color: "currentColor"
151
+ });
152
+ }
153
+
154
+ // eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
155
+ if ((0, _platformFeatureFlags.fg)('platform-visual-refresh-icons-legacy-facade')) {
156
+ return (0, _react.jsx)(_primitives.Inline, {
157
+ xcss: iconWrapperStyles
158
+ }, (0, _react.jsx)(_cross.default, {
159
+ label: "Clear",
160
+ color: "currentColor"
161
+ }));
162
+ }
163
+ return (
164
+ // eslint-disable-next-line @atlaskit/design-system/no-legacy-icons
165
+ (0, _react.jsx)(_selectClear.default, {
166
+ label: "Clear",
167
+ primaryColor: "transparent",
168
+ size: "small",
169
+ secondaryColor: "inherit"
170
+ })
171
+ );
172
+ };
138
173
  function MultiValueRemove(_ref5) {
139
- var children = _ref5.children,
174
+ var isDisabled = _ref5.isDisabled,
140
175
  innerProps = _ref5.innerProps;
141
176
  return (0, _react.jsx)("div", (0, _extends2.default)({
142
177
  role: "button"
143
- }, innerProps), children || (0, _react.jsx)(_indicators.CrossIcon, {
144
- size: 14
145
- }));
178
+ }, innerProps), (0, _react.jsx)("div", {
179
+ css: isDisabled ? disabledStyles : enabledStyles,
180
+ "data-testid": isDisabled ? 'hide-clear-icon' : 'show-clear-icon'
181
+ }, renderIcon()));
146
182
  }
147
183
  var MultiValue = function MultiValue(props) {
148
184
  var children = props.children,
@@ -175,6 +211,7 @@ var MultiValue = function MultiValue(props) {
175
211
  })), {}, {
176
212
  'aria-label': "Remove ".concat(children || 'option')
177
213
  }, removeProps),
214
+ isDisabled: isDisabled,
178
215
  selectProps: selectProps
179
216
  }));
180
217
  };
@@ -14,8 +14,7 @@ var _utils = require("../utils");
14
14
  */
15
15
 
16
16
  var css = exports.css = function css(_ref) {
17
- var isDisabled = _ref.isDisabled,
18
- spacing = _ref.theme.spacing;
17
+ var isDisabled = _ref.isDisabled;
19
18
  return {
20
19
  label: 'singleValue',
21
20
  gridArea: '1 / 1 / 2 / 3',
package/dist/cjs/index.js CHANGED
@@ -22,12 +22,6 @@ Object.defineProperty(exports, "default", {
22
22
  return _stateManager.default;
23
23
  }
24
24
  });
25
- Object.defineProperty(exports, "defaultTheme", {
26
- enumerable: true,
27
- get: function get() {
28
- return _theme.defaultTheme;
29
- }
30
- });
31
25
  Object.defineProperty(exports, "mergeStyles", {
32
26
  enumerable: true,
33
27
  get: function get() {
@@ -43,6 +37,5 @@ Object.defineProperty(exports, "useStateManager", {
43
37
  var _useStateManager = _interopRequireDefault(require("./use-state-manager"));
44
38
  var _stateManager = _interopRequireDefault(require("./state-manager"));
45
39
  var _styles = require("./styles");
46
- var _theme = require("./theme");
47
40
  var _filters = require("./filters");
48
41
  var _components = require("./components");