@elastic/eui 94.3.0 → 94.4.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 (145) hide show
  1. package/README.md +3 -0
  2. package/dist/eui_charts_theme.js +1519 -1519
  3. package/dist/eui_charts_theme.js.map +1 -1
  4. package/dist/eui_theme_dark.css +41 -497
  5. package/dist/eui_theme_dark.min.css +1 -1
  6. package/dist/eui_theme_light.css +41 -497
  7. package/dist/eui_theme_light.min.css +1 -1
  8. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +5 -1
  9. package/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +25 -11
  10. package/es/components/form/form.styles.js +26 -3
  11. package/es/components/markdown_editor/markdown_editor.js +12 -8
  12. package/es/components/markdown_editor/markdown_editor.styles.js +29 -0
  13. package/es/components/markdown_editor/markdown_editor_drop_zone.js +22 -9
  14. package/es/components/markdown_editor/markdown_editor_drop_zone.styles.js +33 -0
  15. package/es/components/markdown_editor/markdown_editor_footer.js +11 -2
  16. package/es/components/markdown_editor/markdown_editor_footer.styles.js +26 -0
  17. package/es/components/markdown_editor/markdown_editor_text_area.js +6 -1
  18. package/es/components/markdown_editor/markdown_editor_text_area.styles.js +22 -0
  19. package/es/components/markdown_editor/markdown_editor_toolbar.js +10 -2
  20. package/es/components/markdown_editor/markdown_editor_toolbar.styles.js +21 -0
  21. package/es/components/markdown_editor/markdown_format.js +9 -6
  22. package/es/components/markdown_editor/markdown_format.styles.js +25 -10
  23. package/es/components/markdown_editor/plugins/markdown_checkbox/renderer.js +9 -3
  24. package/es/components/markdown_editor/plugins/markdown_tooltip/renderer.js +13 -2
  25. package/es/components/selectable/selectable.js +10 -2
  26. package/es/components/selectable/selectable_list/selectable_list.js +95 -42
  27. package/es/components/selectable/selectable_list/selectable_list_item.js +234 -204
  28. package/es/components/selectable/selectable_option.js +9 -1
  29. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +10 -2
  30. package/es/components/text/text_color.js +4 -1
  31. package/es/components/toast/global_toast_list_item.js +5 -5
  32. package/eui.d.ts +332 -234
  33. package/i18ntokens.json +124 -106
  34. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +5 -1
  35. package/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +25 -11
  36. package/lib/components/form/form.styles.js +30 -4
  37. package/lib/components/markdown_editor/markdown_editor.js +12 -8
  38. package/lib/components/markdown_editor/markdown_editor.styles.js +37 -0
  39. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +20 -8
  40. package/lib/components/markdown_editor/markdown_editor_drop_zone.styles.js +38 -0
  41. package/lib/components/markdown_editor/markdown_editor_footer.js +10 -1
  42. package/lib/components/markdown_editor/markdown_editor_footer.styles.js +33 -0
  43. package/lib/components/markdown_editor/markdown_editor_text_area.js +6 -1
  44. package/lib/components/markdown_editor/markdown_editor_text_area.styles.js +29 -0
  45. package/lib/components/markdown_editor/markdown_editor_toolbar.js +10 -2
  46. package/lib/components/markdown_editor/markdown_editor_toolbar.styles.js +28 -0
  47. package/lib/components/markdown_editor/markdown_format.js +8 -5
  48. package/lib/components/markdown_editor/markdown_format.styles.js +25 -10
  49. package/lib/components/markdown_editor/plugins/markdown_checkbox/renderer.js +9 -4
  50. package/lib/components/markdown_editor/plugins/markdown_tooltip/renderer.js +19 -10
  51. package/lib/components/selectable/selectable.js +10 -2
  52. package/lib/components/selectable/selectable_list/selectable_list.js +95 -42
  53. package/lib/components/selectable/selectable_list/selectable_list_item.js +241 -210
  54. package/lib/components/selectable/selectable_option.js +12 -1
  55. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +10 -2
  56. package/lib/components/text/text_color.js +6 -2
  57. package/lib/components/toast/global_toast_list_item.js +5 -5
  58. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +5 -1
  59. package/optimize/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +25 -11
  60. package/optimize/es/components/form/form.styles.js +26 -3
  61. package/optimize/es/components/markdown_editor/markdown_editor.js +12 -8
  62. package/optimize/es/components/markdown_editor/markdown_editor.styles.js +29 -0
  63. package/optimize/es/components/markdown_editor/markdown_editor_drop_zone.js +19 -9
  64. package/optimize/es/components/markdown_editor/markdown_editor_drop_zone.styles.js +33 -0
  65. package/optimize/es/components/markdown_editor/markdown_editor_footer.js +11 -2
  66. package/optimize/es/components/markdown_editor/markdown_editor_footer.styles.js +26 -0
  67. package/optimize/es/components/markdown_editor/markdown_editor_text_area.js +6 -1
  68. package/optimize/es/components/markdown_editor/markdown_editor_text_area.styles.js +22 -0
  69. package/optimize/es/components/markdown_editor/markdown_editor_toolbar.js +10 -2
  70. package/optimize/es/components/markdown_editor/markdown_editor_toolbar.styles.js +21 -0
  71. package/optimize/es/components/markdown_editor/markdown_format.js +9 -6
  72. package/optimize/es/components/markdown_editor/markdown_format.styles.js +25 -10
  73. package/optimize/es/components/markdown_editor/plugins/markdown_checkbox/renderer.js +9 -3
  74. package/optimize/es/components/markdown_editor/plugins/markdown_tooltip/renderer.js +13 -2
  75. package/optimize/es/components/selectable/selectable_list/selectable_list.js +81 -38
  76. package/optimize/es/components/selectable/selectable_list/selectable_list_item.js +217 -198
  77. package/optimize/es/components/selectable/selectable_option.js +9 -1
  78. package/optimize/es/components/text/text_color.js +4 -1
  79. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +5 -1
  80. package/optimize/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +25 -11
  81. package/optimize/lib/components/form/form.styles.js +30 -4
  82. package/optimize/lib/components/markdown_editor/markdown_editor.js +12 -8
  83. package/optimize/lib/components/markdown_editor/markdown_editor.styles.js +37 -0
  84. package/optimize/lib/components/markdown_editor/markdown_editor_drop_zone.js +24 -16
  85. package/optimize/lib/components/markdown_editor/markdown_editor_drop_zone.styles.js +38 -0
  86. package/optimize/lib/components/markdown_editor/markdown_editor_footer.js +10 -1
  87. package/optimize/lib/components/markdown_editor/markdown_editor_footer.styles.js +33 -0
  88. package/optimize/lib/components/markdown_editor/markdown_editor_text_area.js +6 -1
  89. package/optimize/lib/components/markdown_editor/markdown_editor_text_area.styles.js +29 -0
  90. package/optimize/lib/components/markdown_editor/markdown_editor_toolbar.js +10 -2
  91. package/optimize/lib/components/markdown_editor/markdown_editor_toolbar.styles.js +28 -0
  92. package/optimize/lib/components/markdown_editor/markdown_format.js +8 -5
  93. package/optimize/lib/components/markdown_editor/markdown_format.styles.js +25 -10
  94. package/optimize/lib/components/markdown_editor/plugins/markdown_checkbox/renderer.js +9 -4
  95. package/optimize/lib/components/markdown_editor/plugins/markdown_tooltip/renderer.js +19 -10
  96. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +81 -38
  97. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.js +224 -204
  98. package/optimize/lib/components/selectable/selectable_option.js +12 -1
  99. package/optimize/lib/components/text/text_color.js +6 -2
  100. package/package.json +5 -12
  101. package/src/components/date_picker/react-datepicker/LICENSE +21 -0
  102. package/src/components/date_picker/react-datepicker/README.md +168 -0
  103. package/src/components/date_picker/super_date_picker/date_popover/_absolute_tab.scss +13 -18
  104. package/src/components/form/checkbox/_checkbox.scss +23 -6
  105. package/src/components/index.scss +0 -1
  106. package/src/components/selectable/selectable_list/_selectable_list_item.scss +4 -0
  107. package/src/components/selectable/selectable_templates/_selectable_template_sitewide_option.scss +5 -1
  108. package/src/services/theme/README.md +153 -0
  109. package/src/test/README.md +44 -0
  110. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  111. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +5 -1
  112. package/test-env/components/date_picker/super_date_picker/date_popover/absolute_tab.js +25 -11
  113. package/test-env/components/form/form.styles.js +30 -4
  114. package/test-env/components/markdown_editor/markdown_editor.js +12 -8
  115. package/test-env/components/markdown_editor/markdown_editor.styles.js +37 -0
  116. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +24 -16
  117. package/test-env/components/markdown_editor/markdown_editor_drop_zone.styles.js +38 -0
  118. package/test-env/components/markdown_editor/markdown_editor_footer.js +10 -1
  119. package/test-env/components/markdown_editor/markdown_editor_footer.styles.js +33 -0
  120. package/test-env/components/markdown_editor/markdown_editor_text_area.js +6 -1
  121. package/test-env/components/markdown_editor/markdown_editor_text_area.styles.js +29 -0
  122. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +10 -2
  123. package/test-env/components/markdown_editor/markdown_editor_toolbar.styles.js +28 -0
  124. package/test-env/components/markdown_editor/markdown_format.js +8 -5
  125. package/test-env/components/markdown_editor/markdown_format.styles.js +25 -10
  126. package/test-env/components/markdown_editor/plugins/markdown_checkbox/renderer.js +9 -4
  127. package/test-env/components/markdown_editor/plugins/markdown_tooltip/renderer.js +19 -10
  128. package/test-env/components/selectable/selectable.js +10 -2
  129. package/test-env/components/selectable/selectable_list/selectable_list.js +95 -42
  130. package/test-env/components/selectable/selectable_list/selectable_list_item.js +233 -205
  131. package/test-env/components/selectable/selectable_option.js +12 -1
  132. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +10 -2
  133. package/test-env/components/text/text_color.js +6 -2
  134. package/test-env/components/toast/global_toast_list_item.js +5 -5
  135. package/src/components/markdown_editor/_index.scss +0 -9
  136. package/src/components/markdown_editor/_markdown_editor.scss +0 -22
  137. package/src/components/markdown_editor/_markdown_editor_drop_zone.scss +0 -58
  138. package/src/components/markdown_editor/_markdown_editor_footer.scss +0 -42
  139. package/src/components/markdown_editor/_markdown_editor_preview.scss +0 -20
  140. package/src/components/markdown_editor/_markdown_editor_text_area.scss +0 -43
  141. package/src/components/markdown_editor/_markdown_editor_toolbar.scss +0 -29
  142. package/src/components/markdown_editor/_markdown_format.scss +0 -78
  143. package/src/components/markdown_editor/_variables.scss +0 -1
  144. package/src/components/markdown_editor/plugins/markdown_tooltip.scss +0 -4
  145. package/src/themes/amsterdam/overrides/_markdown_editor.scss +0 -18
@@ -10,22 +10,31 @@ var _tool_tip = require("../../../tool_tip");
10
10
  var _icon = require("../../../icon");
11
11
  var _react2 = require("@emotion/react");
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- /*
14
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
15
- * or more contributor license agreements. Licensed under the Elastic License
16
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
17
- * in compliance with, at your election, the Elastic License 2.0 or the Server
18
- * Side Public License, v 1.
19
- */
20
-
13
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /*
14
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
15
+ * or more contributor license agreements. Licensed under the Elastic License
16
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
17
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
18
+ * Side Public License, v 1.
19
+ */
20
+ var _ref2 = process.env.NODE_ENV === "production" ? {
21
+ name: "blrk0m-tooltipMarkdownRenderer",
22
+ styles: "transform:translateY(-1px);label:tooltipMarkdownRenderer;"
23
+ } : {
24
+ name: "blrk0m-tooltipMarkdownRenderer",
25
+ styles: "transform:translateY(-1px);label:tooltipMarkdownRenderer;",
26
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
27
+ };
21
28
  var tooltipMarkdownRenderer = function tooltipMarkdownRenderer(_ref) {
22
29
  var content = _ref.content,
23
30
  children = _ref.children;
24
31
  return (0, _react2.jsx)("span", null, (0, _react2.jsx)(_tool_tip.EuiToolTip, {
25
32
  content: content
26
33
  }, (0, _react2.jsx)("span", null, (0, _react2.jsx)("strong", null, children), (0, _react2.jsx)(_icon.EuiIcon, {
27
- type: "questionInCircle",
28
- className: "euiMarkdownTooltip__icon"
34
+ type: "questionInCircle"
35
+ // This is to offset the tooltip icon, which isn't perfectly centered
36
+ ,
37
+ css: _ref2
29
38
  }))));
30
39
  };
31
40
  exports.tooltipMarkdownRenderer = tooltipMarkdownRenderer;
@@ -640,7 +640,7 @@ EuiSelectable.propTypes = {
640
640
  * 'on' to indicate inclusion, 'off' to indicate exclusion,
641
641
  * or 'mixed' to indicate inclusion for some.
642
642
  */
643
- checked: _propTypes.default.oneOf(["on", "off", "mixed", undefined]),
643
+ checked: _propTypes.default.any,
644
644
  disabled: _propTypes.default.bool,
645
645
  /**
646
646
  * Node to add between the selection icon and the label
@@ -670,7 +670,15 @@ EuiSelectable.propTypes = {
670
670
  * Note: when searching, custom truncation props are ignored. The highlighted search
671
671
  * text will always take precedence.
672
672
  */
673
- truncationProps: _propTypes.default.any
673
+ truncationProps: _propTypes.default.any,
674
+ /**
675
+ * Optional custom tooltip content for the button
676
+ */
677
+ toolTipContent: _propTypes.default.node,
678
+ /**
679
+ * Optional props to pass to the underlying **[EuiToolTip](/#/display/tooltip)**
680
+ */
681
+ toolTipProps: _propTypes.default.any
674
682
  }).isRequired).isRequired,
675
683
  /**
676
684
  * Passes back the altered `options` array with selected options having `checked: 'on'`.
@@ -52,6 +52,9 @@ var EuiSelectableList = /*#__PURE__*/function (_Component) {
52
52
  var _this;
53
53
  _classCallCheck(this, EuiSelectableList);
54
54
  _this = _super.call(this, props);
55
+ _defineProperty(_assertThisInitialized(_this), "animationFrameId", void 0);
56
+ // counter for tracking list renders and ensuring rerenders
57
+ _defineProperty(_assertThisInitialized(_this), "listRowRerender", 0);
55
58
  _defineProperty(_assertThisInitialized(_this), "listRef", null);
56
59
  _defineProperty(_assertThisInitialized(_this), "listBoxRef", null);
57
60
  _defineProperty(_assertThisInitialized(_this), "setListRef", function (ref) {
@@ -176,7 +179,6 @@ var EuiSelectableList = /*#__PURE__*/function (_Component) {
176
179
  event.persist(); // NOTE: This is needed for React v16 backwards compatibility
177
180
  _this.onAddOrRemoveOption(option, event);
178
181
  },
179
- ref: ref ? ref.bind(null, index) : undefined,
180
182
  isFocused: isFocused,
181
183
  title: searchableLabel || label,
182
184
  checked: checked,
@@ -277,7 +279,7 @@ var EuiSelectableList = /*#__PURE__*/function (_Component) {
277
279
  _this.focusBadgeOffset = _this.props.onFocusBadge === false ? 0 : 46;
278
280
 
279
281
  // Wait a tick for the listbox ref to update before proceeding
280
- requestAnimationFrame(function () {
282
+ _this.animationFrameId = requestAnimationFrame(function () {
281
283
  var scrollbarOffset = _this.listBoxRef ? containerWidth - _this.listBoxRef.offsetWidth : 0;
282
284
  _this.setState({
283
285
  defaultOptionWidth: containerWidth - scrollbarOffset - paddingOffset - checkedIconOffset
@@ -429,13 +431,47 @@ var EuiSelectableList = /*#__PURE__*/function (_Component) {
429
431
  return _this;
430
432
  }
431
433
  _createClass(EuiSelectableList, [{
434
+ key: "componentWillUnmount",
435
+ value: function componentWillUnmount() {
436
+ // ensure requestAnimationFrame is canceled on unmount as
437
+ // it could potentially run on a next tick otherwise
438
+ if (this.animationFrameId !== undefined) {
439
+ cancelAnimationFrame(this.animationFrameId);
440
+ this.animationFrameId = undefined;
441
+ }
442
+ }
443
+ }, {
444
+ key: "shouldComponentUpdate",
445
+ value: function shouldComponentUpdate(nextProps) {
446
+ var _this$props9 = this.props,
447
+ allowExclusions = _this$props9.allowExclusions,
448
+ showIcons = _this$props9.showIcons,
449
+ paddingSize = _this$props9.paddingSize,
450
+ textWrap = _this$props9.textWrap,
451
+ onFocusBadge = _this$props9.onFocusBadge,
452
+ searchable = _this$props9.searchable;
453
+
454
+ // using shouldComponentUpdate to determine needed rerender before actual rerender
455
+ // without needing state updates or lagging behind on updates
456
+ if (nextProps.allowExclusions !== allowExclusions || nextProps.showIcons !== showIcons || nextProps.paddingSize !== paddingSize || nextProps.textWrap !== textWrap || nextProps.onFocusBadge !== onFocusBadge || nextProps.searchable !== searchable) {
457
+ this.listRowRerender += 1;
458
+ }
459
+ return true;
460
+ }
461
+ }, {
432
462
  key: "componentDidUpdate",
433
463
  value: function componentDidUpdate(prevProps) {
434
- var _this$props9 = this.props,
435
- isVirtualized = _this$props9.isVirtualized,
436
- activeOptionIndex = _this$props9.activeOptionIndex,
437
- visibleOptions = _this$props9.visibleOptions,
438
- options = _this$props9.options;
464
+ var _this$props10 = this.props,
465
+ isVirtualized = _this$props10.isVirtualized,
466
+ activeOptionIndex = _this$props10.activeOptionIndex,
467
+ visibleOptions = _this$props10.visibleOptions,
468
+ options = _this$props10.options,
469
+ allowExclusions = _this$props10.allowExclusions,
470
+ showIcons = _this$props10.showIcons,
471
+ paddingSize = _this$props10.paddingSize,
472
+ textWrap = _this$props10.textWrap,
473
+ onFocusBadge = _this$props10.onFocusBadge,
474
+ searchable = _this$props10.searchable;
439
475
  if (prevProps.activeOptionIndex !== activeOptionIndex) {
440
476
  var makeOptionId = this.props.makeOptionId;
441
477
  if (this.listBoxRef && this.props.searchable !== true) {
@@ -467,41 +503,48 @@ var EuiSelectableList = /*#__PURE__*/function (_Component) {
467
503
  itemData: _objectSpread({}, optionArray)
468
504
  }, this.calculateAriaSetAttrs(optionArray)));
469
505
  }
506
+
507
+ // ensure that ListRow updates based on item props
508
+ if (isVirtualized) {
509
+ if (prevProps.allowExclusions !== allowExclusions || prevProps.showIcons !== showIcons || prevProps.paddingSize !== paddingSize || prevProps.textWrap !== textWrap || prevProps.onFocusBadge !== onFocusBadge || prevProps.searchable !== searchable) {
510
+ this.forceVirtualizedListRowRerender();
511
+ }
512
+ }
470
513
  }
471
514
  }, {
472
515
  key: "render",
473
516
  value: function render() {
474
517
  var _this2 = this;
475
- var _this$props10 = this.props,
476
- className = _this$props10.className,
477
- options = _this$props10.options,
478
- searchValue = _this$props10.searchValue,
479
- onOptionClick = _this$props10.onOptionClick,
480
- renderOption = _this$props10.renderOption,
481
- forcedHeight = _this$props10.height,
482
- windowProps = _this$props10.windowProps,
483
- rowHeight = _this$props10.rowHeight,
484
- activeOptionIndex = _this$props10.activeOptionIndex,
485
- makeOptionId = _this$props10.makeOptionId,
486
- showIcons = _this$props10.showIcons,
487
- singleSelection = _this$props10.singleSelection,
488
- visibleOptions = _this$props10.visibleOptions,
489
- allowExclusions = _this$props10.allowExclusions,
490
- bordered = _this$props10.bordered,
491
- paddingSize = _this$props10.paddingSize,
492
- searchable = _this$props10.searchable,
493
- onFocusBadge = _this$props10.onFocusBadge,
494
- listId = _this$props10.listId,
495
- setActiveOptionIndex = _this$props10.setActiveOptionIndex,
496
- ariaLabel = _this$props10['aria-label'],
497
- ariaLabelledby = _this$props10['aria-labelledby'],
498
- ariaDescribedby = _this$props10['aria-describedby'],
499
- role = _this$props10.role,
500
- isPreFiltered = _this$props10.isPreFiltered,
501
- isVirtualized = _this$props10.isVirtualized,
502
- textWrap = _this$props10.textWrap,
503
- truncationProps = _this$props10.truncationProps,
504
- rest = _objectWithoutProperties(_this$props10, _excluded3);
518
+ var _this$props11 = this.props,
519
+ className = _this$props11.className,
520
+ options = _this$props11.options,
521
+ searchValue = _this$props11.searchValue,
522
+ onOptionClick = _this$props11.onOptionClick,
523
+ renderOption = _this$props11.renderOption,
524
+ forcedHeight = _this$props11.height,
525
+ windowProps = _this$props11.windowProps,
526
+ rowHeight = _this$props11.rowHeight,
527
+ activeOptionIndex = _this$props11.activeOptionIndex,
528
+ makeOptionId = _this$props11.makeOptionId,
529
+ showIcons = _this$props11.showIcons,
530
+ singleSelection = _this$props11.singleSelection,
531
+ visibleOptions = _this$props11.visibleOptions,
532
+ allowExclusions = _this$props11.allowExclusions,
533
+ bordered = _this$props11.bordered,
534
+ paddingSize = _this$props11.paddingSize,
535
+ searchable = _this$props11.searchable,
536
+ onFocusBadge = _this$props11.onFocusBadge,
537
+ listId = _this$props11.listId,
538
+ setActiveOptionIndex = _this$props11.setActiveOptionIndex,
539
+ ariaLabel = _this$props11['aria-label'],
540
+ ariaLabelledby = _this$props11['aria-labelledby'],
541
+ ariaDescribedby = _this$props11['aria-describedby'],
542
+ role = _this$props11.role,
543
+ isPreFiltered = _this$props11.isPreFiltered,
544
+ isVirtualized = _this$props11.isVirtualized,
545
+ textWrap = _this$props11.textWrap,
546
+ truncationProps = _this$props11.truncationProps,
547
+ rest = _objectWithoutProperties(_this$props11, _excluded3);
505
548
  var heightIsFull = forcedHeight === 'full';
506
549
  var classes = (0, _classnames.default)('euiSelectableList', {
507
550
  'euiSelectableList-fullHeight': heightIsFull,
@@ -519,7 +562,7 @@ var EuiSelectableList = /*#__PURE__*/function (_Component) {
519
562
  ref: this.setListBoxRef
520
563
  }, this.state.optionArray.map(function (_, index) {
521
564
  return /*#__PURE__*/_react.default.createElement(_this2.ListRow, {
522
- key: index,
565
+ key: "".concat(index, "-").concat(_this2.listRowRerender),
523
566
  data: _this2.state.optionArray,
524
567
  index: index
525
568
  }, null);
@@ -670,7 +713,7 @@ EuiSelectableList.propTypes = {
670
713
  * 'on' to indicate inclusion, 'off' to indicate exclusion,
671
714
  * or 'mixed' to indicate inclusion for some.
672
715
  */
673
- checked: _propTypes.default.oneOf(["on", "off", "mixed", undefined]),
716
+ checked: _propTypes.default.any,
674
717
  disabled: _propTypes.default.bool,
675
718
  /**
676
719
  * Node to add between the selection icon and the label
@@ -700,7 +743,15 @@ EuiSelectableList.propTypes = {
700
743
  * Note: when searching, custom truncation props are ignored. The highlighted search
701
744
  * text will always take precedence.
702
745
  */
703
- truncationProps: _propTypes.default.any
746
+ truncationProps: _propTypes.default.any,
747
+ /**
748
+ * Optional custom tooltip content for the button
749
+ */
750
+ toolTipContent: _propTypes.default.node,
751
+ /**
752
+ * Optional props to pass to the underlying **[EuiToolTip](/#/display/tooltip)**
753
+ */
754
+ toolTipProps: _propTypes.default.any
704
755
  }).isRequired).isRequired,
705
756
  /**
706
757
  * Filtered options list (if applicable)
@@ -714,14 +765,16 @@ EuiSelectableList.propTypes = {
714
765
  label: _propTypes.default.string,
715
766
  searchableLabel: _propTypes.default.string,
716
767
  key: _propTypes.default.string,
717
- checked: _propTypes.default.oneOf(["on", "off", "mixed", undefined]),
768
+ checked: _propTypes.default.any,
718
769
  disabled: _propTypes.default.bool,
719
770
  prepend: _propTypes.default.node,
720
771
  append: _propTypes.default.node,
721
772
  ref: _propTypes.default.func,
722
773
  data: _propTypes.default.shape({}),
723
774
  textWrap: _propTypes.default.oneOf(["truncate", "wrap"]),
724
- truncationProps: _propTypes.default.any
775
+ truncationProps: _propTypes.default.any,
776
+ toolTipContent: _propTypes.default.node,
777
+ toolTipProps: _propTypes.default.any
725
778
  }).isRequired),
726
779
  /**
727
780
  * Search value to highlight on the option render