@elastic/eui 76.0.2 → 76.2.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 (107) hide show
  1. package/dist/eui_theme_dark.css +37 -6
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +37 -6
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/color_picker/color_palette_picker/color_palette_picker.js +5 -6
  6. package/es/components/datagrid/body/data_grid_body.js +19 -395
  7. package/es/components/datagrid/body/data_grid_body_custom.js +908 -0
  8. package/es/components/datagrid/body/data_grid_body_virtualized.js +1031 -0
  9. package/es/components/datagrid/body/data_grid_cell.js +16 -12
  10. package/es/components/datagrid/body/data_grid_cell_popover.js +32 -12
  11. package/es/components/datagrid/body/data_grid_cell_wrapper.js +132 -0
  12. package/es/components/datagrid/body/header/data_grid_header_row.js +3 -2
  13. package/es/components/datagrid/data_grid.js +21 -5
  14. package/es/components/datagrid/data_grid_types.js +18 -1
  15. package/es/components/datagrid/utils/row_heights.js +111 -31
  16. package/es/components/date_picker/auto_refresh/auto_refresh.js +2 -1
  17. package/es/components/form/range/dual_range.js +14 -7
  18. package/es/components/form/range/range.js +10 -3
  19. package/es/components/form/super_select/super_select.js +21 -18
  20. package/es/components/form/super_select/super_select_control.js +7 -14
  21. package/es/components/selectable/selectable.js +59 -36
  22. package/es/components/selectable/selectable_list/selectable_list.js +1 -1
  23. package/es/components/suggest/suggest.js +3 -10
  24. package/eui.d.ts +253 -146
  25. package/i18ntokens.json +89 -57
  26. package/lib/components/color_picker/color_palette_picker/color_palette_picker.js +5 -6
  27. package/lib/components/datagrid/body/data_grid_body.js +19 -416
  28. package/lib/components/datagrid/body/data_grid_body_custom.js +927 -0
  29. package/lib/components/datagrid/body/data_grid_body_virtualized.js +1059 -0
  30. package/lib/components/datagrid/body/data_grid_cell.js +16 -12
  31. package/lib/components/datagrid/body/data_grid_cell_popover.js +35 -12
  32. package/lib/components/datagrid/body/data_grid_cell_wrapper.js +147 -0
  33. package/lib/components/datagrid/body/header/data_grid_header_row.js +4 -2
  34. package/lib/components/datagrid/data_grid.js +21 -4
  35. package/lib/components/datagrid/data_grid_types.js +22 -1
  36. package/lib/components/datagrid/utils/row_heights.js +116 -33
  37. package/lib/components/date_picker/auto_refresh/auto_refresh.js +2 -1
  38. package/lib/components/form/range/dual_range.js +14 -7
  39. package/lib/components/form/range/range.js +10 -3
  40. package/lib/components/form/super_select/super_select.js +21 -18
  41. package/lib/components/form/super_select/super_select_control.js +7 -16
  42. package/lib/components/selectable/selectable.js +59 -36
  43. package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  44. package/lib/components/suggest/suggest.js +3 -12
  45. package/optimize/es/components/datagrid/body/data_grid_body.js +17 -387
  46. package/optimize/es/components/datagrid/body/data_grid_body_custom.js +176 -0
  47. package/optimize/es/components/datagrid/body/data_grid_body_virtualized.js +311 -0
  48. package/optimize/es/components/datagrid/body/data_grid_cell.js +12 -9
  49. package/optimize/es/components/datagrid/body/data_grid_cell_popover.js +30 -12
  50. package/optimize/es/components/datagrid/body/data_grid_cell_wrapper.js +127 -0
  51. package/optimize/es/components/datagrid/body/header/data_grid_header_row.js +3 -2
  52. package/optimize/es/components/datagrid/data_grid.js +8 -5
  53. package/optimize/es/components/datagrid/data_grid_types.js +18 -1
  54. package/optimize/es/components/datagrid/utils/row_heights.js +100 -31
  55. package/optimize/es/components/date_picker/auto_refresh/auto_refresh.js +2 -1
  56. package/optimize/es/components/form/range/dual_range.js +14 -7
  57. package/optimize/es/components/form/range/range.js +10 -3
  58. package/optimize/es/components/form/super_select/super_select.js +16 -12
  59. package/optimize/es/components/form/super_select/super_select_control.js +7 -14
  60. package/optimize/es/components/selectable/selectable.js +50 -34
  61. package/optimize/es/components/selectable/selectable_list/selectable_list.js +1 -1
  62. package/optimize/es/components/suggest/suggest.js +3 -10
  63. package/optimize/lib/components/datagrid/body/data_grid_body.js +16 -409
  64. package/optimize/lib/components/datagrid/body/data_grid_body_custom.js +198 -0
  65. package/optimize/lib/components/datagrid/body/data_grid_body_virtualized.js +342 -0
  66. package/optimize/lib/components/datagrid/body/data_grid_cell.js +12 -9
  67. package/optimize/lib/components/datagrid/body/data_grid_cell_popover.js +33 -19
  68. package/optimize/lib/components/datagrid/body/data_grid_cell_wrapper.js +144 -0
  69. package/optimize/lib/components/datagrid/body/header/data_grid_header_row.js +4 -2
  70. package/optimize/lib/components/datagrid/data_grid.js +8 -4
  71. package/optimize/lib/components/datagrid/data_grid_types.js +22 -1
  72. package/optimize/lib/components/datagrid/utils/row_heights.js +103 -37
  73. package/optimize/lib/components/date_picker/auto_refresh/auto_refresh.js +2 -1
  74. package/optimize/lib/components/form/range/dual_range.js +14 -7
  75. package/optimize/lib/components/form/range/range.js +10 -3
  76. package/optimize/lib/components/form/super_select/super_select.js +16 -11
  77. package/optimize/lib/components/form/super_select/super_select_control.js +7 -16
  78. package/optimize/lib/components/selectable/selectable.js +50 -35
  79. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  80. package/optimize/lib/components/suggest/suggest.js +3 -12
  81. package/package.json +1 -1
  82. package/src/components/datagrid/_data_grid.scss +7 -0
  83. package/src/components/datagrid/_data_grid_data_row.scss +1 -0
  84. package/src/components/datagrid/body/footer/_data_grid_footer_row.scss +1 -0
  85. package/src/components/datagrid/body/header/_data_grid_header_row.scss +1 -0
  86. package/src/components/form/super_select/_super_select_control.scss +4 -0
  87. package/src/components/selectable/selectable_list/_selectable_list.scss +10 -3
  88. package/src/themes/amsterdam/global_styling/mixins/_states.scss +17 -8
  89. package/test-env/components/color_picker/color_palette_picker/color_palette_picker.js +5 -6
  90. package/test-env/components/datagrid/body/data_grid_body.js +18 -415
  91. package/test-env/components/datagrid/body/data_grid_body_custom.js +908 -0
  92. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +1057 -0
  93. package/test-env/components/datagrid/body/data_grid_cell.js +16 -12
  94. package/test-env/components/datagrid/body/data_grid_cell_popover.js +33 -19
  95. package/test-env/components/datagrid/body/data_grid_cell_wrapper.js +144 -0
  96. package/test-env/components/datagrid/body/header/data_grid_header_row.js +4 -2
  97. package/test-env/components/datagrid/data_grid.js +21 -4
  98. package/test-env/components/datagrid/data_grid_types.js +22 -1
  99. package/test-env/components/datagrid/utils/row_heights.js +103 -37
  100. package/test-env/components/date_picker/auto_refresh/auto_refresh.js +2 -1
  101. package/test-env/components/form/range/dual_range.js +14 -7
  102. package/test-env/components/form/range/range.js +10 -3
  103. package/test-env/components/form/super_select/super_select.js +21 -17
  104. package/test-env/components/form/super_select/super_select_control.js +7 -16
  105. package/test-env/components/selectable/selectable.js +58 -36
  106. package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
  107. package/test-env/components/suggest/suggest.js +3 -12
@@ -33,7 +33,7 @@ var _i18n = require("../i18n");
33
33
 
34
34
  var _react2 = require("@emotion/react");
35
35
 
36
- var _excluded = ["children", "className", "options", "onChange", "onActiveOptionChange", "searchable", "searchProps", "singleSelection", "isLoading", "listProps", "renderOption", "height", "allowExclusions", "aria-label", "aria-describedby", "loadingMessage", "noMatchesMessage", "emptyMessage", "errorMessage", "isPreFiltered"],
36
+ var _excluded = ["children", "className", "options", "onChange", "onActiveOptionChange", "searchable", "searchProps", "singleSelection", "isLoading", "listProps", "renderOption", "height", "allowExclusions", "aria-label", "aria-describedby", "loadingMessage", "noMatchesMessage", "emptyMessage", "errorMessage", "selectableScreenReaderText", "isPreFiltered"],
37
37
  _excluded2 = ["aria-label", "aria-describedby", "onChange", "defaultValue", "inputRef"],
38
38
  _excluded3 = ["aria-label", "aria-describedby", "isVirtualized", "rowHeight"];
39
39
 
@@ -43,6 +43,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
43
43
 
44
44
  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; }
45
45
 
46
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
47
+
46
48
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
47
49
 
48
50
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -55,8 +57,6 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
55
57
 
56
58
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
57
59
 
58
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
59
-
60
60
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
61
61
 
62
62
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -115,6 +115,16 @@ var EuiSelectable = /*#__PURE__*/function (_Component) {
115
115
 
116
116
  _defineProperty(_assertThisInitialized(_this), "listId", void 0);
117
117
 
118
+ _defineProperty(_assertThisInitialized(_this), "isFocusOnSearchOrListBox", function (target) {
119
+ var _this$optionsListRef$, _this$optionsListRef$2;
120
+
121
+ var searchHasFocus = _this.props.searchable && target === _this.inputRef;
122
+ var listBox = (_this$optionsListRef$ = _this.optionsListRef.current) === null || _this$optionsListRef$ === void 0 ? void 0 : (_this$optionsListRef$2 = _this$optionsListRef$.listBoxRef) === null || _this$optionsListRef$2 === void 0 ? void 0 : _this$optionsListRef$2.parentElement;
123
+ var listBoxContainsFocus = target instanceof Node && (listBox === null || listBox === void 0 ? void 0 : listBox.contains(target));
124
+ var listBoxHasFocus = target === listBox || listBoxContainsFocus;
125
+ return searchHasFocus || listBoxHasFocus;
126
+ });
127
+
118
128
  _defineProperty(_assertThisInitialized(_this), "onMouseDown", function () {
119
129
  // Bypass onFocus when a click event originates from this.containerRef.
120
130
  // Prevents onFocus from scrolling away from a clicked option and negating the selection event.
@@ -122,7 +132,7 @@ var EuiSelectable = /*#__PURE__*/function (_Component) {
122
132
  _this.preventOnFocus = true;
123
133
  });
124
134
 
125
- _defineProperty(_assertThisInitialized(_this), "onFocus", function () {
135
+ _defineProperty(_assertThisInitialized(_this), "onFocus", function (event) {
126
136
  if (_this.preventOnFocus) {
127
137
  _this.preventOnFocus = false;
128
138
  return;
@@ -132,6 +142,10 @@ var EuiSelectable = /*#__PURE__*/function (_Component) {
132
142
  return;
133
143
  }
134
144
 
145
+ if (event && !_this.isFocusOnSearchOrListBox(event.target)) {
146
+ return;
147
+ }
148
+
135
149
  var firstSelected = _this.state.visibleOptions.findIndex(function (option) {
136
150
  return option.checked && !option.disabled && !option.isGroupLabel;
137
151
  });
@@ -152,7 +166,19 @@ var EuiSelectable = /*#__PURE__*/function (_Component) {
152
166
  });
153
167
 
154
168
  _defineProperty(_assertThisInitialized(_this), "onKeyDown", function (event) {
155
- var optionsList = _this.optionsListRef.current;
169
+ var optionsList = _this.optionsListRef.current; // Check if the user is interacting with something other than the
170
+ // searchbox or selection list. If so, the user may be attempting to
171
+ // interact with the search clear button or a totally custom button,
172
+ // and listbox keyboard navigation/selection should not be triggered.
173
+
174
+ if (!_this.isFocusOnSearchOrListBox(event.target)) {
175
+ _this.setState({
176
+ activeOptionIndex: undefined,
177
+ isFocused: false
178
+ });
179
+
180
+ return;
181
+ }
156
182
 
157
183
  switch (event.key) {
158
184
  case _services.keys.ARROW_UP:
@@ -177,20 +203,10 @@ var EuiSelectable = /*#__PURE__*/function (_Component) {
177
203
  case _services.keys.ENTER:
178
204
  case _services.keys.SPACE:
179
205
  if (_this.props.searchable) {
180
- var _this$optionsListRef$, _this$optionsListRef$2;
181
-
182
206
  // For searchable instances, SPACE is reserved as a character for filtering
183
207
  // via the input box, and as such only ENTER will toggle selection.
184
208
  if (event.target === _this.inputRef && event.key === _services.keys.SPACE) {
185
209
  return;
186
- } // Check if the user is interacting with something other than the
187
- // searchbox or selection list. If not, the user is attempting to
188
- // interact with an internal button such as the clear button,
189
- // and the event should not be altered.
190
-
191
-
192
- if (!(event.target === _this.inputRef || event.target === ((_this$optionsListRef$ = _this.optionsListRef.current) === null || _this$optionsListRef$ === void 0 ? void 0 : (_this$optionsListRef$2 = _this$optionsListRef$.listBoxRef) === null || _this$optionsListRef$2 === void 0 ? void 0 : _this$optionsListRef$2.parentElement))) {
193
- return;
194
210
  }
195
211
  }
196
212
 
@@ -281,10 +297,8 @@ var EuiSelectable = /*#__PURE__*/function (_Component) {
281
297
  });
282
298
 
283
299
  _defineProperty(_assertThisInitialized(_this), "onContainerBlur", function (e) {
284
- var _e$relatedTarget, _e$relatedTarget$firs;
285
-
286
300
  // Ignore blur events when moving from search to option to avoid activeOptionIndex conflicts
287
- if (((_e$relatedTarget = e.relatedTarget) === null || _e$relatedTarget === void 0 ? void 0 : (_e$relatedTarget$firs = _e$relatedTarget.firstChild) === null || _e$relatedTarget$firs === void 0 ? void 0 : _e$relatedTarget$firs.id) === _this.listId) {
301
+ if (_this.isFocusOnSearchOrListBox(e.relatedTarget)) {
288
302
  return;
289
303
  }
290
304
 
@@ -391,6 +405,7 @@ var EuiSelectable = /*#__PURE__*/function (_Component) {
391
405
  noMatchesMessage = _this$props3.noMatchesMessage,
392
406
  emptyMessage = _this$props3.emptyMessage,
393
407
  errorMessage = _this$props3.errorMessage,
408
+ selectableScreenReaderText = _this$props3.selectableScreenReaderText,
394
409
  isPreFiltered = _this$props3.isPreFiltered,
395
410
  rest = _objectWithoutProperties(_this$props3, _excluded);
396
411
 
@@ -526,10 +541,15 @@ var EuiSelectable = /*#__PURE__*/function (_Component) {
526
541
  var searchAccessibleName = getAccessibleName(searchProps, this.messageContentId);
527
542
  var searchHasAccessibleName = Boolean(Object.keys(searchAccessibleName).length);
528
543
  var search = searchable ? (0, _react2.jsx)(_i18n.EuiI18n, {
529
- token: "euiSelectable.placeholderName",
530
- default: "Filter options"
531
- }, function (placeholderName) {
532
- return (0, _react2.jsx)(_selectable_search.EuiSelectableSearch, _extends({
544
+ tokens: ['euiSelectable.screenReaderInstructions', 'euiSelectable.placeholderName'],
545
+ defaults: ['Use the Up and Down arrow keys to move focus over options. Press Enter to select. Press Escape to collapse options.', 'Filter options']
546
+ }, function (_ref4) {
547
+ var _ref5 = _slicedToArray(_ref4, 2),
548
+ screenReaderInstructions = _ref5[0],
549
+ placeholderName = _ref5[1];
550
+
551
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_selectable_search.EuiSelectableSearch, _extends({
552
+ "aria-describedby": listAriaDescribedbyId,
533
553
  key: "listSearch",
534
554
  options: options,
535
555
  value: searchValue,
@@ -548,15 +568,17 @@ var EuiSelectable = /*#__PURE__*/function (_Component) {
548
568
  }
549
569
  }, searchHasAccessibleName ? searchAccessibleName : {
550
570
  'aria-label': placeholderName
551
- }, cleanedSearchProps));
571
+ }, cleanedSearchProps)), (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", {
572
+ id: listAriaDescribedbyId
573
+ }, selectableScreenReaderText, " ", screenReaderInstructions)));
552
574
  }) : undefined;
553
575
  var resultsLength = visibleOptions.filter(function (option) {
554
576
  return !option.disabled;
555
577
  }).length;
556
578
  var listScreenReaderStatus = searchable && (0, _react2.jsx)(_i18n.EuiI18n, {
557
579
  token: "euiSelectable.searchResults",
558
- default: function _default(_ref4) {
559
- var resultsLength = _ref4.resultsLength;
580
+ default: function _default(_ref6) {
581
+ var resultsLength = _ref6.resultsLength;
560
582
  return "".concat(resultsLength, " result").concat(resultsLength === 1 ? '' : 's', " available");
561
583
  },
562
584
  values: {
@@ -567,18 +589,12 @@ var EuiSelectable = /*#__PURE__*/function (_Component) {
567
589
  var listAccessibleName = getAccessibleName(listProps, listAriaDescribedbyId);
568
590
  var listHasAccessibleName = Boolean(Object.keys(listAccessibleName).length);
569
591
  var list = (0, _react2.jsx)(_i18n.EuiI18n, {
570
- tokens: ['euiSelectable.screenReaderInstructions', 'euiSelectable.placeholderName'],
571
- defaults: ['Use up and down arrows to move focus over options. Enter to select. Escape to collapse options.', 'Filter options']
572
- }, function (_ref5) {
573
- var _ref6 = _slicedToArray(_ref5, 2),
574
- placeholderName = _ref6[0],
575
- screenReaderInstructions = _ref6[1];
576
-
592
+ token: "euiSelectable.placeholderName",
593
+ default: "Filter options"
594
+ }, function (placeholderName) {
577
595
  return (0, _react2.jsx)(_react.default.Fragment, null, searchable && (0, _react2.jsx)(_accessibility.EuiScreenReaderLive, {
578
596
  isActive: messageContent != null || activeOptionIndex != null
579
- }, messageContent || listScreenReaderStatus), (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", {
580
- id: listAriaDescribedbyId
581
- }, screenReaderInstructions)), messageContent ? (0, _react2.jsx)(_selectable_message.EuiSelectableMessage, {
597
+ }, messageContent || listScreenReaderStatus), messageContent ? (0, _react2.jsx)(_selectable_message.EuiSelectableMessage, {
582
598
  "data-test-subj": "euiSelectableMessage",
583
599
  id: _this2.messageContentId,
584
600
  bordered: listProps && listProps.bordered
@@ -818,5 +834,12 @@ EuiSelectable.propTypes = {
818
834
  * Control whether or not options get filtered internally or if consumer will filter
819
835
  * Default: false
820
836
  */
821
- isPreFiltered: _propTypes.default.bool
837
+ isPreFiltered: _propTypes.default.bool,
838
+
839
+ /**
840
+ * Optional screen reader instructions to announce upon focus/interaction. This text is read out
841
+ * after the `EuiSelectable` label and a brief pause, but before the default keyboard instructions for
842
+ * interacting with a selectable are read out.
843
+ */
844
+ selectableScreenReaderText: _propTypes.default.string
822
845
  };
@@ -126,7 +126,7 @@ var EuiSelectableList = /*#__PURE__*/function (_Component) {
126
126
  }
127
127
 
128
128
  if (typeof ariaDescribedby === 'string') {
129
- ref.setAttribute('aria-labelledby', ariaDescribedby);
129
+ ref.setAttribute('aria-describedby', ariaDescribedby);
130
130
  }
131
131
  }
132
132
  });
@@ -13,10 +13,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
15
 
16
- var _services = require("../../services");
17
-
18
- var _accessibility = require("../accessibility");
19
-
20
16
  var _icon = require("../icon");
21
17
 
22
18
  var _i18n = require("../i18n");
@@ -149,14 +145,11 @@ var EuiSuggest = function EuiSuggest(_ref) {
149
145
  var searchOnChange = function searchOnChange(value) {
150
146
  onSearch === null || onSearch === void 0 ? void 0 : onSearch(value);
151
147
  };
152
-
153
- var inputDescribedbyId = (0, _services.useGeneratedHtmlId)({
154
- prefix: id
155
- });
156
148
  /**
157
149
  * Status
158
150
  */
159
151
 
152
+
160
153
  var icon = '';
161
154
  var color = '';
162
155
 
@@ -245,6 +238,7 @@ var EuiSuggest = function EuiSuggest(_ref) {
245
238
  }
246
239
  }, [onItemClick, suggestions]);
247
240
  return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_selectable.EuiSelectable, {
241
+ selectableScreenReaderText: stateMessage,
248
242
  singleSelection: true,
249
243
  height: isVirtualized ? undefined : 'full',
250
244
  options: suggestionList,
@@ -269,7 +263,6 @@ var EuiSuggest = function EuiSuggest(_ref) {
269
263
  onBlur: searchOnBlur,
270
264
  onInput: searchOnInput,
271
265
  onChange: searchOnChange,
272
- 'aria-describedby': inputDescribedbyId,
273
266
  'aria-label': ariaLabel,
274
267
  'aria-labelledby': labelId
275
268
  }, rest)
@@ -293,9 +286,7 @@ var EuiSuggest = function EuiSuggest(_ref) {
293
286
  },
294
287
  className: "eui-yScroll"
295
288
  }, list));
296
- }), (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", {
297
- id: inputDescribedbyId
298
- }, stateMessage)));
289
+ }));
299
290
  };
300
291
 
301
292
  exports.EuiSuggest = EuiSuggest;