@atlaskit/select 16.1.0 → 16.1.2

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 (66) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/AsyncCreatableSelect.js +0 -5
  3. package/dist/cjs/AsyncSelect.js +0 -5
  4. package/dist/cjs/CheckboxSelect.js +1 -15
  5. package/dist/cjs/CountrySelect.js +20 -29
  6. package/dist/cjs/CreatableSelect.js +0 -5
  7. package/dist/cjs/PopupSelect/PopupSelect.js +36 -113
  8. package/dist/cjs/PopupSelect/components.js +15 -31
  9. package/dist/cjs/PopupSelect/index.js +0 -2
  10. package/dist/cjs/RadioSelect.js +1 -13
  11. package/dist/cjs/Select.js +1 -8
  12. package/dist/cjs/components/index.js +0 -10
  13. package/dist/cjs/components/indicators.js +1 -13
  14. package/dist/cjs/components/input-options.js +43 -84
  15. package/dist/cjs/createSelect.js +12 -42
  16. package/dist/cjs/data/countries.js +3 -2
  17. package/dist/cjs/entry-points/async-creatable-select.js +0 -2
  18. package/dist/cjs/entry-points/async-select.js +0 -2
  19. package/dist/cjs/entry-points/creatable-select.js +0 -2
  20. package/dist/cjs/entry-points/select.js +0 -4
  21. package/dist/cjs/extract-react-types/ert.js +0 -1
  22. package/dist/cjs/extract-react-types/react-popper-props.js +1 -1
  23. package/dist/cjs/extract-react-types/react-select-async.js +1 -1
  24. package/dist/cjs/extract-react-types/react-select-creatable.js +1 -1
  25. package/dist/cjs/extract-react-types/react-select-props.js +1 -1
  26. package/dist/cjs/index.js +0 -16
  27. package/dist/cjs/styles.js +4 -29
  28. package/dist/cjs/version.json +1 -1
  29. package/dist/es2019/CheckboxSelect.js +2 -3
  30. package/dist/es2019/CountrySelect.js +14 -18
  31. package/dist/es2019/PopupSelect/PopupSelect.js +29 -85
  32. package/dist/es2019/PopupSelect/components.js +6 -6
  33. package/dist/es2019/RadioSelect.js +2 -3
  34. package/dist/es2019/Select.js +1 -1
  35. package/dist/es2019/components/indicators.js +0 -1
  36. package/dist/es2019/components/input-options.js +23 -29
  37. package/dist/es2019/createSelect.js +6 -14
  38. package/dist/es2019/data/countries.js +3 -1
  39. package/dist/es2019/extract-react-types/react-popper-props.js +1 -0
  40. package/dist/es2019/extract-react-types/react-select-async.js +1 -0
  41. package/dist/es2019/extract-react-types/react-select-creatable.js +1 -0
  42. package/dist/es2019/extract-react-types/react-select-props.js +1 -0
  43. package/dist/es2019/index.js +1 -0
  44. package/dist/es2019/styles.js +33 -34
  45. package/dist/es2019/version.json +1 -1
  46. package/dist/esm/CheckboxSelect.js +1 -8
  47. package/dist/esm/CountrySelect.js +20 -24
  48. package/dist/esm/PopupSelect/PopupSelect.js +36 -114
  49. package/dist/esm/PopupSelect/components.js +16 -18
  50. package/dist/esm/RadioSelect.js +1 -7
  51. package/dist/esm/Select.js +1 -1
  52. package/dist/esm/components/index.js +0 -2
  53. package/dist/esm/components/indicators.js +0 -1
  54. package/dist/esm/components/input-options.js +43 -72
  55. package/dist/esm/createSelect.js +12 -30
  56. package/dist/esm/data/countries.js +3 -1
  57. package/dist/esm/extract-react-types/react-popper-props.js +1 -0
  58. package/dist/esm/extract-react-types/react-select-async.js +1 -0
  59. package/dist/esm/extract-react-types/react-select-creatable.js +1 -0
  60. package/dist/esm/extract-react-types/react-select-props.js +1 -0
  61. package/dist/esm/index.js +1 -0
  62. package/dist/esm/styles.js +4 -24
  63. package/dist/esm/version.json +1 -1
  64. package/dist/types/index.d.ts +1 -1
  65. package/package.json +1 -1
  66. package/report.api.md +14 -0
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.groupedCountries = exports.allCountries = void 0;
7
-
8
7
  /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
8
+
9
9
  var allCountries = [{
10
10
  icon: '🇦🇫',
11
11
  name: 'Afghanistan',
@@ -1252,8 +1252,9 @@ var allCountries = [{
1252
1252
  name: 'Zimbabwe',
1253
1253
  abbr: 'ZW',
1254
1254
  code: '263'
1255
- }]; // separate countries into groups
1255
+ }];
1256
1256
 
1257
+ // separate countries into groups
1257
1258
  exports.allCountries = allCountries;
1258
1259
  var groupedCountries = [{
1259
1260
  label: 'Suggested',
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -11,5 +10,4 @@ Object.defineProperty(exports, "default", {
11
10
  return _AsyncCreatableSelect.default;
12
11
  }
13
12
  });
14
-
15
13
  var _AsyncCreatableSelect = _interopRequireDefault(require("../AsyncCreatableSelect"));
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -11,5 +10,4 @@ Object.defineProperty(exports, "default", {
11
10
  return _AsyncSelect.default;
12
11
  }
13
12
  });
14
-
15
13
  var _AsyncSelect = _interopRequireDefault(require("../AsyncSelect"));
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -11,5 +10,4 @@ Object.defineProperty(exports, "default", {
11
10
  return _CreatableSelect.default;
12
11
  }
13
12
  });
14
-
15
13
  var _CreatableSelect = _interopRequireDefault(require("../CreatableSelect"));
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _typeof = require("@babel/runtime/helpers/typeof");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -17,9 +16,6 @@ Object.defineProperty(exports, "default", {
17
16
  return _Select.default;
18
17
  }
19
18
  });
20
-
21
19
  var _Select = _interopRequireWildcard(require("../Select"));
22
-
23
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
-
25
21
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -4,5 +4,4 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = ertHackForSelect;
7
-
8
7
  function ertHackForSelect(_) {}
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = ertHackForPopper;
7
-
8
7
  // this is to DOCUMENT/display the underlying react popper props, for our atlaskit/select documentation
8
+
9
9
  function ertHackForPopper(_) {}
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = ertHackForPopper;
7
-
8
7
  // for documentation ONLY
8
+
9
9
  function ertHackForPopper(_) {}
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = ertHackForSelect;
7
-
8
7
  // for documentation purposes ONLY
8
+
9
9
  function ertHackForSelect(_) {}
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = ertHackForSelect;
7
-
8
7
  // this is to DOCUMENT/display the underlying react select props, for our atlaskit/select documentation
8
+
9
9
  function ertHackForSelect(_) {}
package/dist/cjs/index.js CHANGED
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -103,31 +101,17 @@ Object.defineProperty(exports, "useCreatable", {
103
101
  return _creatable.useCreatable;
104
102
  }
105
103
  });
106
-
107
104
  var _reactSelect = require("react-select");
108
-
109
105
  var _async = require("react-select/async");
110
-
111
106
  var _creatable = require("react-select/creatable");
112
-
113
107
  var _inputOptions = require("./components/input-options");
114
-
115
108
  var _select = _interopRequireWildcard(require("./entry-points/select"));
116
-
117
109
  var _asyncSelect = _interopRequireDefault(require("./entry-points/async-select"));
118
-
119
110
  var _creatableSelect = _interopRequireDefault(require("./entry-points/creatable-select"));
120
-
121
111
  var _asyncCreatableSelect = _interopRequireDefault(require("./entry-points/async-creatable-select"));
122
-
123
112
  var _CheckboxSelect = _interopRequireDefault(require("./CheckboxSelect"));
124
-
125
113
  var _CountrySelect = _interopRequireDefault(require("./CountrySelect"));
126
-
127
114
  var _RadioSelect = _interopRequireDefault(require("./RadioSelect"));
128
-
129
115
  var _PopupSelect = _interopRequireDefault(require("./PopupSelect"));
130
-
131
116
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
132
-
133
117
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -1,26 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = baseStyles;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _constants = require("@atlaskit/theme/constants");
13
-
14
10
  var _colors = require("@atlaskit/theme/colors");
15
-
16
11
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
-
18
12
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
-
20
13
  var BORDER_WIDTH = 2;
21
14
  var ICON_PADDING = 2;
22
15
  var paddingExcludingBorder = (0, _constants.gridSize)() - BORDER_WIDTH;
23
-
24
16
  function baseStyles(validationState) {
25
17
  var isCompact = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
26
18
  var appearance = arguments.length > 2 ? arguments[2] : undefined;
@@ -42,49 +34,39 @@ function baseStyles(validationState) {
42
34
  },
43
35
  control: function control(css, _ref2) {
44
36
  var isFocused = _ref2.isFocused,
45
- isDisabled = _ref2.isDisabled;
37
+ isDisabled = _ref2.isDisabled;
46
38
  var borderColor = isFocused ? "var(--ds-border-focused, ".concat(_colors.B100, ")") : "var(--ds-border-input, ".concat(_colors.N20, ")");
47
39
  var backgroundColor = isFocused ? "var(--ds-background-input-pressed, ".concat(_colors.N0, ")") : "var(--ds-background-input, ".concat(_colors.N20, ")");
48
40
  var backgroundColorHover = isFocused ? "var(--ds-background-input-pressed, ".concat(_colors.N0, ")") : "var(--ds-background-input-hovered, ".concat(_colors.N30, ")");
49
-
50
41
  if (isDisabled) {
51
42
  backgroundColor = "var(--ds-background-disabled, ".concat(_colors.N20, ")");
52
43
  borderColor = "var(--ds-background-disabled, ".concat(_colors.N20, ")");
53
44
  }
54
-
55
45
  if (validationState === 'error') {
56
46
  borderColor = "var(--ds-border-danger, ".concat(_colors.R400, ")");
57
47
  }
58
-
59
48
  if (validationState === 'success') {
60
49
  borderColor = "var(--ds-border-success, ".concat(_colors.G400, ")");
61
50
  }
62
-
63
51
  var borderColorHover = isFocused ? "var(--ds-border-focused, ".concat(_colors.B100, ")") : "var(--ds-border-input, ".concat(_colors.N30, ")");
64
-
65
52
  if (validationState === 'error') {
66
53
  borderColorHover = "var(--ds-border-danger, ".concat(_colors.R400, ")");
67
54
  }
68
-
69
55
  if (validationState === 'success') {
70
56
  borderColorHover = "var(--ds-border-success, ".concat(_colors.G400, ")");
71
57
  }
72
-
73
58
  var transitionDuration = '200ms';
74
-
75
59
  if (appearance === 'subtle') {
76
60
  borderColor = isFocused ? "var(--ds-border-focused, ".concat(_colors.B100, ")") : 'transparent';
77
61
  backgroundColor = isFocused ? "var(--ds-surface, ".concat(_colors.N0, ")") : 'transparent';
78
62
  backgroundColorHover = isFocused ? "var(--ds-background-input-pressed, ".concat(_colors.N0, ")") : "var(--ds-background-input-hovered, ".concat(_colors.N30, ")");
79
63
  }
80
-
81
64
  if (appearance === 'none') {
82
65
  borderColor = 'transparent';
83
66
  backgroundColor = 'transparent';
84
67
  backgroundColorHover = 'transparent';
85
68
  borderColorHover = 'transparent';
86
69
  }
87
-
88
70
  return _objectSpread(_objectSpread({}, css), {}, {
89
71
  // Turn pointer events off when disabled - this makes it so hover etc don't work.
90
72
  pointerEvents: isDisabled ? 'none' : undefined,
@@ -149,11 +131,9 @@ function baseStyles(validationState) {
149
131
  dropdownIndicator: function dropdownIndicator(css, _ref3) {
150
132
  var isDisabled = _ref3.isDisabled;
151
133
  var color = "var(--ds-text-subtle, ".concat(_colors.N500, ")");
152
-
153
134
  if (isDisabled) {
154
135
  color = "var(--ds-text-disabled, ".concat(_colors.N70, ")");
155
136
  }
156
-
157
137
  return _objectSpread(_objectSpread({}, css), {}, {
158
138
  color: color,
159
139
  paddingLeft: ICON_PADDING,
@@ -172,19 +152,16 @@ function baseStyles(validationState) {
172
152
  },
173
153
  option: function option(css, _ref4) {
174
154
  var isFocused = _ref4.isFocused,
175
- isSelected = _ref4.isSelected,
176
- isDisabled = _ref4.isDisabled;
155
+ isSelected = _ref4.isSelected,
156
+ isDisabled = _ref4.isDisabled;
177
157
  var color = "var(--ds-text, ".concat(_colors.N800, ")");
178
-
179
158
  if (isDisabled) {
180
159
  color = "var(--ds-text-disabled, ".concat(_colors.N70, ")");
181
160
  } else if (isSelected) {
182
161
  color = "var(--ds-text-selected, ".concat(_colors.B400, ")");
183
162
  }
184
-
185
163
  var boxShadow;
186
164
  var backgroundColor;
187
-
188
165
  if (isDisabled) {
189
166
  backgroundColor = undefined;
190
167
  } else if (isSelected && isFocused) {
@@ -194,11 +171,9 @@ function baseStyles(validationState) {
194
171
  } else if (isFocused) {
195
172
  backgroundColor = "var(--ds-background-neutral-subtle-hovered, ".concat(_colors.N20, ")");
196
173
  }
197
-
198
174
  if (!isDisabled && (isFocused || isSelected)) {
199
175
  boxShadow = "inset 2px 0px 0px ".concat("var(--ds-border-selected, ".concat(_colors.B400, ")"));
200
176
  }
201
-
202
177
  var cursor = isDisabled ? 'not-allowed' : css.cursor;
203
178
  return _objectSpread(_objectSpread({}, css), {}, {
204
179
  padding: '6px 12px',
@@ -225,9 +200,9 @@ function baseStyles(validationState) {
225
200
  return _objectSpread(_objectSpread({}, css), {}, {
226
201
  color: isDisabled ? "var(--ds-text-disabled, ".concat(_colors.N70, ")") : "var(--ds-text, ".concat(_colors.N800, ")"),
227
202
  lineHeight: "".concat((0, _constants.gridSize)() * 2, "px") // 16px
228
-
229
203
  });
230
204
  },
205
+
231
206
  menu: function menu(css) {
232
207
  return _objectSpread(_objectSpread({}, css), {}, {
233
208
  backgroundColor: "var(--ds-surface-overlay, white)",
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/select",
3
- "version": "16.1.0",
3
+ "version": "16.1.2",
4
4
  "sideEffects": false
5
5
  }
@@ -2,12 +2,12 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
3
  import Select from './Select';
4
4
  import { CheckboxOption } from './components/input-options';
5
-
6
5
  const CheckboxSelect = ({
7
6
  components,
8
7
  ...props
9
8
  }) => {
10
- const temp = { ...components,
9
+ const temp = {
10
+ ...components,
11
11
  Option: CheckboxOption
12
12
  };
13
13
  return /*#__PURE__*/React.createElement(Select, _extends({
@@ -17,5 +17,4 @@ const CheckboxSelect = ({
17
17
  components: temp
18
18
  }, props));
19
19
  };
20
-
21
20
  export default CheckboxSelect;
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
-
3
2
  /** @jsx jsx */
3
+
4
4
  import { jsx, css } from '@emotion/react';
5
5
  import { groupedCountries } from './data/countries';
6
6
  import Select from './Select';
@@ -12,10 +12,8 @@ const labelStyles = css({
12
12
  });
13
13
  const flagStyles = css({
14
14
  fontSize: '18px',
15
- // TODO Delete this comment after verifying spacing token -> previous value `'8px'`
16
- marginRight: "var(--ds-scale-100, 8px)"
15
+ marginRight: "var(--ds-space-100, 8px)"
17
16
  });
18
-
19
17
  const Opt = ({
20
18
  children,
21
19
  icon
@@ -23,24 +21,23 @@ const Opt = ({
23
21
  css: labelStyles
24
22
  }, jsx("span", {
25
23
  css: flagStyles
26
- }, icon), children); // return the country name; used for searching
27
-
24
+ }, icon), children);
28
25
 
26
+ // return the country name; used for searching
29
27
  const getOptionLabel = ({
30
28
  abbr,
31
29
  code,
32
30
  name
33
- }) => `${name} (${abbr.toUpperCase()}) +${code}`; // set the country's abbreviation for the option value, (also searchable)
34
-
35
-
36
- const getOptionValue = opt => opt.abbr; // the text node of the control
31
+ }) => `${name} (${abbr.toUpperCase()}) +${code}`;
37
32
 
33
+ // set the country's abbreviation for the option value, (also searchable)
34
+ const getOptionValue = opt => opt.abbr;
38
35
 
36
+ // the text node of the control
39
37
  const controlLabel = opt => jsx(Opt, {
40
38
  icon: opt.icon
41
- }, opt.abbr.toUpperCase()); // the text node for an option
42
-
43
-
39
+ }, opt.abbr.toUpperCase());
40
+ // the text node for an option
44
41
  const optionLabel = ({
45
42
  abbr,
46
43
  code,
@@ -52,14 +49,14 @@ const optionLabel = ({
52
49
  abbr,
53
50
  code,
54
51
  name
55
- })); // switch formatters based on render context (menu | value)
56
-
52
+ }));
57
53
 
54
+ // switch formatters based on render context (menu | value)
58
55
  const formatOptionLabel = (opt, {
59
56
  context
60
- }) => context === 'value' ? controlLabel(opt) : optionLabel(opt); // put it all together
61
-
57
+ }) => context === 'value' ? controlLabel(opt) : optionLabel(opt);
62
58
 
59
+ // put it all together
63
60
  const CountrySelect = props => jsx(Select, _extends({
64
61
  isClearable: false,
65
62
  formatOptionLabel: formatOptionLabel,
@@ -68,5 +65,4 @@ const CountrySelect = props => jsx(Select, _extends({
68
65
  isMulti: false,
69
66
  options: groupedCountries
70
67
  }, props));
71
-
72
68
  export default CountrySelect;