@atlaskit/select 16.4.0 → 16.5.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/select
2
2
 
3
+ ## 16.5.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`e7ea6832ad2`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e7ea6832ad2) - Bans the use of React.FC/React.FunctionComponent type in ADS components as part of the React 18 migration work. The change is internal only and should not introduce any changes for the component consumers.
8
+
9
+ ## 16.5.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`3c38b01cfd9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3c38b01cfd9) - Added screen reader text to announce multi selects support multiple options. This will be announced prior to any placeholder text.
14
+
3
15
  ## 16.4.0
4
16
 
5
17
  ### Minor Changes
@@ -9,7 +9,7 @@ var _reactSelect = _interopRequireDefault(require("react-select"));
9
9
  var _analyticsNext = require("@atlaskit/analytics-next");
10
10
  var _createSelect = _interopRequireDefault(require("./createSelect"));
11
11
  var packageName = "@atlaskit/select";
12
- var packageVersion = "16.4.0";
12
+ var packageVersion = "16.5.1";
13
13
  var SelectWithoutAnalytics = (0, _createSelect.default)(_reactSelect.default);
14
14
  exports.SelectWithoutAnalytics = SelectWithoutAnalytics;
15
15
  var createAndFireEventOnAtlaskit = (0, _analyticsNext.createAndFireEvent)('atlaskit');
@@ -19,6 +19,7 @@ var _react = _interopRequireWildcard(require("react"));
19
19
  var _reactSelect = require("react-select");
20
20
  var _memoizeOne = _interopRequireDefault(require("memoize-one"));
21
21
  var _reactFastCompare = _interopRequireDefault(require("react-fast-compare"));
22
+ var _visuallyHidden = _interopRequireDefault(require("@atlaskit/visually-hidden"));
22
23
  var defaultComponents = _interopRequireWildcard(require("./components"));
23
24
  var _styles = _interopRequireDefault(require("./styles"));
24
25
  var _excluded = ["styles", "validationState", "isInvalid", "spacing", "isMulti", "appearance"];
@@ -90,7 +91,14 @@ function createSelect(WrappedComponent) {
90
91
  components: this.components,
91
92
  styles: (0, _reactSelect.mergeStyles)((0, _styles.default)(
92
93
  // This will cover both props for invalid state while giving priority to isInvalid. When cleaning up validationState, we can just keep the inner condition.
93
- typeof isInvalid !== 'undefined' ? isInvalid ? 'error' : 'default' : validationState, isCompact, this.props.appearance || 'default'), styles)
94
+ typeof isInvalid !== 'undefined' ? isInvalid ? 'error' : 'default' : validationState, isCompact, this.props.appearance || 'default'), styles),
95
+ placeholder: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isMulti &&
96
+ /*#__PURE__*/
97
+ // NOTE: This has been added because react-select does not announce to screen readers that multiple options can be selected.
98
+ // Here we hijack the placeholder to include more info.
99
+ // The placeholder is used as the `aria-describedby` for the input, and gets rendered in a div rather than a native input placeholder.
100
+ // Ideally react-select should make use of the aria-multiselectable attribute.
101
+ _react.default.createElement(_visuallyHidden.default, null, "Multiple options can be selected."), props.placeholder !== undefined ? props.placeholder : 'Select...')
94
102
  }));
95
103
  }
96
104
  }]);
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/select",
3
- "version": "16.4.0",
3
+ "version": "16.5.1",
4
4
  "sideEffects": false
5
5
  }
@@ -2,7 +2,7 @@ import Select from 'react-select';
2
2
  import { withAnalyticsEvents, withAnalyticsContext, createAndFireEvent } from '@atlaskit/analytics-next';
3
3
  import createSelect from './createSelect';
4
4
  const packageName = "@atlaskit/select";
5
- const packageVersion = "16.4.0";
5
+ const packageVersion = "16.5.1";
6
6
  export const SelectWithoutAnalytics = createSelect(Select);
7
7
  const createAndFireEventOnAtlaskit = createAndFireEvent('atlaskit');
8
8
  export default withAnalyticsContext({
@@ -4,6 +4,7 @@ import React, { Component } from 'react';
4
4
  import { mergeStyles } from 'react-select';
5
5
  import memoizeOne from 'memoize-one';
6
6
  import isEqual from 'react-fast-compare';
7
+ import VisuallyHidden from '@atlaskit/visually-hidden';
7
8
  import * as defaultComponents from './components';
8
9
  import baseStyles from './styles';
9
10
  export default function createSelect(WrappedComponent) {
@@ -59,7 +60,14 @@ export default function createSelect(WrappedComponent) {
59
60
  components: this.components,
60
61
  styles: mergeStyles(baseStyles(
61
62
  // This will cover both props for invalid state while giving priority to isInvalid. When cleaning up validationState, we can just keep the inner condition.
62
- typeof isInvalid !== 'undefined' ? isInvalid ? 'error' : 'default' : validationState, isCompact, this.props.appearance || 'default'), styles)
63
+ typeof isInvalid !== 'undefined' ? isInvalid ? 'error' : 'default' : validationState, isCompact, this.props.appearance || 'default'), styles),
64
+ placeholder: /*#__PURE__*/React.createElement(React.Fragment, null, isMulti &&
65
+ /*#__PURE__*/
66
+ // NOTE: This has been added because react-select does not announce to screen readers that multiple options can be selected.
67
+ // Here we hijack the placeholder to include more info.
68
+ // The placeholder is used as the `aria-describedby` for the input, and gets rendered in a div rather than a native input placeholder.
69
+ // Ideally react-select should make use of the aria-multiselectable attribute.
70
+ React.createElement(VisuallyHidden, null, "Multiple options can be selected."), props.placeholder !== undefined ? props.placeholder : 'Select...')
63
71
  }));
64
72
  }
65
73
  }, _defineProperty(_class, "defaultProps", {
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/select",
3
- "version": "16.4.0",
3
+ "version": "16.5.1",
4
4
  "sideEffects": false
5
5
  }
@@ -2,7 +2,7 @@ import Select from 'react-select';
2
2
  import { withAnalyticsEvents, withAnalyticsContext, createAndFireEvent } from '@atlaskit/analytics-next';
3
3
  import createSelect from './createSelect';
4
4
  var packageName = "@atlaskit/select";
5
- var packageVersion = "16.4.0";
5
+ var packageVersion = "16.5.1";
6
6
  export var SelectWithoutAnalytics = createSelect(Select);
7
7
  var createAndFireEventOnAtlaskit = createAndFireEvent('atlaskit');
8
8
  export default withAnalyticsContext({
@@ -16,6 +16,7 @@ import React, { Component } from 'react';
16
16
  import { mergeStyles } from 'react-select';
17
17
  import memoizeOne from 'memoize-one';
18
18
  import isEqual from 'react-fast-compare';
19
+ import VisuallyHidden from '@atlaskit/visually-hidden';
19
20
  import * as defaultComponents from './components';
20
21
  import baseStyles from './styles';
21
22
  export default function createSelect(WrappedComponent) {
@@ -80,7 +81,14 @@ export default function createSelect(WrappedComponent) {
80
81
  components: this.components,
81
82
  styles: mergeStyles(baseStyles(
82
83
  // This will cover both props for invalid state while giving priority to isInvalid. When cleaning up validationState, we can just keep the inner condition.
83
- typeof isInvalid !== 'undefined' ? isInvalid ? 'error' : 'default' : validationState, isCompact, this.props.appearance || 'default'), styles)
84
+ typeof isInvalid !== 'undefined' ? isInvalid ? 'error' : 'default' : validationState, isCompact, this.props.appearance || 'default'), styles),
85
+ placeholder: /*#__PURE__*/React.createElement(React.Fragment, null, isMulti &&
86
+ /*#__PURE__*/
87
+ // NOTE: This has been added because react-select does not announce to screen readers that multiple options can be selected.
88
+ // Here we hijack the placeholder to include more info.
89
+ // The placeholder is used as the `aria-describedby` for the input, and gets rendered in a div rather than a native input placeholder.
90
+ // Ideally react-select should make use of the aria-multiselectable attribute.
91
+ React.createElement(VisuallyHidden, null, "Multiple options can be selected."), props.placeholder !== undefined ? props.placeholder : 'Select...')
84
92
  }));
85
93
  }
86
94
  }]);
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/select",
3
- "version": "16.4.0",
3
+ "version": "16.5.1",
4
4
  "sideEffects": false
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/select",
3
- "version": "16.4.0",
3
+ "version": "16.5.1",
4
4
  "description": "Select allows users to make a single selection or multiple selections from a list of options.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -43,7 +43,7 @@
43
43
  "@atlaskit/platform-feature-flags": "^0.2.0",
44
44
  "@atlaskit/spinner": "^15.5.0",
45
45
  "@atlaskit/theme": "^12.5.0",
46
- "@atlaskit/tokens": "^1.4.0",
46
+ "@atlaskit/tokens": "^1.5.0",
47
47
  "@atlaskit/visually-hidden": "^1.2.0",
48
48
  "@babel/runtime": "^7.0.0",
49
49
  "@emotion/react": "^11.7.1",