@elastic/eui 114.2.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 (163) 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/datagrid/utils/scrolling.js +7 -1
  10. package/es/components/filter_group/filter_select_item.js +36 -17
  11. package/es/components/flyout/flyout.component.js +8 -7
  12. package/es/components/flyout/hooks.js +11 -3
  13. package/es/components/flyout/manager/flyout_main.js +4 -2
  14. package/es/components/icon/assets/chart_pie.js +1 -2
  15. package/es/components/icon/assets/product_dashboard.js +5 -3
  16. package/es/components/key_pad_menu/key_pad_menu_item.js +1 -2
  17. package/es/components/list_group/list_group_item.js +1 -2
  18. package/es/components/markdown_editor/markdown_editor.js +1 -1
  19. package/es/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
  20. package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
  21. package/es/components/markdown_editor/markdown_editor_toolbar.js +14 -10
  22. package/es/components/portal/portal.js +72 -117
  23. package/es/components/search_bar/filters/field_value_toggle_group_filter.js +42 -91
  24. package/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
  25. package/es/components/steps/step_horizontal.js +8 -5
  26. package/es/components/table/table_header_cell.js +1 -2
  27. package/es/components/tool_tip/icon_tip.js +4 -8
  28. package/es/components/tool_tip/tool_tip.js +233 -261
  29. package/es/components/tool_tip/tool_tip.styles.js +10 -18
  30. package/es/components/tool_tip/tool_tip_anchor.js +3 -3
  31. package/es/components/tool_tip/tool_tip_manager.js +1 -0
  32. package/es/components/tool_tip/tool_tip_popover.js +7 -7
  33. package/es/test/rtl/component_helpers.d.ts +0 -3
  34. package/es/test/rtl/component_helpers.js +40 -62
  35. package/eui.d.ts +29 -98
  36. package/lib/components/basic_table/basic_table.js +3 -6
  37. package/lib/components/basic_table/collapsed_item_actions.js +1 -3
  38. package/lib/components/basic_table/default_item_action.js +0 -1
  39. package/lib/components/basic_table/in_memory_table.js +3 -6
  40. package/lib/components/color_picker/color_picker_swatch.js +1 -2
  41. package/lib/components/datagrid/controls/display_selector.js +1 -2
  42. package/lib/components/datagrid/controls/fullscreen_selector.js +1 -2
  43. package/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  44. package/lib/components/datagrid/utils/scrolling.js +7 -1
  45. package/lib/components/filter_group/filter_select_item.js +35 -16
  46. package/lib/components/flyout/flyout.component.js +8 -7
  47. package/lib/components/flyout/hooks.js +10 -2
  48. package/lib/components/flyout/manager/flyout_main.js +3 -1
  49. package/lib/components/icon/assets/chart_pie.js +1 -2
  50. package/lib/components/icon/assets/product_dashboard.js +5 -3
  51. package/lib/components/icon/svgs/chart_pie.svg +1 -1
  52. package/lib/components/icon/svgs/product_dashboard.svg +4 -5
  53. package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -2
  54. package/lib/components/list_group/list_group_item.js +1 -2
  55. package/lib/components/markdown_editor/markdown_editor.js +1 -1
  56. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
  57. package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
  58. package/lib/components/markdown_editor/markdown_editor_toolbar.js +12 -10
  59. package/lib/components/portal/portal.js +73 -118
  60. package/lib/components/search_bar/filters/field_value_toggle_group_filter.js +44 -93
  61. package/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
  62. package/lib/components/steps/step_horizontal.js +8 -5
  63. package/lib/components/table/table_header_cell.js +1 -2
  64. package/lib/components/tool_tip/icon_tip.js +4 -8
  65. package/lib/components/tool_tip/tool_tip.js +240 -266
  66. package/lib/components/tool_tip/tool_tip.styles.js +8 -16
  67. package/lib/components/tool_tip/tool_tip_anchor.js +2 -2
  68. package/lib/components/tool_tip/tool_tip_manager.js +1 -0
  69. package/lib/components/tool_tip/tool_tip_popover.js +6 -6
  70. package/lib/test/rtl/component_helpers.d.ts +0 -3
  71. package/lib/test/rtl/component_helpers.js +41 -63
  72. package/optimize/es/components/basic_table/collapsed_item_actions.js +1 -3
  73. package/optimize/es/components/basic_table/default_item_action.js +0 -1
  74. package/optimize/es/components/datagrid/controls/display_selector.js +1 -2
  75. package/optimize/es/components/datagrid/controls/fullscreen_selector.js +1 -2
  76. package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  77. package/optimize/es/components/datagrid/utils/scrolling.js +7 -1
  78. package/optimize/es/components/filter_group/filter_select_item.js +36 -17
  79. package/optimize/es/components/flyout/flyout.component.js +8 -7
  80. package/optimize/es/components/flyout/hooks.js +11 -3
  81. package/optimize/es/components/flyout/manager/flyout_main.js +4 -2
  82. package/optimize/es/components/icon/assets/chart_pie.js +1 -2
  83. package/optimize/es/components/icon/assets/product_dashboard.js +5 -3
  84. package/optimize/es/components/key_pad_menu/key_pad_menu_item.js +1 -2
  85. package/optimize/es/components/list_group/list_group_item.js +1 -2
  86. package/optimize/es/components/markdown_editor/markdown_editor_drop_zone.js +5 -2
  87. package/optimize/es/components/markdown_editor/markdown_editor_toolbar.js +13 -9
  88. package/optimize/es/components/portal/portal.js +65 -91
  89. package/optimize/es/components/search_bar/filters/field_value_toggle_group_filter.js +43 -66
  90. package/optimize/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
  91. package/optimize/es/components/steps/step_horizontal.js +8 -5
  92. package/optimize/es/components/tool_tip/icon_tip.js +3 -5
  93. package/optimize/es/components/tool_tip/tool_tip.js +227 -250
  94. package/optimize/es/components/tool_tip/tool_tip.styles.js +10 -18
  95. package/optimize/es/components/tool_tip/tool_tip_anchor.js +3 -3
  96. package/optimize/es/components/tool_tip/tool_tip_manager.js +1 -0
  97. package/optimize/es/components/tool_tip/tool_tip_popover.js +7 -7
  98. package/optimize/es/test/rtl/component_helpers.d.ts +0 -3
  99. package/optimize/es/test/rtl/component_helpers.js +40 -62
  100. package/optimize/lib/components/basic_table/collapsed_item_actions.js +1 -3
  101. package/optimize/lib/components/basic_table/default_item_action.js +0 -1
  102. package/optimize/lib/components/datagrid/controls/display_selector.js +1 -2
  103. package/optimize/lib/components/datagrid/controls/fullscreen_selector.js +1 -2
  104. package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  105. package/optimize/lib/components/datagrid/utils/scrolling.js +7 -1
  106. package/optimize/lib/components/filter_group/filter_select_item.js +35 -16
  107. package/optimize/lib/components/flyout/flyout.component.js +8 -7
  108. package/optimize/lib/components/flyout/hooks.js +10 -2
  109. package/optimize/lib/components/flyout/manager/flyout_main.js +3 -1
  110. package/optimize/lib/components/icon/assets/chart_pie.js +1 -2
  111. package/optimize/lib/components/icon/assets/product_dashboard.js +5 -3
  112. package/optimize/lib/components/icon/svgs/chart_pie.svg +1 -1
  113. package/optimize/lib/components/icon/svgs/product_dashboard.svg +4 -5
  114. package/optimize/lib/components/key_pad_menu/key_pad_menu_item.js +1 -2
  115. package/optimize/lib/components/list_group/list_group_item.js +1 -2
  116. package/optimize/lib/components/markdown_editor/markdown_editor_drop_zone.js +5 -2
  117. package/optimize/lib/components/markdown_editor/markdown_editor_toolbar.js +13 -9
  118. package/optimize/lib/components/portal/portal.js +68 -93
  119. package/optimize/lib/components/search_bar/filters/field_value_toggle_group_filter.js +45 -69
  120. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
  121. package/optimize/lib/components/steps/step_horizontal.js +8 -5
  122. package/optimize/lib/components/tool_tip/icon_tip.js +3 -5
  123. package/optimize/lib/components/tool_tip/tool_tip.js +229 -251
  124. package/optimize/lib/components/tool_tip/tool_tip.styles.js +8 -16
  125. package/optimize/lib/components/tool_tip/tool_tip_anchor.js +2 -2
  126. package/optimize/lib/components/tool_tip/tool_tip_manager.js +1 -0
  127. package/optimize/lib/components/tool_tip/tool_tip_popover.js +6 -6
  128. package/optimize/lib/test/rtl/component_helpers.d.ts +0 -3
  129. package/optimize/lib/test/rtl/component_helpers.js +41 -63
  130. package/package.json +2 -10
  131. package/test-env/components/basic_table/basic_table.js +3 -6
  132. package/test-env/components/basic_table/collapsed_item_actions.js +1 -3
  133. package/test-env/components/basic_table/default_item_action.js +0 -1
  134. package/test-env/components/basic_table/in_memory_table.js +3 -6
  135. package/test-env/components/color_picker/color_picker_swatch.js +1 -2
  136. package/test-env/components/datagrid/controls/display_selector.js +1 -2
  137. package/test-env/components/datagrid/controls/fullscreen_selector.js +1 -2
  138. package/test-env/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  139. package/test-env/components/datagrid/utils/scrolling.js +7 -1
  140. package/test-env/components/filter_group/filter_select_item.js +35 -16
  141. package/test-env/components/flyout/flyout.component.js +8 -7
  142. package/test-env/components/flyout/hooks.js +10 -2
  143. package/test-env/components/flyout/manager/flyout_main.js +3 -1
  144. package/test-env/components/icon/assets/chart_pie.js +1 -2
  145. package/test-env/components/icon/assets/product_dashboard.js +5 -3
  146. package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -2
  147. package/test-env/components/list_group/list_group_item.js +1 -2
  148. package/test-env/components/markdown_editor/markdown_editor.js +1 -1
  149. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
  150. package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
  151. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +14 -10
  152. package/test-env/components/portal/portal.js +70 -113
  153. package/test-env/components/search_bar/filters/field_value_toggle_group_filter.js +44 -88
  154. package/test-env/components/selectable/selectable_list/selectable_list_item.js +1 -1
  155. package/test-env/components/steps/step_horizontal.js +8 -5
  156. package/test-env/components/table/table_header_cell.js +1 -2
  157. package/test-env/components/tool_tip/icon_tip.js +4 -8
  158. package/test-env/components/tool_tip/tool_tip.js +230 -256
  159. package/test-env/components/tool_tip/tool_tip.styles.js +8 -16
  160. package/test-env/components/tool_tip/tool_tip_anchor.js +2 -2
  161. package/test-env/components/tool_tip/tool_tip_manager.js +1 -0
  162. package/test-env/components/tool_tip/tool_tip_popover.js +6 -6
  163. package/test-env/test/rtl/component_helpers.js +41 -63
@@ -33,23 +33,23 @@ var EuiToolTipPopover = exports.EuiToolTipPopover = function EuiToolTipPopover(_
33
33
  popoverRef = _ref.popoverRef,
34
34
  calculatedPosition = _ref.calculatedPosition,
35
35
  rest = _objectWithoutProperties(_ref, _excluded);
36
- var popover = (0, _react.useRef)();
37
- var euiTheme = (0, _services.useEuiTheme)();
38
- var styles = (0, _tool_tip.euiToolTipStyles)(euiTheme);
36
+ var popover = (0, _react.useRef)(null);
37
+ var styles = (0, _services.useEuiMemoizedStyles)(_tool_tip.euiToolTipStyles);
39
38
  var cssStyles = [styles.euiToolTip, calculatedPosition && styles[calculatedPosition]];
40
39
  var updateDimensions = (0, _react.useCallback)(function () {
41
40
  requestAnimationFrame(function () {
42
- // Because of this delay, sometimes `positionToolTip` becomes unavailable.
41
+ // Because of this delay, the popover may have unmounted by the time the RAF fires.
43
42
  if (popover.current) {
44
43
  positionToolTip();
45
44
  }
46
45
  });
47
46
  }, [positionToolTip]);
48
- var setPopoverRef = function setPopoverRef(ref) {
47
+ var setPopoverRef = (0, _react.useCallback)(function (ref) {
48
+ popover.current = ref;
49
49
  if (popoverRef) {
50
50
  popoverRef(ref);
51
51
  }
52
- };
52
+ }, [popoverRef]);
53
53
  (0, _react.useEffect)(function () {
54
54
  document.body.classList.add('euiBody-hasPortalContent');
55
55
  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>;
@@ -4,7 +4,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
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
  require("@testing-library/jest-dom");
9
9
  var _react = require("@testing-library/react");
10
10
  var _custom_render = require("./custom_render");
@@ -68,81 +68,59 @@ var waitForEuiPopoverClose = exports.waitForEuiPopoverClose = /*#__PURE__*/funct
68
68
  }();
69
69
 
70
70
  /**
71
- * Ensure the EuiToolTip being tested is open and visible before continuing
71
+ * jsdom does not track keyboard vs. mouse input modality, so `:focus-visible`
72
+ * always returns false. Call this before `fireEvent.focus()` on an element that
73
+ * should be treated as keyboard-focused.
74
+ *
75
+ * Returns a cleanup function, call it after test assertions to restore the spy.
72
76
  */
73
- var waitForEuiToolTipVisible = exports.waitForEuiToolTipVisible = /*#__PURE__*/function () {
74
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
75
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
76
- while (1) switch (_context3.prev = _context3.next) {
77
- case 0:
78
- _context3.next = 2;
79
- return (0, _react.waitFor)(function () {
80
- var tooltip = document.querySelector('.euiToolTipPopover');
81
- expect(tooltip).toBeVisible();
82
- }, {
83
- timeout: 3000
84
- } // Account for long delay on tooltips
85
- );
86
- case 2:
87
- return _context3.abrupt("return", _context3.sent);
88
- case 3:
89
- case "end":
90
- return _context3.stop();
91
- }
92
- }, _callee3);
93
- }));
94
- return function waitForEuiToolTipVisible() {
95
- return _ref3.apply(this, arguments);
77
+ var simulateFocusVisible = exports.simulateFocusVisible = function simulateFocusVisible(element) {
78
+ var originalMatches = Element.prototype.matches.bind(element);
79
+ var spy = jest.spyOn(element, 'matches').mockImplementation(function (selector) {
80
+ return selector === ':focus-visible' ? true : originalMatches(selector);
81
+ });
82
+ return function () {
83
+ return spy.mockRestore();
96
84
  };
97
- }();
98
- var waitForEuiToolTipHidden = exports.waitForEuiToolTipHidden = /*#__PURE__*/function () {
99
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
100
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
101
- while (1) switch (_context4.prev = _context4.next) {
102
- case 0:
103
- _context4.next = 2;
104
- return (0, _react.waitFor)(function () {
105
- var tooltip = document.querySelector('.euiToolTipPopover');
106
- expect(tooltip).toBeNull();
107
- });
108
- case 2:
109
- return _context4.abrupt("return", _context4.sent);
110
- case 3:
111
- case "end":
112
- return _context4.stop();
113
- }
114
- }, _callee4);
115
- }));
116
- return function waitForEuiToolTipHidden() {
117
- return _ref4.apply(this, arguments);
118
- };
119
- }();
85
+ };
86
+
87
+ /**
88
+ * Prefer this over `fireEvent.focus()` in tooltip tests. Plain `fireEvent.focus`
89
+ * does not set `:focus-visible` in jsdom and will not trigger the tooltip.
90
+ *
91
+ * Returns a cleanup function to restore the mock after assertions.
92
+ */
93
+ var focusEuiToolTipTrigger = exports.focusEuiToolTipTrigger = function focusEuiToolTipTrigger(element) {
94
+ var cleanup = simulateFocusVisible(element);
95
+ _react.fireEvent.focus(element);
96
+ return cleanup;
97
+ };
120
98
 
121
99
  /**
122
100
  * EuiComboBox
123
101
  */
124
102
 
125
103
  var showEuiComboBoxOptions = exports.showEuiComboBoxOptions = /*#__PURE__*/function () {
126
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
127
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
128
- while (1) switch (_context5.prev = _context5.next) {
104
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
105
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
106
+ while (1) switch (_context3.prev = _context3.next) {
129
107
  case 0:
130
108
  _react.fireEvent.click(_custom_render.screen.getByTestSubject('comboBoxToggleListButton'));
131
- _context5.next = 3;
109
+ _context3.next = 3;
132
110
  return waitForEuiPopoverOpen();
133
111
  case 3:
134
- _context5.next = 5;
112
+ _context3.next = 5;
135
113
  return (0, _react.waitFor)(function () {
136
114
  expect(_custom_render.screen.getByRole('listbox')).toBeInTheDocument();
137
115
  });
138
116
  case 5:
139
117
  case "end":
140
- return _context5.stop();
118
+ return _context3.stop();
141
119
  }
142
- }, _callee5);
120
+ }, _callee3);
143
121
  }));
144
122
  return function showEuiComboBoxOptions() {
145
- return _ref5.apply(this, arguments);
123
+ return _ref3.apply(this, arguments);
146
124
  };
147
125
  }();
148
126
 
@@ -151,16 +129,16 @@ var showEuiComboBoxOptions = exports.showEuiComboBoxOptions = /*#__PURE__*/funct
151
129
  */
152
130
 
153
131
  var waitForEuiContextMenuPanelTransition = exports.waitForEuiContextMenuPanelTransition = /*#__PURE__*/function () {
154
- var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
132
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
155
133
  var getPanels;
156
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
157
- while (1) switch (_context6.prev = _context6.next) {
134
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
135
+ while (1) switch (_context4.prev = _context4.next) {
158
136
  case 0:
159
137
  // Used document instead of container or screen due to context menus living in portals
160
138
  getPanels = function getPanels() {
161
139
  return document.querySelectorAll('.euiContextMenuPanel');
162
140
  }; // 2 panels will appear for the transition animation
163
- _context6.next = 3;
141
+ _context4.next = 3;
164
142
  return (0, _react.waitFor)(function () {
165
143
  expect(getPanels().length).toEqual(2);
166
144
  });
@@ -175,11 +153,11 @@ var waitForEuiContextMenuPanelTransition = exports.waitForEuiContextMenuPanelTra
175
153
  expect(getPanels().length).toEqual(1);
176
154
  case 6:
177
155
  case "end":
178
- return _context6.stop();
156
+ return _context4.stop();
179
157
  }
180
- }, _callee6);
158
+ }, _callee4);
181
159
  }));
182
160
  return function waitForEuiContextMenuPanelTransition() {
183
- return _ref6.apply(this, arguments);
161
+ return _ref4.apply(this, arguments);
184
162
  };
185
163
  }();
@@ -79,7 +79,6 @@ export var CollapsedItemActions = function CollapsedItemActions(_ref) {
79
79
  },
80
80
  toolTipContent: toolTipContent,
81
81
  toolTipProps: {
82
- delay: 'long',
83
82
  // Avoid screen-readers announcing the same text twice
84
83
  disableScreenReaderOutput: typeof buttonContent === 'string' && buttonContent === toolTipContent
85
84
  }
@@ -103,8 +102,7 @@ export var CollapsedItemActions = function CollapsedItemActions(_ref) {
103
102
  "data-test-subj": "euiCollapsedItemActionsButton"
104
103
  });
105
104
  var withTooltip = !actionsDisabled && ___EmotionJSX(EuiToolTip, {
106
- content: allActionsTooltip,
107
- delay: "long"
105
+ content: allActionsTooltip
108
106
  }, popoverButton);
109
107
  return ___EmotionJSX(EuiPopover, {
110
108
  className: className,
@@ -32,7 +32,6 @@ export var DefaultItemAction = function DefaultItemAction(_ref) {
32
32
  var tooltipContent = callWithItemIfFunction(item)(action.description);
33
33
  var tooltipProps = {
34
34
  content: tooltipContent,
35
- delay: 'long',
36
35
  // Avoid screen-readers announcing the same text twice
37
36
  disableScreenReaderOutput: typeof actionContent === 'string' && actionContent === tooltipContent
38
37
  };
@@ -353,8 +353,7 @@ export var useDataGridDisplaySelector = function useDataGridDisplaySelector(show
353
353
  },
354
354
  panelClassName: "euiDataGrid__displayPopoverPanel",
355
355
  button: ___EmotionJSX(EuiToolTip, {
356
- content: buttonLabel,
357
- delay: "long"
356
+ content: buttonLabel
358
357
  }, ___EmotionJSX(EuiButtonIcon, {
359
358
  size: "xs",
360
359
  iconType: "controls",
@@ -32,8 +32,7 @@ export var useDataGridFullScreenSelector = function useDataGridFullScreenSelecto
32
32
  fullScreenButtonActive = _useEuiI18n2[1];
33
33
  var fullScreenSelector = useMemo(function () {
34
34
  return ___EmotionJSX(EuiToolTip, {
35
- content: isFullScreen ? ___EmotionJSX(React.Fragment, null, fullScreenButtonActive, " (", ___EmotionJSX("kbd", null, "esc"), ")") : fullScreenButton,
36
- delay: "long"
35
+ content: isFullScreen ? ___EmotionJSX(React.Fragment, null, fullScreenButtonActive, " (", ___EmotionJSX("kbd", null, "esc"), ")") : fullScreenButton
37
36
  }, ___EmotionJSX(EuiButtonIcon, {
38
37
  size: "xs",
39
38
  iconType: isFullScreen ? 'fullScreenExit' : 'fullScreen',
@@ -35,8 +35,7 @@ export var useDataGridKeyboardShortcuts = function useDataGridKeyboardShortcuts(
35
35
  anchorPosition: "downRight",
36
36
  panelPaddingSize: "none",
37
37
  button: ___EmotionJSX(EuiToolTip, {
38
- content: title,
39
- delay: "long"
38
+ content: title
40
39
  }, ___EmotionJSX(EuiButtonIcon, {
41
40
  size: "xs",
42
41
  iconType: "keyboard",
@@ -49,11 +49,17 @@ export var useScroll = function useScroll(args) {
49
49
  });
50
50
  }, [focusedCell, scrollCellIntoView, isPointerDownRef]);
51
51
  useEffect(function () {
52
- var handlePointerUp = function handlePointerUp() {
52
+ var handlePointerUp = function handlePointerUp(event) {
53
53
  var _window;
54
54
  if (!pendingScrollRef.current || !focusedCell) return;
55
55
  pendingScrollRef.current = false;
56
56
 
57
+ // The pointerup event can come from any mouse button, not only the left
58
+ // click. We only care about the primary (usually left) mouse button
59
+ // clicks, and specifically have to ignore middle mouse button clicks,
60
+ // which indicate scrolling on Windows.
61
+ if (event.pointerType === 'mouse' && event.button !== 0) return;
62
+
57
63
  // Skip if the interaction resulted in text being selected
58
64
  if (((_window = window) === null || _window === void 0 || (_window = _window.getSelection()) === null || _window === void 0 ? void 0 : _window.type) === 'Range') return;
59
65
  scrollCellIntoView({
@@ -19,7 +19,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
19
19
  * Side Public License, v 1.
20
20
  */
21
21
 
22
- import React, { Component, createRef } from 'react';
22
+ import React, { Component, createRef, isValidElement } from 'react';
23
23
  import classNames from 'classnames';
24
24
  import { withEuiTheme } from '../../services';
25
25
  import { EuiFlexGroup, EuiFlexItem } from '../flex';
@@ -87,6 +87,18 @@ export var EuiFilterSelectItemClass = /*#__PURE__*/function (_Component) {
87
87
  }
88
88
  _inherits(EuiFilterSelectItemClass, _Component);
89
89
  return _createClass(EuiFilterSelectItemClass, [{
90
+ key: "componentDidMount",
91
+ value: function componentDidMount() {
92
+ var _this$props2 = this.props,
93
+ isFocused = _this$props2.isFocused,
94
+ toolTipContent = _this$props2.toolTipContent,
95
+ disabled = _this$props2.disabled,
96
+ children = _this$props2.children;
97
+ if ( /*#__PURE__*/isValidElement(children) && !disabled && toolTipContent) {
98
+ this.toggleToolTip(isFocused !== null && isFocused !== void 0 ? isFocused : false);
99
+ }
100
+ }
101
+ }, {
90
102
  key: "componentDidUpdate",
91
103
  value: function componentDidUpdate(prevProps) {
92
104
  if (this.props.isFocused && !prevProps.isFocused) {
@@ -95,31 +107,39 @@ export var EuiFilterSelectItemClass = /*#__PURE__*/function (_Component) {
95
107
  block: 'nearest'
96
108
  });
97
109
  }
110
+ var _this$props3 = this.props,
111
+ isFocused = _this$props3.isFocused,
112
+ toolTipContent = _this$props3.toolTipContent,
113
+ disabled = _this$props3.disabled,
114
+ children = _this$props3.children;
115
+ if ( /*#__PURE__*/isValidElement(children) && !disabled && toolTipContent && isFocused !== prevProps.isFocused) {
116
+ this.toggleToolTip(isFocused !== null && isFocused !== void 0 ? isFocused : false);
117
+ }
98
118
  }
99
119
  }, {
100
120
  key: "render",
101
121
  value: function render() {
102
- var _this$props2 = this.props,
103
- theme = _this$props2.theme,
104
- children = _this$props2.children,
105
- className = _this$props2.className,
106
- disabled = _this$props2.disabled,
107
- checked = _this$props2.checked,
108
- isFocused = _this$props2.isFocused,
109
- showIcons = _this$props2.showIcons,
110
- toolTipContent = _this$props2.toolTipContent,
111
- toolTipProps = _this$props2.toolTipProps,
112
- style = _this$props2.style,
113
- truncateContent = _this$props2.truncateContent,
114
- forwardRef = _this$props2.forwardRef,
115
- rest = _objectWithoutProperties(_this$props2, _excluded);
122
+ var _this$props4 = this.props,
123
+ theme = _this$props4.theme,
124
+ children = _this$props4.children,
125
+ className = _this$props4.className,
126
+ disabled = _this$props4.disabled,
127
+ checked = _this$props4.checked,
128
+ isFocused = _this$props4.isFocused,
129
+ showIcons = _this$props4.showIcons,
130
+ toolTipContent = _this$props4.toolTipContent,
131
+ toolTipProps = _this$props4.toolTipProps,
132
+ style = _this$props4.style,
133
+ truncateContent = _this$props4.truncateContent,
134
+ forwardRef = _this$props4.forwardRef,
135
+ rest = _objectWithoutProperties(_this$props4, _excluded);
116
136
  var styles = euiFilterSelectItemStyles(theme);
117
137
  var cssStyles = [styles.euiFilterSelectItem, isFocused && styles.isFocused];
118
138
  var classes = classNames('euiFilterSelectItem', className);
119
139
  var hasToolTip =
120
140
  // we're using isValidElement here as EuiToolTipAnchor uses
121
141
  // cloneElement to enhance the element with required attributes
122
- /*#__PURE__*/React.isValidElement(children) && !disabled && toolTipContent;
142
+ /*#__PURE__*/isValidElement(children) && !disabled && toolTipContent;
123
143
  var anchorProps = undefined;
124
144
  if (hasToolTip) {
125
145
  var _toolTipProps$anchorP, _toolTipProps$anchorP2;
@@ -129,7 +149,6 @@ export var EuiFilterSelectItemClass = /*#__PURE__*/function (_Component) {
129
149
  }) : {
130
150
  style: style
131
151
  };
132
- this.toggleToolTip(isFocused !== null && isFocused !== void 0 ? isFocused : false);
133
152
  }
134
153
  var iconNode;
135
154
  if (showIcons) {
@@ -114,9 +114,16 @@ export var EuiFlyoutComponent = /*#__PURE__*/forwardRef(function (props, ref) {
114
114
 
115
115
  // Ref for the main flyout element to pass to context
116
116
  var internalParentFlyoutRef = useRef(null);
117
+
118
+ // Observe the container's dimensions so the resize hook and
119
+ // positioning styles stay aligned with its bounding rect.
120
+ // When no container is provided, these remain inert (null/undefined).
121
+ var containerDimensions = useResizeObserver(container !== null && container !== void 0 ? container : null, 'width');
122
+ var containerReferenceWidth = container ? containerDimensions.width || container.clientWidth : undefined;
117
123
  var isPushed = useIsPushed({
118
124
  type: type,
119
- pushMinBreakpoint: pushMinBreakpoint
125
+ pushMinBreakpoint: pushMinBreakpoint,
126
+ containerWidth: containerReferenceWidth
120
127
  });
121
128
  // When no explicit container is provided, push padding targets
122
129
  // document.body and global push-offset CSS vars are set. When a
@@ -222,12 +229,6 @@ export var EuiFlyoutComponent = /*#__PURE__*/forwardRef(function (props, ref) {
222
229
  var siblingFlyoutMinWidth = siblingFlyout === null || siblingFlyout === void 0 ? void 0 : siblingFlyout.minWidth;
223
230
  var siblingFlyoutWidth = layoutMode === LAYOUT_MODE_STACKED ? 0 : _siblingFlyoutWidth;
224
231
 
225
- // Observe the container's dimensions so the resize hook and
226
- // positioning styles stay aligned with its bounding rect.
227
- // When no container is provided, these remain inert (null/undefined).
228
- var containerDimensions = useResizeObserver(container !== null && container !== void 0 ? container : null, 'width');
229
- var containerReferenceWidth = container ? containerDimensions.width || container.clientWidth : undefined;
230
-
231
232
  // Track the container's bounding rect for positioning the flyout.
232
233
  var _useState = useState(null),
233
234
  _useState2 = _slicedToArray(_useState, 2),
@@ -6,13 +6,13 @@
6
6
  * Side Public License, v 1.
7
7
  */
8
8
 
9
- import { useIsWithinMinBreakpoint } from '../../services';
9
+ import { useIsWithinMinBreakpoint, useEuiTheme } from '../../services';
10
10
  import { usePropsWithComponentDefaults } from '../provider/component_defaults';
11
11
  import { DEFAULT_PUSH_MIN_BREAKPOINT, DEFAULT_TYPE } from './const';
12
12
 
13
13
  /**
14
14
  * Determines if a flyout should be rendered in a "pushed" state based on its
15
- * configuration and the current window size.
15
+ * configuration and the current window or container size.
16
16
  */
17
17
  export var useIsPushed = function useIsPushed(props) {
18
18
  var _usePropsWithComponen = usePropsWithComponentDefaults('EuiFlyout', props),
@@ -20,6 +20,14 @@ export var useIsPushed = function useIsPushed(props) {
20
20
  type = _usePropsWithComponen2 === void 0 ? DEFAULT_TYPE : _usePropsWithComponen2,
21
21
  _usePropsWithComponen3 = _usePropsWithComponen.pushMinBreakpoint,
22
22
  pushMinBreakpoint = _usePropsWithComponen3 === void 0 ? DEFAULT_PUSH_MIN_BREAKPOINT : _usePropsWithComponen3;
23
+ var _useEuiTheme = useEuiTheme(),
24
+ breakpoints = _useEuiTheme.euiTheme.breakpoint;
25
+
26
+ // Always called to satisfy React hook rules; used as fallback
27
+ // when no container width is provided or the breakpoint key is
28
+ // not present on the theme.
23
29
  var windowIsLargeEnoughToPush = useIsWithinMinBreakpoint(pushMinBreakpoint);
24
- return type === 'push' && windowIsLargeEnoughToPush;
30
+ var minWidth = breakpoints[pushMinBreakpoint];
31
+ var isLargeEnoughToPush = props.containerWidth != null && minWidth != null ? props.containerWidth >= minWidth : windowIsLargeEnoughToPush;
32
+ return type === 'push' && isLargeEnoughToPush;
25
33
  };
@@ -14,7 +14,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
14
14
 
15
15
  import React, { forwardRef } from 'react';
16
16
  import { EuiManagedFlyout } from './flyout_managed';
17
- import { useHasChildFlyout, useFlyoutId } from './hooks';
17
+ import { useHasChildFlyout, useFlyoutId, useFlyoutManager } from './hooks';
18
18
  import { euiMainFlyoutStyles } from './flyout_main.styles';
19
19
  import { useEuiMemoizedStyles } from '../../../services';
20
20
  import { DEFAULT_PUSH_MIN_BREAKPOINT, DEFAULT_SIDE, DEFAULT_TYPE } from '../const';
@@ -42,9 +42,11 @@ export var EuiFlyoutMain = /*#__PURE__*/forwardRef(function (_ref, ref) {
42
42
  var flyoutId = useFlyoutId(id);
43
43
  var hasChildFlyout = useHasChildFlyout(flyoutId);
44
44
  var styles = useEuiMemoizedStyles(euiMainFlyoutStyles);
45
+ var context = useFlyoutManager();
45
46
  var isPushed = useIsPushed({
46
47
  type: type,
47
- pushMinBreakpoint: pushMinBreakpoint
48
+ pushMinBreakpoint: pushMinBreakpoint,
49
+ containerWidth: context === null || context === void 0 ? void 0 : context.state.referenceWidth
48
50
  });
49
51
  var cssStyles = [hasChildFlyout && !isPushed && styles.hasChildFlyout[side]];
50
52
  var style = {};
@@ -26,8 +26,7 @@ var EuiIconChartPie = function EuiIconChartPie(_ref) {
26
26
  }, props), title ? ___EmotionJSX("title", {
27
27
  id: titleId
28
28
  }, title) : null, ___EmotionJSX("path", {
29
- stroke: "#1D2A3E",
30
- d: "M7.5 8.5h6.979A6.498 6.498 0 0 1 1.5 8a6.5 6.5 0 0 1 6-6.48V8.5Zm2-6.824A6.506 6.506 0 0 1 14.323 6.5H9.5V1.676Z"
29
+ d: "M7 2.084A6 6 0 0 0 8 14v1A7 7 0 1 1 8 1v7h7a7 7 0 0 1-7 7v-1a6 6 0 0 0 5.915-5H7V2.084Zm2-1.012A7.002 7.002 0 0 1 14.928 7H9V1.072ZM10 6h3.657A6.015 6.015 0 0 0 10 2.343V6Z"
31
30
  }));
32
31
  };
33
32
  export var icon = EuiIconChartPie;
@@ -26,9 +26,11 @@ var EuiIconProductDashboard = function EuiIconProductDashboard(_ref) {
26
26
  }, props), title ? ___EmotionJSX("title", {
27
27
  id: titleId
28
28
  }, title) : null, ___EmotionJSX("path", {
29
- fillRule: "evenodd",
30
- d: "M6 11a1 1 0 0 1 1 1v1l-.005.102A1 1 0 0 1 6 14H2a1 1 0 0 1-1-1v-1a1 1 0 0 1 1-1h4Zm-4 2h4v-1H2v1ZM14 7a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h5Zm-5 6h5V8H9v5ZM6 7a1 1 0 0 1 1 1v1l-.005.103A1 1 0 0 1 6 10H2a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h4ZM2 9h4V8H2v1ZM14 2a1 1 0 0 1 .995.897L15 3v2a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12ZM2 5h12V3H2v2Z",
31
- clipRule: "evenodd"
29
+ d: "m8.528 10.265.972-.972 1.5 1.5 1.646-1.647.707.708L11 12.207l-1.5-1.5-1.028 1.028-3-3.5-2.118 2.119-.708-.708 2.882-2.881 3 3.5Z"
30
+ }), ___EmotionJSX("path", {
31
+ d: "M9 8H8V6h1v2Zm2 0h-1V5h1v3Zm2 0h-1V4h1v4ZM7 5H3V4h4v1Z"
32
+ }), ___EmotionJSX("path", {
33
+ d: "M14 2a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h12ZM2 13h12V3H2v10Z"
32
34
  }));
33
35
  };
34
36
  export var icon = EuiIconProductDashboard;
@@ -126,7 +126,6 @@ export var EuiKeyPadMenuItem = function EuiKeyPadMenuItem(_ref) {
126
126
  }, label)));
127
127
  return betaBadgeLabel ? ___EmotionJSX(EuiToolTip, _extends({}, betaBadgeTooltipProps, {
128
128
  title: betaBadgeLabel,
129
- content: betaBadgeTooltipContent,
130
- delay: "long"
129
+ content: betaBadgeTooltipContent
131
130
  }), button) : button;
132
131
  };
@@ -171,8 +171,7 @@ export var EuiListGroupItem = function EuiListGroupItem(_ref) {
171
171
  style: style
172
172
  }, ___EmotionJSX(EuiToolTip, _extends({
173
173
  content: toolTipText !== null && toolTipText !== void 0 ? toolTipText : label,
174
- position: "right",
175
- delay: "long"
174
+ position: "right"
176
175
  }, toolTipProps, {
177
176
  anchorClassName: anchorClasses,
178
177
  anchorProps: anchorPropsAndCss
@@ -163,8 +163,11 @@ export var EuiMarkdownEditorDropZone = function EuiMarkdownEditorDropZone(props)
163
163
  getInputProps = _useDropzone.getInputProps,
164
164
  open = _useDropzone.open;
165
165
  var rootProps = _objectSpread({}, getRootProps());
166
- if (readOnly) rootProps.role = undefined; // Unset the default `role="button"` attribute which sets a misleading pointer icon
167
-
166
+ /* Unset the default `role="button"` attribute to prevent invalid nested interactive elements.
167
+ The dropzone has `noClick=true` and `noKeyboard=true` set via `useDropzone`.
168
+ Keyboard drop interactions expect the drop zone element to have `role="button` but we're supporting
169
+ adding files via a standalone footer button instead." */
170
+ rootProps.role = undefined;
168
171
  return ___EmotionJSX("div", _extends({}, rootProps, {
169
172
  css: cssStyles,
170
173
  className: classes
@@ -16,6 +16,11 @@ import { EuiToolTip } from '../tool_tip';
16
16
  import { MODE_VIEWING } from './markdown_modes';
17
17
  import { EuiMarkdownContext } from './markdown_context';
18
18
  import { euiMarkdownEditorToolbarStyles } from './markdown_editor_toolbar.styles';
19
+
20
+ /**
21
+ * A helper type to ensure the `button` property is defined
22
+ * on an ` EuiMarkdownEditorUiPlugin ` object.
23
+ */
19
24
  import { jsx as ___EmotionJSX } from "@emotion/react";
20
25
  var boldItalicButtons = [{
21
26
  id: 'mdBold',
@@ -91,7 +96,7 @@ export var EuiMarkdownEditorToolbar = /*#__PURE__*/forwardRef(function (_ref2, r
91
96
  markdownActions = _ref2.markdownActions,
92
97
  viewMode = _ref2.viewMode,
93
98
  onClickPreview = _ref2.onClickPreview,
94
- uiPlugins = _ref2.uiPlugins,
99
+ _uiPlugins = _ref2.uiPlugins,
95
100
  selectedNode = _ref2.selectedNode,
96
101
  right = _ref2.right;
97
102
  var _useContext = useContext(EuiMarkdownContext),
@@ -105,6 +110,9 @@ export var EuiMarkdownEditorToolbar = /*#__PURE__*/forwardRef(function (_ref2, r
105
110
  var isPreviewing = viewMode === MODE_VIEWING;
106
111
  var isEditable = !isPreviewing && !readOnly;
107
112
  var styles = useEuiMemoizedStyles(euiMarkdownEditorToolbarStyles);
113
+ var uiPlugins = _uiPlugins.filter(function (uiPlugin) {
114
+ return !!uiPlugin.button;
115
+ });
108
116
  return ___EmotionJSX("div", {
109
117
  ref: ref,
110
118
  css: styles.euiMarkdownEditorToolbar,
@@ -116,8 +124,7 @@ export var EuiMarkdownEditorToolbar = /*#__PURE__*/forwardRef(function (_ref2, r
116
124
  }, boldItalicButtons.map(function (item) {
117
125
  return ___EmotionJSX(EuiToolTip, {
118
126
  key: item.id,
119
- content: item.label,
120
- delay: "long"
127
+ content: item.label
121
128
  }, ___EmotionJSX(EuiMarkdownEditorToolbarButton, {
122
129
  selectedNode: selectedNode,
123
130
  handleMdButtonClick: handleMdButtonClick,
@@ -133,8 +140,7 @@ export var EuiMarkdownEditorToolbar = /*#__PURE__*/forwardRef(function (_ref2, r
133
140
  }), listButtons.map(function (item) {
134
141
  return ___EmotionJSX(EuiToolTip, {
135
142
  key: item.id,
136
- content: item.label,
137
- delay: "long"
143
+ content: item.label
138
144
  }, ___EmotionJSX(EuiMarkdownEditorToolbarButton, {
139
145
  selectedNode: selectedNode,
140
146
  handleMdButtonClick: handleMdButtonClick,
@@ -150,8 +156,7 @@ export var EuiMarkdownEditorToolbar = /*#__PURE__*/forwardRef(function (_ref2, r
150
156
  }), quoteCodeLinkButtons.map(function (item) {
151
157
  return ___EmotionJSX(EuiToolTip, {
152
158
  key: item.id,
153
- content: item.label,
154
- delay: "long"
159
+ content: item.label
155
160
  }, ___EmotionJSX(EuiMarkdownEditorToolbarButton, {
156
161
  selectedNode: selectedNode,
157
162
  handleMdButtonClick: handleMdButtonClick,
@@ -169,8 +174,7 @@ export var EuiMarkdownEditorToolbar = /*#__PURE__*/forwardRef(function (_ref2, r
169
174
  button = _ref3.button;
170
175
  return ___EmotionJSX(EuiToolTip, {
171
176
  key: name,
172
- content: button.label,
173
- delay: "long"
177
+ content: button.label
174
178
  }, ___EmotionJSX(EuiMarkdownEditorToolbarButton, {
175
179
  selectedNode: selectedNode,
176
180
  handleMdButtonClick: handleMdButtonClick,