@elastic/eui 114.3.0 → 115.0.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 (124) hide show
  1. package/es/components/basic_table/basic_table.js +3 -6
  2. package/es/components/basic_table/collapsed_item_actions.js +1 -3
  3. package/es/components/basic_table/default_item_action.js +0 -1
  4. package/es/components/basic_table/in_memory_table.js +3 -6
  5. package/es/components/color_picker/color_picker_swatch.js +1 -2
  6. package/es/components/datagrid/controls/display_selector.js +1 -2
  7. package/es/components/datagrid/controls/fullscreen_selector.js +1 -2
  8. package/es/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  9. package/es/components/filter_group/filter_select_item.js +36 -17
  10. package/es/components/key_pad_menu/key_pad_menu_item.js +1 -2
  11. package/es/components/list_group/list_group_item.js +1 -2
  12. package/es/components/markdown_editor/markdown_editor.js +1 -1
  13. package/es/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
  14. package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
  15. package/es/components/markdown_editor/markdown_editor_toolbar.js +14 -10
  16. package/es/components/portal/portal.js +72 -117
  17. package/es/components/search_bar/filters/field_value_toggle_group_filter.js +42 -91
  18. package/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
  19. package/es/components/table/table_header_cell.js +1 -2
  20. package/es/components/tool_tip/icon_tip.js +4 -8
  21. package/es/components/tool_tip/tool_tip.js +233 -261
  22. package/es/components/tool_tip/tool_tip.styles.js +10 -18
  23. package/es/components/tool_tip/tool_tip_anchor.js +3 -3
  24. package/es/components/tool_tip/tool_tip_manager.js +1 -0
  25. package/es/components/tool_tip/tool_tip_popover.js +7 -7
  26. package/es/test/rtl/component_helpers.d.ts +0 -3
  27. package/es/test/rtl/component_helpers.js +40 -62
  28. package/eui.d.ts +25 -96
  29. package/lib/components/basic_table/basic_table.js +3 -6
  30. package/lib/components/basic_table/collapsed_item_actions.js +1 -3
  31. package/lib/components/basic_table/default_item_action.js +0 -1
  32. package/lib/components/basic_table/in_memory_table.js +3 -6
  33. package/lib/components/color_picker/color_picker_swatch.js +1 -2
  34. package/lib/components/datagrid/controls/display_selector.js +1 -2
  35. package/lib/components/datagrid/controls/fullscreen_selector.js +1 -2
  36. package/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  37. package/lib/components/filter_group/filter_select_item.js +35 -16
  38. package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -2
  39. package/lib/components/list_group/list_group_item.js +1 -2
  40. package/lib/components/markdown_editor/markdown_editor.js +1 -1
  41. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
  42. package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
  43. package/lib/components/markdown_editor/markdown_editor_toolbar.js +12 -10
  44. package/lib/components/portal/portal.js +73 -118
  45. package/lib/components/search_bar/filters/field_value_toggle_group_filter.js +44 -93
  46. package/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
  47. package/lib/components/table/table_header_cell.js +1 -2
  48. package/lib/components/tool_tip/icon_tip.js +4 -8
  49. package/lib/components/tool_tip/tool_tip.js +240 -266
  50. package/lib/components/tool_tip/tool_tip.styles.js +8 -16
  51. package/lib/components/tool_tip/tool_tip_anchor.js +2 -2
  52. package/lib/components/tool_tip/tool_tip_manager.js +1 -0
  53. package/lib/components/tool_tip/tool_tip_popover.js +6 -6
  54. package/lib/test/rtl/component_helpers.d.ts +0 -3
  55. package/lib/test/rtl/component_helpers.js +41 -63
  56. package/optimize/es/components/basic_table/collapsed_item_actions.js +1 -3
  57. package/optimize/es/components/basic_table/default_item_action.js +0 -1
  58. package/optimize/es/components/datagrid/controls/display_selector.js +1 -2
  59. package/optimize/es/components/datagrid/controls/fullscreen_selector.js +1 -2
  60. package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  61. package/optimize/es/components/filter_group/filter_select_item.js +36 -17
  62. package/optimize/es/components/key_pad_menu/key_pad_menu_item.js +1 -2
  63. package/optimize/es/components/list_group/list_group_item.js +1 -2
  64. package/optimize/es/components/markdown_editor/markdown_editor_drop_zone.js +5 -2
  65. package/optimize/es/components/markdown_editor/markdown_editor_toolbar.js +13 -9
  66. package/optimize/es/components/portal/portal.js +65 -91
  67. package/optimize/es/components/search_bar/filters/field_value_toggle_group_filter.js +43 -66
  68. package/optimize/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
  69. package/optimize/es/components/tool_tip/icon_tip.js +3 -5
  70. package/optimize/es/components/tool_tip/tool_tip.js +227 -250
  71. package/optimize/es/components/tool_tip/tool_tip.styles.js +10 -18
  72. package/optimize/es/components/tool_tip/tool_tip_anchor.js +3 -3
  73. package/optimize/es/components/tool_tip/tool_tip_manager.js +1 -0
  74. package/optimize/es/components/tool_tip/tool_tip_popover.js +7 -7
  75. package/optimize/es/test/rtl/component_helpers.d.ts +0 -3
  76. package/optimize/es/test/rtl/component_helpers.js +40 -62
  77. package/optimize/lib/components/basic_table/collapsed_item_actions.js +1 -3
  78. package/optimize/lib/components/basic_table/default_item_action.js +0 -1
  79. package/optimize/lib/components/datagrid/controls/display_selector.js +1 -2
  80. package/optimize/lib/components/datagrid/controls/fullscreen_selector.js +1 -2
  81. package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  82. package/optimize/lib/components/filter_group/filter_select_item.js +35 -16
  83. package/optimize/lib/components/key_pad_menu/key_pad_menu_item.js +1 -2
  84. package/optimize/lib/components/list_group/list_group_item.js +1 -2
  85. package/optimize/lib/components/markdown_editor/markdown_editor_drop_zone.js +5 -2
  86. package/optimize/lib/components/markdown_editor/markdown_editor_toolbar.js +13 -9
  87. package/optimize/lib/components/portal/portal.js +68 -93
  88. package/optimize/lib/components/search_bar/filters/field_value_toggle_group_filter.js +45 -69
  89. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
  90. package/optimize/lib/components/tool_tip/icon_tip.js +3 -5
  91. package/optimize/lib/components/tool_tip/tool_tip.js +229 -251
  92. package/optimize/lib/components/tool_tip/tool_tip.styles.js +8 -16
  93. package/optimize/lib/components/tool_tip/tool_tip_anchor.js +2 -2
  94. package/optimize/lib/components/tool_tip/tool_tip_manager.js +1 -0
  95. package/optimize/lib/components/tool_tip/tool_tip_popover.js +6 -6
  96. package/optimize/lib/test/rtl/component_helpers.d.ts +0 -3
  97. package/optimize/lib/test/rtl/component_helpers.js +41 -63
  98. package/package.json +2 -10
  99. package/test-env/components/basic_table/basic_table.js +3 -6
  100. package/test-env/components/basic_table/collapsed_item_actions.js +1 -3
  101. package/test-env/components/basic_table/default_item_action.js +0 -1
  102. package/test-env/components/basic_table/in_memory_table.js +3 -6
  103. package/test-env/components/color_picker/color_picker_swatch.js +1 -2
  104. package/test-env/components/datagrid/controls/display_selector.js +1 -2
  105. package/test-env/components/datagrid/controls/fullscreen_selector.js +1 -2
  106. package/test-env/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  107. package/test-env/components/filter_group/filter_select_item.js +35 -16
  108. package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -2
  109. package/test-env/components/list_group/list_group_item.js +1 -2
  110. package/test-env/components/markdown_editor/markdown_editor.js +1 -1
  111. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
  112. package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
  113. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +14 -10
  114. package/test-env/components/portal/portal.js +70 -113
  115. package/test-env/components/search_bar/filters/field_value_toggle_group_filter.js +44 -88
  116. package/test-env/components/selectable/selectable_list/selectable_list_item.js +1 -1
  117. package/test-env/components/table/table_header_cell.js +1 -2
  118. package/test-env/components/tool_tip/icon_tip.js +4 -8
  119. package/test-env/components/tool_tip/tool_tip.js +230 -256
  120. package/test-env/components/tool_tip/tool_tip.styles.js +8 -16
  121. package/test-env/components/tool_tip/tool_tip_anchor.js +2 -2
  122. package/test-env/components/tool_tip/tool_tip_manager.js +1 -0
  123. package/test-env/components/tool_tip/tool_tip_popover.js +6 -6
  124. package/test-env/test/rtl/component_helpers.js +41 -63
@@ -1,4 +1,4 @@
1
- var _templateObject, _templateObject2;
1
+ var _templateObject;
2
2
  function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
3
3
  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)."; }
4
4
  /*
@@ -10,8 +10,8 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
10
10
  */
11
11
 
12
12
  import { css, keyframes } from '@emotion/react';
13
- import { euiShadow } from '@elastic/eui-theme-common';
14
- import { logicalCSS, euiFontSize, euiCanAnimate } from '../../global_styling';
13
+ import { euiCanAnimate, euiShadow } from '@elastic/eui-theme-common';
14
+ import { logicalCSS, euiFontSize } from '../../global_styling';
15
15
  import { _popoverArrowStyles } from '../../services/popover';
16
16
  import { euiPanelBorderStyles } from '../panel/panel.styles';
17
17
  export var euiToolTipBackgroundColor = function euiToolTipBackgroundColor(euiTheme) {
@@ -20,29 +20,21 @@ export var euiToolTipBackgroundColor = function euiToolTipBackgroundColor(euiThe
20
20
  export var euiToolTipBorderColor = function euiToolTipBorderColor(euiTheme) {
21
21
  return euiTheme.components.tooltipBorder;
22
22
  };
23
- var euiToolTipAnimationVertical = function euiToolTipAnimationVertical(size) {
24
- return keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n 0% {\n opacity: 0;\n transform: translateY(", ");\n }\n\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n"])), size);
25
- };
26
- var euiToolTipAnimationHorizontal = function euiToolTipAnimationHorizontal(size) {
27
- return keyframes(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n 0% {\n opacity: 0;\n transform: translateX(", ");\n }\n\n 100% {\n opacity: 1;\n transform: translateX(0);\n }\n"])), size);
28
- };
23
+ var euiToolTipAnimation = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n from { opacity: 0; }\n to { opacity: 1; }\n"])));
29
24
  export var euiToolTipStyles = function euiToolTipStyles(euiThemeContext) {
30
25
  var euiTheme = euiThemeContext.euiTheme,
31
26
  highContrastMode = euiThemeContext.highContrastMode;
32
27
  var hasShadow = !highContrastMode;
33
- var animationTiming = "".concat(euiTheme.animation.slow, " ease-out 0s forwards");
34
28
  var arrowSize = euiTheme.size.m;
35
29
  var arrowStyles = _popoverArrowStyles(euiThemeContext, arrowSize);
36
30
  return {
37
31
  // Base
38
- euiToolTip: /*#__PURE__*/css(hasShadow ? euiShadow(euiThemeContext) : '', " border-radius:", euiTheme.border.radius.medium, ";background-color:", euiToolTipBackgroundColor(euiTheme), ";color:", euiTheme.colors.textGhost, ";z-index:", euiTheme.levels.toast, ";", logicalCSS('max-width', '256px'), " overflow-wrap:break-word;padding:", euiTheme.size.s, ";", euiFontSize(euiThemeContext, 's'), " position:absolute;", euiPanelBorderStyles(euiThemeContext), " [class*='euiHorizontalRule']{background-color:", euiToolTipBorderColor(euiTheme), ";};label:euiToolTip;"),
39
- // Sizes
40
- s: /*#__PURE__*/css(euiFontSize(euiThemeContext, 'xs'), ";;label:s;"),
41
- // Positions
42
- top: /*#__PURE__*/css(euiCanAnimate, "{animation:", euiToolTipAnimationVertical("-".concat(euiTheme.size.base)), " ", animationTiming, ";};label:top;"),
43
- bottom: /*#__PURE__*/css(euiCanAnimate, "{animation:", euiToolTipAnimationVertical(euiTheme.size.base), " ", animationTiming, ";};label:bottom;"),
44
- left: /*#__PURE__*/css(euiCanAnimate, "{animation:", euiToolTipAnimationHorizontal("-".concat(euiTheme.size.base)), " ", animationTiming, ";};label:left;"),
45
- right: /*#__PURE__*/css(euiCanAnimate, "{animation:", euiToolTipAnimationHorizontal(euiTheme.size.base), " ", animationTiming, ";};label:right;"),
32
+ euiToolTip: /*#__PURE__*/css(hasShadow ? euiShadow(euiThemeContext) : '', " border-radius:", euiTheme.border.radius.medium, ";background-color:", euiToolTipBackgroundColor(euiTheme), ";color:", euiTheme.colors.textGhost, ";z-index:", euiTheme.levels.toast, ";", logicalCSS('max-width', '256px'), " overflow-wrap:break-word;padding:", euiTheme.size.s, ";", euiFontSize(euiThemeContext, 'xs'), " position:absolute;pointer-events:none;", euiPanelBorderStyles(euiThemeContext), " [class*='euiHorizontalRule']{background-color:", euiToolTipBorderColor(euiTheme), ";}", euiCanAnimate, "{animation:", euiToolTipAnimation, " ", euiTheme.animation.extraFast, " ease-out ", euiTheme.animation.fast, " both;};label:euiToolTip;"),
33
+ // Positions - kept for component compatibility. Animation is in the base style.
34
+ top: /*#__PURE__*/css(";label:top;"),
35
+ bottom: /*#__PURE__*/css(";label:bottom;"),
36
+ left: /*#__PURE__*/css(";label:left;"),
37
+ right: /*#__PURE__*/css(";label:right;"),
46
38
  // Arrow
47
39
  euiToolTip__arrow: /*#__PURE__*/css(arrowStyles._arrowStyles, " background-color:inherit;;label:euiToolTip__arrow;"),
48
40
  arrowPositions: arrowStyles.positions,
@@ -13,7 +13,7 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
13
13
  import React, { cloneElement, forwardRef } from 'react';
14
14
  import PropTypes from "prop-types";
15
15
  import classNames from 'classnames';
16
- import { useGeneratedHtmlId } from '../../services';
16
+ import { useGeneratedHtmlId, useEuiMemoizedStyles } from '../../services';
17
17
  import { euiToolTipAnchorStyles } from './tool_tip.styles';
18
18
  import { jsx as ___EmotionJSX } from "@emotion/react";
19
19
  export var EuiToolTipAnchor = /*#__PURE__*/forwardRef(function (_ref, ref) {
@@ -27,7 +27,7 @@ export var EuiToolTipAnchor = /*#__PURE__*/forwardRef(function (_ref, ref) {
27
27
  display = _ref.display,
28
28
  isVisible = _ref.isVisible,
29
29
  rest = _objectWithoutProperties(_ref, _excluded);
30
- var anchorCss = euiToolTipAnchorStyles();
30
+ var anchorCss = useEuiMemoizedStyles(euiToolTipAnchorStyles);
31
31
  var cssStyles = [anchorCss.euiToolTipAnchor, anchorCss[display]];
32
32
  var classes = classNames('euiToolTipAnchor', className);
33
33
  var anchorId = useGeneratedHtmlId({
@@ -48,7 +48,7 @@ export var EuiToolTipAnchor = /*#__PURE__*/forwardRef(function (_ref, ref) {
48
48
  onMouseOut: onMouseOut
49
49
  }), /*#__PURE__*/cloneElement(children, {
50
50
  onFocus: function onFocus(e) {
51
- _onFocus();
51
+ _onFocus(e);
52
52
  children.props.onFocus && children.props.onFocus(e);
53
53
  },
54
54
  onBlur: function onBlur(e) {
@@ -26,6 +26,7 @@ var ToolTipManager = /*#__PURE__*/_createClass(function ToolTipManager() {
26
26
  // multiple tooltips are registered via async shenanigans
27
27
  _defineProperty(this, "toolTipsToHide", new Set());
28
28
  _defineProperty(this, "registerTooltip", function (hideCallback) {
29
+ if (_this.toolTipsToHide.has(hideCallback)) return;
29
30
  _this.toolTipsToHide.forEach(function (hide) {
30
31
  return hide();
31
32
  });
@@ -13,7 +13,7 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
13
13
  import React, { useEffect, useRef, useCallback } from 'react';
14
14
  import PropTypes from "prop-types";
15
15
  import classNames from 'classnames';
16
- import { useEuiTheme } from '../../services';
16
+ import { useEuiMemoizedStyles } from '../../services';
17
17
  import { euiToolTipStyles } from './tool_tip.styles';
18
18
  import { jsx as ___EmotionJSX } from "@emotion/react";
19
19
  export var EuiToolTipPopover = function EuiToolTipPopover(_ref) {
@@ -24,23 +24,23 @@ export var EuiToolTipPopover = function EuiToolTipPopover(_ref) {
24
24
  popoverRef = _ref.popoverRef,
25
25
  calculatedPosition = _ref.calculatedPosition,
26
26
  rest = _objectWithoutProperties(_ref, _excluded);
27
- var popover = useRef();
28
- var euiTheme = useEuiTheme();
29
- var styles = euiToolTipStyles(euiTheme);
27
+ var popover = useRef(null);
28
+ var styles = useEuiMemoizedStyles(euiToolTipStyles);
30
29
  var cssStyles = [styles.euiToolTip, calculatedPosition && styles[calculatedPosition]];
31
30
  var updateDimensions = useCallback(function () {
32
31
  requestAnimationFrame(function () {
33
- // Because of this delay, sometimes `positionToolTip` becomes unavailable.
32
+ // Because of this delay, the popover may have unmounted by the time the RAF fires.
34
33
  if (popover.current) {
35
34
  positionToolTip();
36
35
  }
37
36
  });
38
37
  }, [positionToolTip]);
39
- var setPopoverRef = function setPopoverRef(ref) {
38
+ var setPopoverRef = useCallback(function (ref) {
39
+ popover.current = ref;
40
40
  if (popoverRef) {
41
41
  popoverRef(ref);
42
42
  }
43
- };
43
+ }, [popoverRef]);
44
44
  useEffect(function () {
45
45
  document.body.classList.add('euiBody-hasPortalContent');
46
46
  window.addEventListener('resize', updateDimensions);
@@ -6,9 +6,6 @@
6
6
  export declare const waitForEuiPopoverOpen: () => Promise<void>;
7
7
  export declare const waitForEuiPopoverClose: () => Promise<void>;
8
8
 
9
- export declare const waitForEuiToolTipVisible: () => Promise<void>;
10
- export declare const waitForEuiToolTipHidden: () => Promise<void>;
11
-
12
9
  export declare const showEuiComboBoxOptions: () => Promise<void>;
13
10
 
14
11
  export declare const waitForEuiContextMenuPanelTransition: () => Promise<void>;
@@ -65,81 +65,59 @@ export var waitForEuiPopoverClose = /*#__PURE__*/function () {
65
65
  }();
66
66
 
67
67
  /**
68
- * Ensure the EuiToolTip being tested is open and visible before continuing
68
+ * jsdom does not track keyboard vs. mouse input modality, so `:focus-visible`
69
+ * always returns false. Call this before `fireEvent.focus()` on an element that
70
+ * should be treated as keyboard-focused.
71
+ *
72
+ * Returns a cleanup function, call it after test assertions to restore the spy.
69
73
  */
70
- export var waitForEuiToolTipVisible = /*#__PURE__*/function () {
71
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
72
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
73
- while (1) switch (_context3.prev = _context3.next) {
74
- case 0:
75
- _context3.next = 2;
76
- return waitFor(function () {
77
- var tooltip = document.querySelector('.euiToolTipPopover');
78
- expect(tooltip).toBeVisible();
79
- }, {
80
- timeout: 3000
81
- } // Account for long delay on tooltips
82
- );
83
- case 2:
84
- return _context3.abrupt("return", _context3.sent);
85
- case 3:
86
- case "end":
87
- return _context3.stop();
88
- }
89
- }, _callee3);
90
- }));
91
- return function waitForEuiToolTipVisible() {
92
- return _ref3.apply(this, arguments);
74
+ export var simulateFocusVisible = function simulateFocusVisible(element) {
75
+ var originalMatches = Element.prototype.matches.bind(element);
76
+ var spy = jest.spyOn(element, 'matches').mockImplementation(function (selector) {
77
+ return selector === ':focus-visible' ? true : originalMatches(selector);
78
+ });
79
+ return function () {
80
+ return spy.mockRestore();
93
81
  };
94
- }();
95
- export var waitForEuiToolTipHidden = /*#__PURE__*/function () {
96
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
97
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
98
- while (1) switch (_context4.prev = _context4.next) {
99
- case 0:
100
- _context4.next = 2;
101
- return waitFor(function () {
102
- var tooltip = document.querySelector('.euiToolTipPopover');
103
- expect(tooltip).toBeNull();
104
- });
105
- case 2:
106
- return _context4.abrupt("return", _context4.sent);
107
- case 3:
108
- case "end":
109
- return _context4.stop();
110
- }
111
- }, _callee4);
112
- }));
113
- return function waitForEuiToolTipHidden() {
114
- return _ref4.apply(this, arguments);
115
- };
116
- }();
82
+ };
83
+
84
+ /**
85
+ * Prefer this over `fireEvent.focus()` in tooltip tests. Plain `fireEvent.focus`
86
+ * does not set `:focus-visible` in jsdom and will not trigger the tooltip.
87
+ *
88
+ * Returns a cleanup function to restore the mock after assertions.
89
+ */
90
+ export var focusEuiToolTipTrigger = function focusEuiToolTipTrigger(element) {
91
+ var cleanup = simulateFocusVisible(element);
92
+ fireEvent.focus(element);
93
+ return cleanup;
94
+ };
117
95
 
118
96
  /**
119
97
  * EuiComboBox
120
98
  */
121
99
 
122
100
  export var showEuiComboBoxOptions = /*#__PURE__*/function () {
123
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
124
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
125
- while (1) switch (_context5.prev = _context5.next) {
101
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
102
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
103
+ while (1) switch (_context3.prev = _context3.next) {
126
104
  case 0:
127
105
  fireEvent.click(screen.getByTestSubject('comboBoxToggleListButton'));
128
- _context5.next = 3;
106
+ _context3.next = 3;
129
107
  return waitForEuiPopoverOpen();
130
108
  case 3:
131
- _context5.next = 5;
109
+ _context3.next = 5;
132
110
  return waitFor(function () {
133
111
  expect(screen.getByRole('listbox')).toBeInTheDocument();
134
112
  });
135
113
  case 5:
136
114
  case "end":
137
- return _context5.stop();
115
+ return _context3.stop();
138
116
  }
139
- }, _callee5);
117
+ }, _callee3);
140
118
  }));
141
119
  return function showEuiComboBoxOptions() {
142
- return _ref5.apply(this, arguments);
120
+ return _ref3.apply(this, arguments);
143
121
  };
144
122
  }();
145
123
 
@@ -148,16 +126,16 @@ export var showEuiComboBoxOptions = /*#__PURE__*/function () {
148
126
  */
149
127
 
150
128
  export var waitForEuiContextMenuPanelTransition = /*#__PURE__*/function () {
151
- var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
129
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
152
130
  var getPanels;
153
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
154
- while (1) switch (_context6.prev = _context6.next) {
131
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
132
+ while (1) switch (_context4.prev = _context4.next) {
155
133
  case 0:
156
134
  // Used document instead of container or screen due to context menus living in portals
157
135
  getPanels = function getPanels() {
158
136
  return document.querySelectorAll('.euiContextMenuPanel');
159
137
  }; // 2 panels will appear for the transition animation
160
- _context6.next = 3;
138
+ _context4.next = 3;
161
139
  return waitFor(function () {
162
140
  expect(getPanels().length).toEqual(2);
163
141
  });
@@ -172,11 +150,11 @@ export var waitForEuiContextMenuPanelTransition = /*#__PURE__*/function () {
172
150
  expect(getPanels().length).toEqual(1);
173
151
  case 6:
174
152
  case "end":
175
- return _context6.stop();
153
+ return _context4.stop();
176
154
  }
177
- }, _callee6);
155
+ }, _callee4);
178
156
  }));
179
157
  return function waitForEuiContextMenuPanelTransition() {
180
- return _ref6.apply(this, arguments);
158
+ return _ref4.apply(this, arguments);
181
159
  };
182
160
  }();
package/eui.d.ts CHANGED
@@ -2103,12 +2103,7 @@ declare module '@elastic/eui/src/components/observer/resize_observer' {
2103
2103
 
2104
2104
  }
2105
2105
  declare module '@elastic/eui/src/components/portal/portal' {
2106
- /**
2107
- * NOTE: We can't test this component because Enzyme doesn't support rendering
2108
- * into portals.
2109
- */
2110
- import React, { FunctionComponent, Component, ContextType, ReactNode } from 'react';
2111
- import { EuiNestedThemeContext } from '@elastic/eui/src/services'; const INSERT_POSITIONS: readonly ["after", "before"];
2106
+ import { FunctionComponent, ReactNode } from 'react'; const INSERT_POSITIONS: readonly ["after", "before"];
2112
2107
  type EuiPortalInsertPosition = (typeof INSERT_POSITIONS)[number];
2113
2108
  export interface EuiPortalProps {
2114
2109
  /**
@@ -2129,19 +2124,6 @@ declare module '@elastic/eui/src/components/portal/portal' {
2129
2124
  portalRef?: (ref: HTMLDivElement | null) => void;
2130
2125
  }
2131
2126
  export const EuiPortal: FunctionComponent<EuiPortalProps>;
2132
- interface EuiPortalState {
2133
- portalNode: HTMLDivElement | null;
2134
- }
2135
- export class EuiPortalClass extends Component<EuiPortalProps, EuiPortalState> {
2136
- static contextType: React.Context<import("@elastic/eui-theme-common").EuiThemeNested>;
2137
- context: ContextType<typeof EuiNestedThemeContext>;
2138
- constructor(props: EuiPortalProps);
2139
- componentDidMount(): void;
2140
- componentWillUnmount(): void;
2141
- private setThemeColor;
2142
- private updatePortalRef;
2143
- render(): React.ReactPortal | null;
2144
- }
2145
2127
  export {};
2146
2128
 
2147
2129
  }
@@ -9763,7 +9745,6 @@ declare module '@elastic/eui/src/components/tool_tip/tool_tip.styles' {
9763
9745
  export const euiToolTipBorderColor: (euiTheme: UseEuiTheme["euiTheme"]) => string;
9764
9746
  export const euiToolTipStyles: (euiThemeContext: UseEuiTheme) => {
9765
9747
  euiToolTip: import("@emotion/react").SerializedStyles;
9766
- s: import("@emotion/react").SerializedStyles;
9767
9748
  top: import("@emotion/react").SerializedStyles;
9768
9749
  bottom: import("@emotion/react").SerializedStyles;
9769
9750
  left: import("@emotion/react").SerializedStyles;
@@ -9792,7 +9773,7 @@ declare module '@elastic/eui/src/components/tool_tip/tool_tip_popover' {
9792
9773
  positionToolTip: () => void;
9793
9774
  children?: ReactNode;
9794
9775
  title?: ReactNode;
9795
- popoverRef?: (ref: HTMLDivElement) => void;
9776
+ popoverRef?: (ref: HTMLDivElement | null) => void;
9796
9777
  calculatedPosition?: ToolTipPositions;
9797
9778
  };
9798
9779
  export const EuiToolTipPopover: FunctionComponent<Props>;
@@ -9842,16 +9823,16 @@ declare module '@elastic/eui/src/services/popover/reposition_on_scroll' {
9842
9823
 
9843
9824
  }
9844
9825
  declare module '@elastic/eui/src/components/tool_tip/tool_tip_anchor' {
9845
- import React, { HTMLAttributes } from 'react';
9826
+ import React, { HTMLAttributes, type FocusEvent as ReactFocusEvent } from 'react';
9846
9827
  import type { EuiToolTipProps } from '@elastic/eui/src/components/tool_tip/tool_tip';
9847
9828
  export type EuiToolTipAnchorProps = Omit<HTMLAttributes<HTMLSpanElement>, 'onBlur' | 'onFocus' | 'children'> & Required<Pick<EuiToolTipProps, 'display' | 'children'>> & {
9848
9829
  onBlur: () => void;
9849
- onFocus: () => void;
9830
+ onFocus: (e: ReactFocusEvent) => void;
9850
9831
  isVisible: boolean;
9851
9832
  };
9852
9833
  export const EuiToolTipAnchor: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLSpanElement>, "children" | "onFocus" | "onBlur"> & Required<Pick<EuiToolTipProps, "children" | "display">> & {
9853
9834
  onBlur: () => void;
9854
- onFocus: () => void;
9835
+ onFocus: (e: ReactFocusEvent) => void;
9855
9836
  isVisible: boolean;
9856
9837
  } & React.RefAttributes<HTMLSpanElement>>;
9857
9838
 
@@ -9875,21 +9856,11 @@ declare module '@elastic/eui/src/components/tool_tip/tool_tip_manager' {
9875
9856
 
9876
9857
  }
9877
9858
  declare module '@elastic/eui/src/components/tool_tip/tool_tip' {
9878
- import React, { Component, ContextType, ReactElement, ReactNode, MouseEvent as ReactMouseEvent, HTMLAttributes } from 'react';
9859
+ import React, { ReactElement, ReactNode, type MouseEvent as ReactMouseEvent, HTMLAttributes } from 'react';
9879
9860
  import { CommonProps } from '@elastic/eui/src/components/common';
9880
- import { type EuiPopoverPosition } from '@elastic/eui/src/services/popover';
9881
- import { EuiComponentDefaultsContext } from '@elastic/eui/src/components/provider/component_defaults';
9882
9861
  import { ToolTipPositions } from '@elastic/eui/src/components/tool_tip/tool_tip_popover';
9883
9862
  export const POSITIONS: readonly ["top", "right", "bottom", "left"]; const DISPLAYS: readonly ["inlineBlock", "block"];
9884
- export type ToolTipDelay = 'regular' | 'long';
9885
9863
  export const DEFAULT_TOOLTIP_OFFSET = 16;
9886
- interface ToolTipStyles {
9887
- top: number;
9888
- left: number | 'auto';
9889
- right?: number | 'auto';
9890
- opacity?: number;
9891
- visibility?: 'hidden';
9892
- }
9893
9864
  export interface EuiToolTipProps extends CommonProps {
9894
9865
  /**
9895
9866
  * Passes onto the span wrapping the trigger.
@@ -9915,10 +9886,6 @@ declare module '@elastic/eui/src/components/tool_tip/tool_tip' {
9915
9886
  * Common display alternatives for the anchor wrapper
9916
9887
  */
9917
9888
  display?: (typeof DISPLAYS)[number];
9918
- /**
9919
- * Delay before showing tooltip. Good for repeatable items.
9920
- */
9921
- delay: ToolTipDelay;
9922
9889
  /**
9923
9890
  * An optional title for your tooltip.
9924
9891
  */
@@ -9930,7 +9897,7 @@ declare module '@elastic/eui/src/components/tool_tip/tool_tip' {
9930
9897
  /**
9931
9898
  * Suggested position. If there is not enough room for it this will be changed.
9932
9899
  */
9933
- position: ToolTipPositions;
9900
+ position?: ToolTipPositions;
9934
9901
  /**
9935
9902
  * When `true`, the tooltip's position is re-calculated when the user
9936
9903
  * scrolls. This supports having fixed-position tooltip anchors.
@@ -9957,40 +9924,12 @@ declare module '@elastic/eui/src/components/tool_tip/tool_tip' {
9957
9924
  */
9958
9925
  offset?: number;
9959
9926
  }
9960
- interface State {
9961
- visible: boolean;
9962
- hasFocus: boolean;
9963
- calculatedPosition: ToolTipPositions;
9964
- toolTipStyles: ToolTipStyles;
9965
- arrowStyles?: Record<EuiPopoverPosition, number | string>;
9966
- id: string;
9967
- }
9968
- export class EuiToolTip extends Component<EuiToolTipProps, State> {
9969
- static contextType: React.Context<import ("@elastic/eui/src/components/provider/component_defaults").EuiComponentDefaults>;
9970
- context: ContextType<typeof EuiComponentDefaultsContext>;
9971
- private repositionOnScroll;
9972
- _isMounted: boolean;
9973
- anchor: null | HTMLElement;
9974
- popover: null | HTMLElement;
9975
- private timeoutId?;
9976
- constructor(props: EuiToolTipProps);
9977
- static defaultProps: Partial<EuiToolTipProps>;
9978
- clearAnimationTimeout: () => void;
9979
- componentDidMount(): void;
9980
- componentWillUnmount(): void;
9981
- componentDidUpdate(prevProps: EuiToolTipProps, prevState: State): void;
9982
- testAnchor: () => void;
9983
- setAnchorRef: (ref: HTMLElement) => HTMLElement;
9984
- setPopoverRef: (ref: HTMLElement) => HTMLElement;
9927
+ export interface EuiToolTipRef {
9985
9928
  showToolTip: () => void;
9986
- positionToolTip: () => void;
9987
9929
  hideToolTip: () => void;
9988
- onFocus: () => void;
9989
- onBlur: () => void;
9990
- onEscapeKey: (event: React.KeyboardEvent<HTMLSpanElement>) => void;
9991
- onMouseOut: (event: ReactMouseEvent<HTMLSpanElement, MouseEvent>) => void;
9992
- render(): React.JSX.Element;
9930
+ id: string;
9993
9931
  }
9932
+ export const EuiToolTip: React.ForwardRefExoticComponent<EuiToolTipProps & React.RefAttributes<EuiToolTipRef>>;
9994
9933
  export {};
9995
9934
 
9996
9935
  }
@@ -9999,7 +9938,7 @@ declare module '@elastic/eui/src/components/tool_tip/icon_tip' {
9999
9938
  import { PropsOf } from '@elastic/eui/src/components/common';
10000
9939
  import { EuiIcon, IconSize, IconType } from '@elastic/eui/src/components/icon';
10001
9940
  import { EuiToolTipProps } from '@elastic/eui/src/components/tool_tip/tool_tip';
10002
- export type EuiIconTipProps = Omit<EuiToolTipProps, 'children' | 'delay' | 'position'> & {
9941
+ export type EuiIconTipProps = Omit<EuiToolTipProps, 'children' | 'position'> & {
10003
9942
  /**
10004
9943
  * Children are not allowed as they are built using the icon props
10005
9944
  */
@@ -10026,7 +9965,6 @@ declare module '@elastic/eui/src/components/tool_tip/icon_tip' {
10026
9965
  iconProps?: Omit<PropsOf<typeof EuiIcon>, 'type'> & {
10027
9966
  type?: never;
10028
9967
  };
10029
- delay?: EuiToolTipProps['delay'];
10030
9968
  position?: EuiToolTipProps['position'];
10031
9969
  };
10032
9970
  export const EuiIconTip: FunctionComponent<EuiIconTipProps>;
@@ -10034,7 +9972,7 @@ declare module '@elastic/eui/src/components/tool_tip/icon_tip' {
10034
9972
  }
10035
9973
  declare module '@elastic/eui/src/components/tool_tip' {
10036
9974
  export type { ToolTipPositions } from '@elastic/eui/src/components/tool_tip/tool_tip_popover';
10037
- export type { EuiToolTipProps } from '@elastic/eui/src/components/tool_tip/tool_tip';
9975
+ export type { EuiToolTipProps, EuiToolTipRef } from '@elastic/eui/src/components/tool_tip/tool_tip';
10038
9976
  export { EuiToolTip } from '@elastic/eui/src/components/tool_tip/tool_tip';
10039
9977
  export type { EuiIconTipProps } from '@elastic/eui/src/components/tool_tip/icon_tip';
10040
9978
  export { EuiIconTip } from '@elastic/eui/src/components/tool_tip/icon_tip';
@@ -11837,9 +11775,8 @@ declare module '@elastic/eui/src/components/basic_table/table_types' {
11837
11775
  icon?: IconType;
11838
11776
  /** Additional props for EuiIcon */
11839
11777
  iconProps?: EuiIconTipProps['iconProps'];
11840
- /** Additional props for the EuiToolip */
11841
- tooltipProps?: Omit<EuiToolTipProps, 'children' | 'delay' | 'position'> & {
11842
- delay?: EuiToolTipProps['delay'];
11778
+ /** Additional props for the EuiToolTip */
11779
+ tooltipProps?: Omit<EuiToolTipProps, 'children' | 'position'> & {
11843
11780
  position?: EuiToolTipProps['position'];
11844
11781
  };
11845
11782
  };
@@ -21867,9 +21804,8 @@ declare module '@elastic/eui/src/components/color_picker/color_picker_swatch' {
21867
21804
  * @default true
21868
21805
  */
21869
21806
  showToolTip?: boolean;
21870
- /** Additional props for the EuiToolip when `showToolTip={true}` */
21871
- toolTipProps?: Omit<EuiToolTipProps, 'children' | 'delay' | 'position'> & {
21872
- delay?: EuiToolTipProps['delay'];
21807
+ /** Additional props for the EuiToolTip when `showToolTip={true}` */
21808
+ toolTipProps?: Omit<EuiToolTipProps, 'children' | 'position'> & {
21873
21809
  position?: EuiToolTipProps['position'];
21874
21810
  };
21875
21811
  };
@@ -21880,9 +21816,8 @@ declare module '@elastic/eui/src/components/color_picker/color_picker_swatch' {
21880
21816
  * @default true
21881
21817
  */
21882
21818
  showToolTip?: boolean;
21883
- /** Additional props for the EuiToolip when `showToolTip={true}` */
21884
- toolTipProps?: Omit<EuiToolTipProps, "children" | "delay" | "position"> & {
21885
- delay?: EuiToolTipProps["delay"];
21819
+ /** Additional props for the EuiToolTip when `showToolTip={true}` */
21820
+ toolTipProps?: Omit<EuiToolTipProps, "children" | "position"> & {
21886
21821
  position?: EuiToolTipProps["position"];
21887
21822
  };
21888
21823
  } & React.RefAttributes<HTMLButtonElement>>;
@@ -22370,7 +22305,7 @@ declare module '@elastic/eui/src/components/filter_group/filter_select_item' {
22370
22305
  import React, { ButtonHTMLAttributes, Component } from 'react';
22371
22306
  import { WithEuiThemeProps } from '@elastic/eui/src/services';
22372
22307
  import { CommonProps } from '@elastic/eui/src/components/common';
22373
- import { EuiToolTip } from '@elastic/eui/src/components/tool_tip';
22308
+ import type { EuiToolTipRef } from '@elastic/eui/src/components/tool_tip';
22374
22309
  import { EuiComboBoxOptionOption } from '@elastic/eui/src/components/combo_box';
22375
22310
  export type FilterChecked = 'on' | 'off';
22376
22311
  export interface EuiFilterSelectItemProps extends CommonProps, ButtonHTMLAttributes<HTMLButtonElement> {
@@ -22394,7 +22329,7 @@ declare module '@elastic/eui/src/components/filter_group/filter_select_item' {
22394
22329
  truncateContent: boolean;
22395
22330
  };
22396
22331
  buttonRef: HTMLButtonElement | null;
22397
- tooltipRef: React.RefObject<EuiToolTip>;
22332
+ tooltipRef: React.RefObject<EuiToolTipRef>;
22398
22333
  state: {
22399
22334
  hasFocus: boolean;
22400
22335
  };
@@ -22402,6 +22337,7 @@ declare module '@elastic/eui/src/components/filter_group/filter_select_item' {
22402
22337
  focus: () => void;
22403
22338
  toggleToolTip: (isFocused: boolean) => void;
22404
22339
  hasFocus: () => boolean;
22340
+ componentDidMount(): void;
22405
22341
  componentDidUpdate(prevProps: Readonly<WithEuiThemeProps<{}> & EuiFilterSelectItemProps>): void;
22406
22342
  render(): React.JSX.Element;
22407
22343
  }
@@ -28873,7 +28809,7 @@ declare module '@elastic/eui/src/components/key_pad_menu/key_pad_menu_item' {
28873
28809
  /**
28874
28810
  * Extends the wrapping EuiToolTip props when `betaBadgeLabel` is provided
28875
28811
  */
28876
- betaBadgeTooltipProps?: Partial<Omit<EuiToolTipProps, 'title' | 'content' | 'delay'>>;
28812
+ betaBadgeTooltipProps?: Partial<Omit<EuiToolTipProps, 'title' | 'content'>>;
28877
28813
  /**
28878
28814
  * Use `onClick` instead when the item is not `checkable`
28879
28815
  */
@@ -29142,7 +29078,7 @@ declare module '@elastic/eui/src/components/markdown_editor/markdown_types' {
29142
29078
  }
29143
29079
  export type EuiMarkdownEditorUiPlugin<NodeShape = any> = {
29144
29080
  name: string;
29145
- button: {
29081
+ button?: {
29146
29082
  label: string;
29147
29083
  iconType: IconType;
29148
29084
  isDisabled?: boolean;
@@ -32465,7 +32401,7 @@ declare module '@elastic/eui/src/components/search_bar/filters/field_value_toggl
32465
32401
 
32466
32402
  }
32467
32403
  declare module '@elastic/eui/src/components/search_bar/filters/field_value_toggle_group_filter' {
32468
- import React, { Component } from 'react';
32404
+ import { FC } from 'react';
32469
32405
  import { Query } from '@elastic/eui/src/components/search_bar/query';
32470
32406
  import { OperatorType } from '@elastic/eui/src/components/search_bar/query/ast';
32471
32407
  export interface FieldValueToggleGroupFilterItemType {
@@ -32489,14 +32425,7 @@ declare module '@elastic/eui/src/components/search_bar/filters/field_value_toggl
32489
32425
  query: Query;
32490
32426
  onChange: (value: Query) => void;
32491
32427
  }
32492
- export class FieldValueToggleGroupFilter extends Component<FieldValueToggleGroupFilterProps> {
32493
- resolveDisplay(config: FieldValueToggleGroupFilterConfigType, query: Query, item: FieldValueToggleGroupFilterItemType): {
32494
- active: boolean;
32495
- name: string;
32496
- };
32497
- valueChanged(item: FieldValueToggleGroupFilterItemType, active: boolean): void;
32498
- render(): React.JSX.Element[];
32499
- }
32428
+ export const FieldValueToggleGroupFilter: FC<FieldValueToggleGroupFilterProps>;
32500
32429
 
32501
32430
  }
32502
32431
  declare module '@elastic/eui/src/components/search_bar/filters/custom_component_filter' {