@atlaskit/react-select 2.2.0 → 2.2.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 (102) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/emotion/components/containers.js +111 -0
  3. package/dist/cjs/emotion/components/control.js +110 -0
  4. package/dist/cjs/emotion/components/group.js +71 -0
  5. package/dist/cjs/emotion/components/index.js +52 -0
  6. package/dist/cjs/emotion/components/indicators.js +137 -0
  7. package/dist/cjs/emotion/components/input.js +94 -0
  8. package/dist/cjs/emotion/components/internal/a11y-text.js +36 -0
  9. package/dist/cjs/emotion/components/internal/dummy-input.js +44 -0
  10. package/dist/cjs/emotion/components/internal/index.js +34 -0
  11. package/dist/cjs/emotion/components/internal/notify-open-layer-observer.js +21 -0
  12. package/dist/cjs/emotion/components/internal/required-input.js +43 -0
  13. package/dist/cjs/emotion/components/internal/scroll-manager.js +57 -0
  14. package/dist/cjs/emotion/components/internal/use-scroll-capture.js +132 -0
  15. package/dist/cjs/emotion/components/internal/use-scroll-lock.js +149 -0
  16. package/dist/cjs/emotion/components/live-region.js +182 -0
  17. package/dist/cjs/emotion/components/menu.js +456 -0
  18. package/dist/cjs/emotion/components/multi-value.js +224 -0
  19. package/dist/cjs/emotion/components/option.js +82 -0
  20. package/dist/cjs/emotion/components/placeholder.js +34 -0
  21. package/dist/cjs/emotion/components/single-value.js +40 -0
  22. package/dist/es2019/emotion/components/containers.js +109 -0
  23. package/dist/es2019/emotion/components/control.js +107 -0
  24. package/dist/es2019/emotion/components/group.js +59 -0
  25. package/dist/es2019/emotion/components/index.js +41 -0
  26. package/dist/es2019/emotion/components/indicators.js +128 -0
  27. package/dist/es2019/emotion/components/input.js +86 -0
  28. package/dist/es2019/emotion/components/internal/a11y-text.js +27 -0
  29. package/dist/es2019/emotion/components/internal/dummy-input.js +37 -0
  30. package/dist/es2019/emotion/components/internal/index.js +4 -0
  31. package/dist/es2019/emotion/components/internal/notify-open-layer-observer.js +16 -0
  32. package/dist/es2019/emotion/components/internal/required-input.js +35 -0
  33. package/dist/es2019/emotion/components/internal/scroll-manager.js +49 -0
  34. package/dist/es2019/emotion/components/internal/use-scroll-capture.js +128 -0
  35. package/dist/es2019/emotion/components/internal/use-scroll-lock.js +143 -0
  36. package/dist/es2019/emotion/components/live-region.js +178 -0
  37. package/dist/es2019/emotion/components/menu.js +450 -0
  38. package/dist/es2019/emotion/components/multi-value.js +227 -0
  39. package/dist/es2019/emotion/components/option.js +78 -0
  40. package/dist/es2019/emotion/components/placeholder.js +28 -0
  41. package/dist/es2019/emotion/components/single-value.js +34 -0
  42. package/dist/esm/emotion/components/containers.js +105 -0
  43. package/dist/esm/emotion/components/control.js +103 -0
  44. package/dist/esm/emotion/components/group.js +65 -0
  45. package/dist/esm/emotion/components/index.js +43 -0
  46. package/dist/esm/emotion/components/indicators.js +132 -0
  47. package/dist/esm/emotion/components/input.js +89 -0
  48. package/dist/esm/emotion/components/internal/a11y-text.js +29 -0
  49. package/dist/esm/emotion/components/internal/dummy-input.js +38 -0
  50. package/dist/esm/emotion/components/internal/index.js +4 -0
  51. package/dist/esm/emotion/components/internal/notify-open-layer-observer.js +15 -0
  52. package/dist/esm/emotion/components/internal/required-input.js +36 -0
  53. package/dist/esm/emotion/components/internal/scroll-manager.js +49 -0
  54. package/dist/esm/emotion/components/internal/use-scroll-capture.js +126 -0
  55. package/dist/esm/emotion/components/internal/use-scroll-lock.js +143 -0
  56. package/dist/esm/emotion/components/live-region.js +175 -0
  57. package/dist/esm/emotion/components/menu.js +454 -0
  58. package/dist/esm/emotion/components/multi-value.js +217 -0
  59. package/dist/esm/emotion/components/option.js +75 -0
  60. package/dist/esm/emotion/components/placeholder.js +27 -0
  61. package/dist/esm/emotion/components/single-value.js +33 -0
  62. package/dist/types/emotion/components/containers.d.ts +54 -0
  63. package/dist/types/emotion/components/control.d.ts +42 -0
  64. package/dist/types/emotion/components/group.d.ts +52 -0
  65. package/dist/types/emotion/components/index.d.ts +67 -0
  66. package/dist/types/emotion/components/indicators.d.ts +73 -0
  67. package/dist/types/emotion/components/input.d.ts +37 -0
  68. package/dist/types/emotion/components/internal/a11y-text.d.ts +8 -0
  69. package/dist/types/emotion/components/internal/dummy-input.d.ts +9 -0
  70. package/dist/types/emotion/components/internal/index.d.ts +4 -0
  71. package/dist/types/emotion/components/internal/notify-open-layer-observer.d.ts +11 -0
  72. package/dist/types/emotion/components/internal/required-input.d.ts +10 -0
  73. package/dist/types/emotion/components/internal/scroll-manager.d.ts +17 -0
  74. package/dist/types/emotion/components/internal/use-scroll-capture.d.ts +12 -0
  75. package/dist/types/emotion/components/internal/use-scroll-lock.d.ts +9 -0
  76. package/dist/types/emotion/components/live-region.d.ts +25 -0
  77. package/dist/types/emotion/components/menu.d.ts +116 -0
  78. package/dist/types/emotion/components/multi-value.d.ts +47 -0
  79. package/dist/types/emotion/components/option.d.ts +49 -0
  80. package/dist/types/emotion/components/placeholder.d.ts +22 -0
  81. package/dist/types/emotion/components/single-value.d.ts +28 -0
  82. package/dist/types-ts4.5/emotion/components/containers.d.ts +54 -0
  83. package/dist/types-ts4.5/emotion/components/control.d.ts +42 -0
  84. package/dist/types-ts4.5/emotion/components/group.d.ts +52 -0
  85. package/dist/types-ts4.5/emotion/components/index.d.ts +67 -0
  86. package/dist/types-ts4.5/emotion/components/indicators.d.ts +73 -0
  87. package/dist/types-ts4.5/emotion/components/input.d.ts +37 -0
  88. package/dist/types-ts4.5/emotion/components/internal/a11y-text.d.ts +8 -0
  89. package/dist/types-ts4.5/emotion/components/internal/dummy-input.d.ts +9 -0
  90. package/dist/types-ts4.5/emotion/components/internal/index.d.ts +4 -0
  91. package/dist/types-ts4.5/emotion/components/internal/notify-open-layer-observer.d.ts +11 -0
  92. package/dist/types-ts4.5/emotion/components/internal/required-input.d.ts +10 -0
  93. package/dist/types-ts4.5/emotion/components/internal/scroll-manager.d.ts +17 -0
  94. package/dist/types-ts4.5/emotion/components/internal/use-scroll-capture.d.ts +12 -0
  95. package/dist/types-ts4.5/emotion/components/internal/use-scroll-lock.d.ts +9 -0
  96. package/dist/types-ts4.5/emotion/components/live-region.d.ts +25 -0
  97. package/dist/types-ts4.5/emotion/components/menu.d.ts +116 -0
  98. package/dist/types-ts4.5/emotion/components/multi-value.d.ts +47 -0
  99. package/dist/types-ts4.5/emotion/components/option.d.ts +49 -0
  100. package/dist/types-ts4.5/emotion/components/placeholder.d.ts +22 -0
  101. package/dist/types-ts4.5/emotion/components/single-value.d.ts +28 -0
  102. package/package.json +1 -1
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.optionCSS = exports.default = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = require("@emotion/react");
10
+ var _utils = require("../../utils");
11
+ /**
12
+ * @jsxRuntime classic
13
+ * @jsx jsx
14
+ */
15
+
16
+ var optionCSS = exports.optionCSS = function optionCSS(_ref) {
17
+ var isDisabled = _ref.isDisabled,
18
+ isFocused = _ref.isFocused,
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 {
42
+ label: 'option',
43
+ display: 'block',
44
+ // eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
45
+ fontSize: 'inherit',
46
+ width: '100%',
47
+ userSelect: 'none',
48
+ WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',
49
+ padding: "var(--ds-space-075, 6px)".concat(" ", "var(--ds-space-150, 12px)"),
50
+ backgroundColor: backgroundColor,
51
+ color: color,
52
+ cursor: cursor,
53
+ boxShadow: boxShadow,
54
+ ':active': {
55
+ backgroundColor: !isDisabled ? isSelected ? "var(--ds-background-selected-pressed, #85B8FF)" : "var(--ds-background-neutral-subtle-pressed, #091E4224)" : undefined
56
+ },
57
+ '@media screen and (-ms-high-contrast: active)': {
58
+ borderLeft: !isDisabled && (isFocused || isSelected) ? '2px solid transparent' : ''
59
+ }
60
+ };
61
+ };
62
+ var Option = function Option(props) {
63
+ var children = props.children,
64
+ isDisabled = props.isDisabled,
65
+ isFocused = props.isFocused,
66
+ isSelected = props.isSelected,
67
+ innerRef = props.innerRef,
68
+ innerProps = props.innerProps;
69
+ return (0, _react.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(props, 'option', {
70
+ option: true,
71
+ 'option--is-disabled': isDisabled,
72
+ 'option--is-focused': isFocused,
73
+ 'option--is-selected': isSelected
74
+ }), {
75
+ ref: innerRef
76
+ }, innerProps, {
77
+ tabIndex: -1
78
+ }), children);
79
+ };
80
+
81
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
82
+ var _default = exports.default = Option;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.placeholderCSS = exports.default = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = require("@emotion/react");
10
+ var _utils = require("../../utils");
11
+ /**
12
+ * @jsxRuntime classic
13
+ * @jsx jsx
14
+ */
15
+
16
+ var placeholderCSS = exports.placeholderCSS = function placeholderCSS(_ref) {
17
+ var isDisabled = _ref.isDisabled;
18
+ return {
19
+ label: 'placeholder',
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
+ };
24
+ };
25
+ var Placeholder = function Placeholder(props) {
26
+ var children = props.children,
27
+ innerProps = props.innerProps;
28
+ return (0, _react.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(props, 'placeholder', {
29
+ placeholder: true
30
+ }), innerProps), children);
31
+ };
32
+
33
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
34
+ var _default = exports.default = Placeholder;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.css = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = require("@emotion/react");
10
+ var _utils = require("../../utils");
11
+ /**
12
+ * @jsxRuntime classic
13
+ * @jsx jsx
14
+ */
15
+
16
+ var css = exports.css = function css(_ref) {
17
+ var isDisabled = _ref.isDisabled;
18
+ return {
19
+ label: 'singleValue',
20
+ gridArea: '1 / 1 / 2 / 3',
21
+ maxWidth: '100%',
22
+ overflow: 'hidden',
23
+ textOverflow: 'ellipsis',
24
+ whiteSpace: 'nowrap',
25
+ margin: "0 ".concat("var(--ds-space-025, 2px)"),
26
+ color: isDisabled ? "var(--ds-text-disabled, #091E424F)" : "var(--ds-text, #172B4D)"
27
+ };
28
+ };
29
+ var SingleValue = function SingleValue(props) {
30
+ var children = props.children,
31
+ isDisabled = props.isDisabled,
32
+ innerProps = props.innerProps;
33
+ return (0, _react.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(props, 'singleValue', {
34
+ 'single-value': true,
35
+ 'single-value--is-disabled': isDisabled
36
+ }), innerProps), children);
37
+ };
38
+
39
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
40
+ var _default = exports.default = SingleValue;
@@ -0,0 +1,109 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /**
3
+ * @jsxRuntime classic
4
+ * @jsx jsx
5
+ */
6
+
7
+ import { jsx } from '@emotion/react';
8
+ import { fg } from '@atlaskit/platform-feature-flags';
9
+ import { media } from '@atlaskit/primitives';
10
+ import { getStyleProps } from '../../utils';
11
+
12
+ // ==============================
13
+ // Root Container
14
+ // ==============================
15
+
16
+ export const containerCSS = ({
17
+ isDisabled,
18
+ isRtl
19
+ }) => ({
20
+ label: 'container',
21
+ direction: isRtl ? 'rtl' : undefined,
22
+ position: 'relative',
23
+ font: fg('platform_design_system_team_safari_input_fix') ? "var(--ds-font-body-large, normal 400 16px/24px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, \"Helvetica Neue\", sans-serif)" : "var(--ds-font-body, normal 400 14px/20px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, \"Helvetica Neue\", sans-serif)",
24
+ pointerEvents: 'all',
25
+ cursor: isDisabled ? 'not-allowed' : undefined,
26
+ [`${media.above.xs}`]: {
27
+ font: fg('platform_design_system_team_safari_input_fix') ? "var(--ds-font-body, normal 400 14px/20px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, \"Helvetica Neue\", sans-serif)" : undefined
28
+ }
29
+ });
30
+
31
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
32
+ export const SelectContainer = props => {
33
+ const {
34
+ children,
35
+ innerProps,
36
+ isDisabled,
37
+ isRtl
38
+ } = props;
39
+ return jsx("div", _extends({}, getStyleProps(props, 'container', {
40
+ '--is-disabled': isDisabled,
41
+ '--is-rtl': isRtl
42
+ }), innerProps), children);
43
+ };
44
+
45
+ // ==============================
46
+ // Value Container
47
+ // ==============================
48
+
49
+ export const valueContainerCSS = ({
50
+ isMulti,
51
+ hasValue,
52
+ isCompact,
53
+ selectProps: {
54
+ controlShouldRenderValue
55
+ }
56
+ }) => ({
57
+ alignItems: 'center',
58
+ display: isMulti && hasValue && controlShouldRenderValue ? 'flex' : 'grid',
59
+ flex: 1,
60
+ flexWrap: 'wrap',
61
+ WebkitOverflowScrolling: 'touch',
62
+ position: 'relative',
63
+ overflow: 'hidden',
64
+ padding: `${isCompact ? 0 : "var(--ds-space-025, 2px)"} ${"var(--ds-space-075, 6px)"}`
65
+ });
66
+
67
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
68
+ export const ValueContainer = props => {
69
+ const {
70
+ children,
71
+ innerProps,
72
+ isMulti,
73
+ hasValue
74
+ } = props;
75
+ const styles = getStyleProps(props, 'valueContainer', {
76
+ 'value-container': true,
77
+ 'value-container--is-multi': isMulti,
78
+ 'value-container--has-value': hasValue
79
+ });
80
+ return jsx("div", _extends({
81
+ css: styles.css
82
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
83
+ ,
84
+ className: styles.className || 'value-container'
85
+ }, innerProps), children);
86
+ };
87
+
88
+ // ==============================
89
+ // Indicator Container
90
+ // ==============================
91
+
92
+ export const indicatorsContainerCSS = () => ({
93
+ alignItems: 'center',
94
+ alignSelf: 'stretch',
95
+ display: 'flex',
96
+ flexShrink: 0,
97
+ paddingRight: "var(--ds-space-050, 4px)"
98
+ });
99
+
100
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
101
+ export const IndicatorsContainer = props => {
102
+ const {
103
+ children,
104
+ innerProps
105
+ } = props;
106
+ return jsx("div", _extends({}, getStyleProps(props, 'indicatorsContainer', {
107
+ indicators: true
108
+ }), innerProps), children);
109
+ };
@@ -0,0 +1,107 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /**
3
+ * @jsxRuntime classic
4
+ * @jsx jsx
5
+ */
6
+
7
+ import { jsx } from '@emotion/react';
8
+ import { getStyleProps } from '../../utils';
9
+ export const css = ({
10
+ isDisabled,
11
+ isFocused,
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)";
23
+ }
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,
53
+ borderStyle: 'solid',
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)'
82
+ }
83
+ };
84
+ };
85
+ const Control = props => {
86
+ const {
87
+ children,
88
+ isDisabled,
89
+ isFocused,
90
+ innerRef,
91
+ innerProps,
92
+ menuIsOpen
93
+ } = props;
94
+ return jsx("div", _extends({
95
+ ref: innerRef
96
+ }, getStyleProps(props, 'control', {
97
+ control: true,
98
+ 'control--is-disabled': isDisabled,
99
+ 'control--is-focused': isFocused,
100
+ 'control--menu-is-open': menuIsOpen
101
+ }), innerProps, {
102
+ "aria-disabled": isDisabled || undefined
103
+ }), children);
104
+ };
105
+
106
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
107
+ export default Control;
@@ -0,0 +1,59 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /**
3
+ * @jsxRuntime classic
4
+ * @jsx jsx
5
+ */
6
+
7
+ import { jsx } from '@emotion/react';
8
+ import { cleanCommonProps, getStyleProps } from '../../utils';
9
+ export const groupCSS = ({}) => ({
10
+ paddingBottom: "var(--ds-space-100, 8px)",
11
+ paddingTop: "var(--ds-space-100, 8px)"
12
+ });
13
+ const Group = props => {
14
+ const {
15
+ children,
16
+ cx,
17
+ getStyles,
18
+ getClassNames,
19
+ Heading,
20
+ headingProps,
21
+ innerProps,
22
+ label,
23
+ selectProps
24
+ } = props;
25
+ return jsx("div", _extends({}, getStyleProps(props, 'group', {
26
+ group: true
27
+ }), innerProps), jsx(Heading, _extends({}, headingProps, {
28
+ selectProps: selectProps,
29
+ getStyles: getStyles,
30
+ getClassNames: getClassNames,
31
+ cx: cx
32
+ }), label), jsx("div", null, children));
33
+ };
34
+ export const groupHeadingCSS = ({}) => ({
35
+ label: 'group',
36
+ cursor: 'default',
37
+ display: 'block',
38
+ marginBottom: '0.25em',
39
+ paddingLeft: "var(--ds-space-150, 12px)",
40
+ paddingRight: "var(--ds-space-150, 12px)",
41
+ font: "var(--ds-font-body-small, normal 400 11px/16px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, \"Helvetica Neue\", sans-serif)",
42
+ color: "var(--ds-text-subtle, #44546F)",
43
+ fontWeight: "var(--ds-font-weight-bold, 700)",
44
+ textTransform: 'none'
45
+ });
46
+
47
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
48
+ export const GroupHeading = props => {
49
+ const {
50
+ data,
51
+ ...innerProps
52
+ } = cleanCommonProps(props);
53
+ return jsx("div", _extends({}, getStyleProps(props, 'groupHeading', {
54
+ 'group-heading': true
55
+ }), innerProps));
56
+ };
57
+
58
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
59
+ export default Group;
@@ -0,0 +1,41 @@
1
+ import { IndicatorsContainer, SelectContainer, ValueContainer } from './containers';
2
+ import Control from './control';
3
+ import Group, { GroupHeading } from './group';
4
+ import { ClearIndicator, DropdownIndicator, LoadingIndicator } from './indicators';
5
+ import Input from './input';
6
+ import Menu, { LoadingMessage, MenuList, MenuPortal, NoOptionsMessage } from './menu';
7
+ import MultiValue, { MultiValueContainer, MultiValueLabel, MultiValueRemove } from './multi-value';
8
+ import Option from './option';
9
+ import Placeholder from './placeholder';
10
+ import SingleValue from './single-value';
11
+
12
+ // Required export for external packages
13
+
14
+ export const components = {
15
+ ClearIndicator: ClearIndicator,
16
+ Control: Control,
17
+ DropdownIndicator: DropdownIndicator,
18
+ Group: Group,
19
+ GroupHeading: GroupHeading,
20
+ IndicatorsContainer: IndicatorsContainer,
21
+ Input: Input,
22
+ LoadingIndicator: LoadingIndicator,
23
+ Menu: Menu,
24
+ MenuList: MenuList,
25
+ MenuPortal: MenuPortal,
26
+ LoadingMessage: LoadingMessage,
27
+ NoOptionsMessage: NoOptionsMessage,
28
+ MultiValue: MultiValue,
29
+ MultiValueContainer: MultiValueContainer,
30
+ MultiValueLabel: MultiValueLabel,
31
+ MultiValueRemove: MultiValueRemove,
32
+ Option: Option,
33
+ Placeholder: Placeholder,
34
+ SelectContainer: SelectContainer,
35
+ SingleValue: SingleValue,
36
+ ValueContainer: ValueContainer
37
+ };
38
+ export const defaultComponents = props => ({
39
+ ...components,
40
+ ...props.components
41
+ });
@@ -0,0 +1,128 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /**
3
+ * @jsxRuntime classic
4
+ * @jsx jsx
5
+ */
6
+
7
+ import { jsx } from '@emotion/react';
8
+ import DownIcon from '@atlaskit/icon/utility/migration/chevron-down';
9
+ import CrossIcon from '@atlaskit/icon/utility/migration/cross-circle--select-clear';
10
+ import { Inline, Pressable, xcss } from '@atlaskit/primitives';
11
+ import Spinner from '@atlaskit/spinner';
12
+ import { getStyleProps } from '../../utils';
13
+
14
+ // ==============================
15
+ // Dropdown & Clear Icons
16
+ // ==============================
17
+
18
+ const iconContainerStyles = xcss({
19
+ all: 'unset',
20
+ outline: 'revert',
21
+ display: 'flex',
22
+ alignItems: 'center',
23
+ justifyContent: 'center',
24
+ padding: 'space.025'
25
+ });
26
+ const dropdownWrapperStyles = xcss({
27
+ padding: 'space.075'
28
+ });
29
+
30
+ // ==============================
31
+ // Dropdown & Clear Buttons
32
+ // ==============================
33
+
34
+ export const dropdownIndicatorCSS = ({
35
+ isCompact,
36
+ isDisabled
37
+ }) => ({
38
+ label: 'indicatorContainer',
39
+ display: 'flex',
40
+ transition: 'color 150ms',
41
+ color: isDisabled ? "var(--ds-text-disabled, #091E424F)" : "var(--ds-text-subtle, #44546F)",
42
+ padding: `${isCompact ? 0 : "var(--ds-space-075, 6px)"} ${"var(--ds-space-025, 2px)"}`,
43
+ ':hover': {
44
+ color: "var(--ds-text-subtle, #44546F)"
45
+ }
46
+ });
47
+
48
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
49
+ export const DropdownIndicator = props => {
50
+ const {
51
+ innerProps,
52
+ children
53
+ } = props;
54
+ return jsx("div", _extends({}, getStyleProps(props, 'dropdownIndicator', {
55
+ indicator: true,
56
+ 'dropdown-indicator': true
57
+ }), innerProps), children ? children : jsx(Inline, {
58
+ as: "span",
59
+ xcss: dropdownWrapperStyles
60
+ }, jsx(DownIcon, {
61
+ color: "currentColor",
62
+ label: "open",
63
+ LEGACY_margin: "var(--ds-space-negative-075, -0.375rem)"
64
+ })));
65
+ };
66
+ export const clearIndicatorCSS = ({
67
+ isCompact
68
+ }) => ({
69
+ label: 'indicatorContainer',
70
+ display: 'flex',
71
+ transition: 'color 150ms',
72
+ color: "var(--ds-text-subtlest, #626F86)",
73
+ padding: `${isCompact ? 0 : "var(--ds-space-075, 6px)"} ${"var(--ds-space-025, 2px)"}`,
74
+ ':hover': {
75
+ color: "var(--ds-text-subtle, #44546F)"
76
+ }
77
+ });
78
+
79
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
80
+ export const ClearIndicator = props => {
81
+ const {
82
+ innerProps,
83
+ clearControlLabel = 'clear'
84
+ } = props;
85
+ return jsx("div", _extends({}, getStyleProps(props, 'clearIndicator', {
86
+ indicator: true,
87
+ 'clear-indicator': true
88
+ }), innerProps), jsx(Pressable, {
89
+ xcss: iconContainerStyles,
90
+ tabIndex: -1,
91
+ "aria-label": clearControlLabel
92
+ }, jsx(CrossIcon, {
93
+ label: "",
94
+ color: "currentColor",
95
+ LEGACY_size: "small",
96
+ LEGACY_margin: "var(--ds-space-negative-025, -0.125rem)"
97
+ })));
98
+ };
99
+
100
+ // ==============================
101
+ // Loading
102
+ // ==============================
103
+
104
+ export const loadingIndicatorCSS = ({
105
+ isCompact
106
+ }) => ({
107
+ label: 'loadingIndicator',
108
+ padding: `${isCompact ? 0 : "var(--ds-space-075, 6px)"} ${"var(--ds-space-100, 8px)"}`
109
+ });
110
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
111
+ export const LoadingIndicator = ({
112
+ innerProps,
113
+ isRtl,
114
+ size = 4,
115
+ ...restProps
116
+ }) => {
117
+ return jsx("div", _extends({}, getStyleProps({
118
+ ...restProps,
119
+ innerProps,
120
+ isRtl,
121
+ size
122
+ }, 'loadingIndicator', {
123
+ indicator: true,
124
+ 'loading-indicator': true
125
+ }), innerProps), jsx(Spinner, {
126
+ size: "small"
127
+ }));
128
+ };
@@ -0,0 +1,86 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /**
3
+ * @jsxRuntime classic
4
+ * @jsx jsx
5
+ */
6
+
7
+ import { jsx } from '@emotion/react';
8
+ import { cleanCommonProps, getStyleProps } from '../../utils';
9
+ export const inputCSS = ({
10
+ isDisabled,
11
+ value
12
+ }) => ({
13
+ visibility: isDisabled ? 'hidden' : 'visible',
14
+ // force css to recompute when value change due to @emotion bug.
15
+ // We can remove it whenever the bug is fixed.
16
+ transform: value ? 'translateZ(0)' : '',
17
+ ...containerStyle,
18
+ margin: "var(--ds-space-025, 2px)",
19
+ paddingBottom: "var(--ds-space-025, 2px)",
20
+ paddingTop: "var(--ds-space-025, 2px)",
21
+ color: "var(--ds-text, #172B4D)"
22
+ });
23
+ const spacingStyle = {
24
+ gridArea: '1 / 2',
25
+ font: 'inherit',
26
+ minWidth: '2px',
27
+ border: 0,
28
+ margin: 0,
29
+ outline: 0,
30
+ padding: 0
31
+ };
32
+ const containerStyle = {
33
+ flex: '1 1 auto',
34
+ display: 'inline-grid',
35
+ gridArea: '1 / 1 / 2 / 3',
36
+ gridTemplateColumns: '0 min-content',
37
+ '&:after': {
38
+ content: 'attr(data-value) " "',
39
+ visibility: 'hidden',
40
+ whiteSpace: 'pre',
41
+ ...spacingStyle
42
+ }
43
+ };
44
+ const inputStyle = isHidden => ({
45
+ label: 'input',
46
+ color: 'inherit',
47
+ background: 0,
48
+ opacity: isHidden ? 0 : 1,
49
+ width: '100%',
50
+ ...spacingStyle
51
+ });
52
+ const Input = props => {
53
+ const {
54
+ cx,
55
+ value
56
+ } = props;
57
+ const {
58
+ innerRef,
59
+ isDisabled,
60
+ isHidden,
61
+ inputClassName,
62
+ testId,
63
+ ...innerProps
64
+ } = cleanCommonProps(props);
65
+ const dataId = testId ? `${testId}-select--input` : null;
66
+ return jsx("div", _extends({}, getStyleProps(props, 'input', {
67
+ 'input-container': true
68
+ }), {
69
+ "data-value": value || '',
70
+ "data-testid": dataId && `${dataId}-container`
71
+ }), jsx("input", _extends({
72
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
73
+ className: cx({
74
+ input: true
75
+ }, inputClassName),
76
+ ref: innerRef
77
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
78
+ ,
79
+ style: inputStyle(isHidden),
80
+ disabled: isDisabled,
81
+ "data-testid": dataId
82
+ }, innerProps)));
83
+ };
84
+
85
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
86
+ export default Input;