@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
@@ -32,23 +32,23 @@ var EuiToolTipPopover = exports.EuiToolTipPopover = function EuiToolTipPopover(_
32
32
  popoverRef = _ref.popoverRef,
33
33
  calculatedPosition = _ref.calculatedPosition,
34
34
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
35
- var popover = (0, _react.useRef)();
36
- var euiTheme = (0, _services.useEuiTheme)();
37
- var styles = (0, _tool_tip.euiToolTipStyles)(euiTheme);
35
+ var popover = (0, _react.useRef)(null);
36
+ var styles = (0, _services.useEuiMemoizedStyles)(_tool_tip.euiToolTipStyles);
38
37
  var cssStyles = [styles.euiToolTip, calculatedPosition && styles[calculatedPosition]];
39
38
  var updateDimensions = (0, _react.useCallback)(function () {
40
39
  requestAnimationFrame(function () {
41
- // Because of this delay, sometimes `positionToolTip` becomes unavailable.
40
+ // Because of this delay, the popover may have unmounted by the time the RAF fires.
42
41
  if (popover.current) {
43
42
  positionToolTip();
44
43
  }
45
44
  });
46
45
  }, [positionToolTip]);
47
- var setPopoverRef = function setPopoverRef(ref) {
46
+ var setPopoverRef = (0, _react.useCallback)(function (ref) {
47
+ popover.current = ref;
48
48
  if (popoverRef) {
49
49
  popoverRef(ref);
50
50
  }
51
- };
51
+ }, [popoverRef]);
52
52
  (0, _react.useEffect)(function () {
53
53
  document.body.classList.add('euiBody-hasPortalContent');
54
54
  window.addEventListener('resize', updateDimensions);
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.waitForEuiToolTipVisible = exports.waitForEuiToolTipHidden = exports.waitForEuiPopoverOpen = exports.waitForEuiPopoverClose = exports.waitForEuiContextMenuPanelTransition = exports.showEuiComboBoxOptions = void 0;
7
+ exports.waitForEuiPopoverOpen = exports.waitForEuiPopoverClose = exports.waitForEuiContextMenuPanelTransition = exports.simulateFocusVisible = exports.showEuiComboBoxOptions = exports.focusEuiToolTipTrigger = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  require("@testing-library/jest-dom");
@@ -69,81 +69,59 @@ var waitForEuiPopoverClose = exports.waitForEuiPopoverClose = /*#__PURE__*/funct
69
69
  }();
70
70
 
71
71
  /**
72
- * Ensure the EuiToolTip being tested is open and visible before continuing
72
+ * jsdom does not track keyboard vs. mouse input modality, so `:focus-visible`
73
+ * always returns false. Call this before `fireEvent.focus()` on an element that
74
+ * should be treated as keyboard-focused.
75
+ *
76
+ * Returns a cleanup function, call it after test assertions to restore the spy.
73
77
  */
74
- var waitForEuiToolTipVisible = exports.waitForEuiToolTipVisible = /*#__PURE__*/function () {
75
- var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
76
- return _regenerator.default.wrap(function _callee3$(_context3) {
77
- while (1) switch (_context3.prev = _context3.next) {
78
- case 0:
79
- _context3.next = 2;
80
- return (0, _react.waitFor)(function () {
81
- var tooltip = document.querySelector('.euiToolTipPopover');
82
- expect(tooltip).toBeVisible();
83
- }, {
84
- timeout: 3000
85
- } // Account for long delay on tooltips
86
- );
87
- case 2:
88
- return _context3.abrupt("return", _context3.sent);
89
- case 3:
90
- case "end":
91
- return _context3.stop();
92
- }
93
- }, _callee3);
94
- }));
95
- return function waitForEuiToolTipVisible() {
96
- return _ref3.apply(this, arguments);
78
+ var simulateFocusVisible = exports.simulateFocusVisible = function simulateFocusVisible(element) {
79
+ var originalMatches = Element.prototype.matches.bind(element);
80
+ var spy = jest.spyOn(element, 'matches').mockImplementation(function (selector) {
81
+ return selector === ':focus-visible' ? true : originalMatches(selector);
82
+ });
83
+ return function () {
84
+ return spy.mockRestore();
97
85
  };
98
- }();
99
- var waitForEuiToolTipHidden = exports.waitForEuiToolTipHidden = /*#__PURE__*/function () {
100
- var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
101
- return _regenerator.default.wrap(function _callee4$(_context4) {
102
- while (1) switch (_context4.prev = _context4.next) {
103
- case 0:
104
- _context4.next = 2;
105
- return (0, _react.waitFor)(function () {
106
- var tooltip = document.querySelector('.euiToolTipPopover');
107
- expect(tooltip).toBeNull();
108
- });
109
- case 2:
110
- return _context4.abrupt("return", _context4.sent);
111
- case 3:
112
- case "end":
113
- return _context4.stop();
114
- }
115
- }, _callee4);
116
- }));
117
- return function waitForEuiToolTipHidden() {
118
- return _ref4.apply(this, arguments);
119
- };
120
- }();
86
+ };
87
+
88
+ /**
89
+ * Prefer this over `fireEvent.focus()` in tooltip tests. Plain `fireEvent.focus`
90
+ * does not set `:focus-visible` in jsdom and will not trigger the tooltip.
91
+ *
92
+ * Returns a cleanup function to restore the mock after assertions.
93
+ */
94
+ var focusEuiToolTipTrigger = exports.focusEuiToolTipTrigger = function focusEuiToolTipTrigger(element) {
95
+ var cleanup = simulateFocusVisible(element);
96
+ _react.fireEvent.focus(element);
97
+ return cleanup;
98
+ };
121
99
 
122
100
  /**
123
101
  * EuiComboBox
124
102
  */
125
103
 
126
104
  var showEuiComboBoxOptions = exports.showEuiComboBoxOptions = /*#__PURE__*/function () {
127
- var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
128
- return _regenerator.default.wrap(function _callee5$(_context5) {
129
- while (1) switch (_context5.prev = _context5.next) {
105
+ var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
106
+ return _regenerator.default.wrap(function _callee3$(_context3) {
107
+ while (1) switch (_context3.prev = _context3.next) {
130
108
  case 0:
131
109
  _react.fireEvent.click(_custom_render.screen.getByTestSubject('comboBoxToggleListButton'));
132
- _context5.next = 3;
110
+ _context3.next = 3;
133
111
  return waitForEuiPopoverOpen();
134
112
  case 3:
135
- _context5.next = 5;
113
+ _context3.next = 5;
136
114
  return (0, _react.waitFor)(function () {
137
115
  expect(_custom_render.screen.getByRole('listbox')).toBeInTheDocument();
138
116
  });
139
117
  case 5:
140
118
  case "end":
141
- return _context5.stop();
119
+ return _context3.stop();
142
120
  }
143
- }, _callee5);
121
+ }, _callee3);
144
122
  }));
145
123
  return function showEuiComboBoxOptions() {
146
- return _ref5.apply(this, arguments);
124
+ return _ref3.apply(this, arguments);
147
125
  };
148
126
  }();
149
127
 
@@ -152,16 +130,16 @@ var showEuiComboBoxOptions = exports.showEuiComboBoxOptions = /*#__PURE__*/funct
152
130
  */
153
131
 
154
132
  var waitForEuiContextMenuPanelTransition = exports.waitForEuiContextMenuPanelTransition = /*#__PURE__*/function () {
155
- var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
133
+ var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
156
134
  var getPanels;
157
- return _regenerator.default.wrap(function _callee6$(_context6) {
158
- while (1) switch (_context6.prev = _context6.next) {
135
+ return _regenerator.default.wrap(function _callee4$(_context4) {
136
+ while (1) switch (_context4.prev = _context4.next) {
159
137
  case 0:
160
138
  // Used document instead of container or screen due to context menus living in portals
161
139
  getPanels = function getPanels() {
162
140
  return document.querySelectorAll('.euiContextMenuPanel');
163
141
  }; // 2 panels will appear for the transition animation
164
- _context6.next = 3;
142
+ _context4.next = 3;
165
143
  return (0, _react.waitFor)(function () {
166
144
  expect(getPanels().length).toEqual(2);
167
145
  });
@@ -176,11 +154,11 @@ var waitForEuiContextMenuPanelTransition = exports.waitForEuiContextMenuPanelTra
176
154
  expect(getPanels().length).toEqual(1);
177
155
  case 6:
178
156
  case "end":
179
- return _context6.stop();
157
+ return _context4.stop();
180
158
  }
181
- }, _callee6);
159
+ }, _callee4);
182
160
  }));
183
161
  return function waitForEuiContextMenuPanelTransition() {
184
- return _ref6.apply(this, arguments);
162
+ return _ref4.apply(this, arguments);
185
163
  };
186
164
  }();