@elastic/eui 70.0.0 → 70.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/dist/eui_theme_dark.css +11 -180
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +11 -180
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/accessibility/screen_reader_only/screen_reader_only.js +1 -1
  6. package/es/components/accessibility/screen_reader_only/screen_reader_only.styles.js +1 -1
  7. package/es/components/accordion/accordion.a11y.js +35 -0
  8. package/es/components/badge/beta_badge/beta_badge.js +6 -6
  9. package/es/components/basic_table/in_memory_table.js +8 -0
  10. package/es/components/button/button_display/_button_display.js +7 -6
  11. package/es/components/button/button_display/_button_display.styles.js +4 -4
  12. package/es/components/button/button_display/_button_display_content.js +6 -9
  13. package/es/components/button/button_display/_button_display_content.styles.js +3 -41
  14. package/es/components/card/card.js +13 -31
  15. package/es/components/card/card.styles.js +15 -3
  16. package/es/components/card/card_select/card_select.styles.js +4 -4
  17. package/es/components/card/checkable_card/checkable_card.js +3 -2
  18. package/es/components/context_menu/context_menu_panel.a11y.js +34 -0
  19. package/es/components/datagrid/controls/column_selector.js +1 -1
  20. package/es/components/datagrid/controls/column_sorting.js +1 -1
  21. package/es/components/datagrid/controls/data_grid_toolbar.js +6 -2
  22. package/es/components/datagrid/controls/index.js +1 -0
  23. package/es/components/datagrid/controls/keyboard_shortcuts.js +191 -0
  24. package/es/components/datagrid/data_grid.js +12 -2
  25. package/es/components/date_picker/super_date_picker/super_date_picker.js +22 -4
  26. package/es/components/header/header_links/header_links.js +6 -0
  27. package/es/components/loading/loading_spinner.js +14 -3
  28. package/es/components/loading/loading_spinner.styles.js +11 -7
  29. package/es/components/modal/modal.js +17 -2
  30. package/es/components/page_template/page_template.js +6 -9
  31. package/es/components/popover/popover.js +13 -3
  32. package/es/components/popover/popover_arrow/_popover_arrow.js +1 -0
  33. package/es/components/popover/popover_panel/_popover_panel.js +8 -2
  34. package/es/components/popover/popover_panel/_popover_panel.styles.js +15 -1
  35. package/es/components/search_bar/search_bar.js +39 -5
  36. package/es/components/search_bar/search_box.js +37 -4
  37. package/es/components/selectable/selectable.a11y.js +118 -0
  38. package/es/components/selectable/selectable.js +9 -6
  39. package/es/components/tabs/tab.js +31 -7
  40. package/es/components/tabs/tab.styles.js +63 -0
  41. package/es/components/tabs/tabbed_content/tabbed_content.js +17 -1
  42. package/es/components/tabs/tabs.js +20 -14
  43. package/es/components/tabs/tabs.styles.js +21 -0
  44. package/es/components/tour/tour_step.js +6 -0
  45. package/es/services/string/to_initials.js +1 -1
  46. package/eui.d.ts +305 -198
  47. package/i18ntokens.json +442 -10
  48. package/lib/components/accessibility/screen_reader_only/screen_reader_only.js +1 -1
  49. package/lib/components/accessibility/screen_reader_only/screen_reader_only.styles.js +1 -1
  50. package/lib/components/accordion/accordion.a11y.js +44 -0
  51. package/lib/components/badge/beta_badge/beta_badge.js +6 -10
  52. package/lib/components/basic_table/in_memory_table.js +8 -0
  53. package/lib/components/button/button_display/_button_display.js +7 -6
  54. package/lib/components/button/button_display/_button_display.styles.js +4 -4
  55. package/lib/components/button/button_display/_button_display_content.js +6 -9
  56. package/lib/components/button/button_display/_button_display_content.styles.js +10 -40
  57. package/lib/components/card/card.js +14 -33
  58. package/lib/components/card/card.styles.js +15 -3
  59. package/lib/components/card/card_select/card_select.styles.js +4 -4
  60. package/lib/components/card/checkable_card/checkable_card.js +3 -2
  61. package/lib/components/context_menu/context_menu_panel.a11y.js +42 -0
  62. package/lib/components/datagrid/controls/column_selector.js +1 -1
  63. package/lib/components/datagrid/controls/column_sorting.js +1 -1
  64. package/lib/components/datagrid/controls/data_grid_toolbar.js +7 -2
  65. package/lib/components/datagrid/controls/index.js +8 -0
  66. package/lib/components/datagrid/controls/keyboard_shortcuts.js +208 -0
  67. package/lib/components/datagrid/data_grid.js +11 -1
  68. package/lib/components/date_picker/super_date_picker/super_date_picker.js +22 -4
  69. package/lib/components/header/header_links/header_links.js +6 -0
  70. package/lib/components/loading/loading_spinner.js +13 -2
  71. package/lib/components/loading/loading_spinner.styles.js +14 -6
  72. package/lib/components/modal/modal.js +23 -2
  73. package/lib/components/page_template/page_template.js +6 -9
  74. package/lib/components/popover/popover.js +13 -3
  75. package/lib/components/popover/popover_arrow/_popover_arrow.js +1 -0
  76. package/lib/components/popover/popover_panel/_popover_panel.js +8 -2
  77. package/lib/components/popover/popover_panel/_popover_panel.styles.js +16 -1
  78. package/lib/components/search_bar/search_bar.js +40 -5
  79. package/lib/components/search_bar/search_box.js +38 -4
  80. package/lib/components/selectable/selectable.a11y.js +122 -0
  81. package/lib/components/selectable/selectable.js +9 -6
  82. package/lib/components/tabs/tab.js +31 -6
  83. package/lib/components/tabs/tab.styles.js +69 -0
  84. package/lib/components/tabs/tabbed_content/tabbed_content.js +17 -1
  85. package/lib/components/tabs/tabs.js +24 -14
  86. package/lib/components/tabs/tabs.styles.js +32 -0
  87. package/lib/services/string/to_initials.js +1 -1
  88. package/optimize/es/components/accessibility/screen_reader_only/screen_reader_only.styles.js +1 -1
  89. package/optimize/es/components/accordion/accordion.a11y.js +35 -0
  90. package/optimize/es/components/badge/beta_badge/beta_badge.js +6 -6
  91. package/optimize/es/components/button/button_display/_button_display.js +6 -5
  92. package/optimize/es/components/button/button_display/_button_display.styles.js +4 -4
  93. package/optimize/es/components/button/button_display/_button_display_content.js +6 -9
  94. package/optimize/es/components/button/button_display/_button_display_content.styles.js +3 -41
  95. package/optimize/es/components/card/card.js +12 -30
  96. package/optimize/es/components/card/card.styles.js +15 -3
  97. package/optimize/es/components/card/card_select/card_select.styles.js +4 -4
  98. package/optimize/es/components/card/checkable_card/checkable_card.js +3 -2
  99. package/optimize/es/components/context_menu/context_menu_panel.a11y.js +34 -0
  100. package/optimize/es/components/datagrid/controls/column_selector.js +1 -1
  101. package/optimize/es/components/datagrid/controls/column_sorting.js +1 -1
  102. package/optimize/es/components/datagrid/controls/data_grid_toolbar.js +6 -2
  103. package/optimize/es/components/datagrid/controls/index.js +1 -0
  104. package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +181 -0
  105. package/optimize/es/components/datagrid/data_grid.js +6 -2
  106. package/optimize/es/components/date_picker/super_date_picker/super_date_picker.js +12 -4
  107. package/optimize/es/components/loading/loading_spinner.js +13 -3
  108. package/optimize/es/components/loading/loading_spinner.styles.js +11 -7
  109. package/optimize/es/components/modal/modal.js +17 -2
  110. package/optimize/es/components/page_template/page_template.js +6 -9
  111. package/optimize/es/components/popover/popover.js +7 -3
  112. package/optimize/es/components/popover/popover_arrow/_popover_arrow.js +1 -0
  113. package/optimize/es/components/popover/popover_panel/_popover_panel.js +6 -1
  114. package/optimize/es/components/popover/popover_panel/_popover_panel.styles.js +15 -1
  115. package/optimize/es/components/search_bar/search_bar.js +31 -5
  116. package/optimize/es/components/search_bar/search_box.js +29 -3
  117. package/optimize/es/components/selectable/selectable.a11y.js +107 -0
  118. package/optimize/es/components/selectable/selectable.js +9 -6
  119. package/optimize/es/components/tabs/tab.js +19 -7
  120. package/optimize/es/components/tabs/tab.styles.js +63 -0
  121. package/optimize/es/components/tabs/tabs.js +20 -14
  122. package/optimize/es/components/tabs/tabs.styles.js +21 -0
  123. package/optimize/es/services/string/to_initials.js +1 -1
  124. package/optimize/lib/components/accessibility/screen_reader_only/screen_reader_only.styles.js +1 -1
  125. package/optimize/lib/components/accordion/accordion.a11y.js +44 -0
  126. package/optimize/lib/components/badge/beta_badge/beta_badge.js +6 -13
  127. package/optimize/lib/components/button/button_display/_button_display.js +7 -6
  128. package/optimize/lib/components/button/button_display/_button_display.styles.js +4 -4
  129. package/optimize/lib/components/button/button_display/_button_display_content.js +6 -9
  130. package/optimize/lib/components/button/button_display/_button_display_content.styles.js +10 -40
  131. package/optimize/lib/components/card/card.js +13 -32
  132. package/optimize/lib/components/card/card.styles.js +15 -3
  133. package/optimize/lib/components/card/card_select/card_select.styles.js +4 -4
  134. package/optimize/lib/components/card/checkable_card/checkable_card.js +3 -2
  135. package/optimize/lib/components/context_menu/context_menu_panel.a11y.js +42 -0
  136. package/optimize/lib/components/datagrid/controls/column_selector.js +1 -1
  137. package/optimize/lib/components/datagrid/controls/column_sorting.js +1 -1
  138. package/optimize/lib/components/datagrid/controls/data_grid_toolbar.js +7 -2
  139. package/optimize/lib/components/datagrid/controls/index.js +8 -0
  140. package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +207 -0
  141. package/optimize/lib/components/datagrid/data_grid.js +5 -1
  142. package/optimize/lib/components/date_picker/super_date_picker/super_date_picker.js +12 -4
  143. package/optimize/lib/components/loading/loading_spinner.js +14 -2
  144. package/optimize/lib/components/loading/loading_spinner.styles.js +14 -6
  145. package/optimize/lib/components/modal/modal.js +22 -2
  146. package/optimize/lib/components/page_template/page_template.js +6 -9
  147. package/optimize/lib/components/popover/popover.js +7 -3
  148. package/optimize/lib/components/popover/popover_arrow/_popover_arrow.js +1 -0
  149. package/optimize/lib/components/popover/popover_panel/_popover_panel.js +6 -1
  150. package/optimize/lib/components/popover/popover_panel/_popover_panel.styles.js +16 -1
  151. package/optimize/lib/components/search_bar/search_bar.js +31 -5
  152. package/optimize/lib/components/search_bar/search_box.js +30 -3
  153. package/optimize/lib/components/selectable/selectable.a11y.js +122 -0
  154. package/optimize/lib/components/selectable/selectable.js +9 -6
  155. package/optimize/lib/components/tabs/tab.js +19 -6
  156. package/optimize/lib/components/tabs/tab.styles.js +69 -0
  157. package/optimize/lib/components/tabs/tabs.js +24 -14
  158. package/optimize/lib/components/tabs/tabs.styles.js +32 -0
  159. package/optimize/lib/services/string/to_initials.js +1 -1
  160. package/package.json +5 -4
  161. package/src/components/datagrid/_index.scss +1 -0
  162. package/src/components/datagrid/controls/_data_grid_keyboard_shortcuts.scss +17 -0
  163. package/src/components/datagrid/controls/_data_grid_toolbar.scss +0 -8
  164. package/src/components/index.scss +0 -1
  165. package/src/components/modal/_modal.scss +3 -1
  166. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  167. package/test-env/components/accessibility/screen_reader_only/screen_reader_only.js +1 -1
  168. package/test-env/components/accessibility/screen_reader_only/screen_reader_only.styles.js +1 -1
  169. package/test-env/components/accordion/accordion.a11y.js +44 -0
  170. package/test-env/components/badge/beta_badge/beta_badge.js +6 -13
  171. package/test-env/components/basic_table/in_memory_table.js +8 -0
  172. package/test-env/components/button/button_display/_button_display.js +7 -6
  173. package/test-env/components/button/button_display/_button_display.styles.js +4 -4
  174. package/test-env/components/button/button_display/_button_display_content.js +6 -9
  175. package/test-env/components/button/button_display/_button_display_content.styles.js +10 -40
  176. package/test-env/components/card/card.js +14 -33
  177. package/test-env/components/card/card.styles.js +15 -3
  178. package/test-env/components/card/card_select/card_select.styles.js +4 -4
  179. package/test-env/components/card/checkable_card/checkable_card.js +3 -2
  180. package/test-env/components/context_menu/context_menu_panel.a11y.js +42 -0
  181. package/test-env/components/datagrid/controls/column_selector.js +1 -1
  182. package/test-env/components/datagrid/controls/column_sorting.js +1 -1
  183. package/test-env/components/datagrid/controls/data_grid_toolbar.js +7 -2
  184. package/test-env/components/datagrid/controls/index.js +8 -0
  185. package/test-env/components/datagrid/controls/keyboard_shortcuts.js +207 -0
  186. package/test-env/components/datagrid/data_grid.js +11 -1
  187. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +22 -4
  188. package/test-env/components/header/header_links/header_links.js +6 -0
  189. package/test-env/components/loading/loading_spinner.js +14 -2
  190. package/test-env/components/loading/loading_spinner.styles.js +14 -6
  191. package/test-env/components/modal/modal.js +22 -2
  192. package/test-env/components/page_template/page_template.js +6 -9
  193. package/test-env/components/popover/popover.js +13 -3
  194. package/test-env/components/popover/popover_arrow/_popover_arrow.js +1 -0
  195. package/test-env/components/popover/popover_panel/_popover_panel.js +8 -2
  196. package/test-env/components/popover/popover_panel/_popover_panel.styles.js +16 -1
  197. package/test-env/components/search_bar/search_bar.js +39 -5
  198. package/test-env/components/search_bar/search_box.js +38 -4
  199. package/test-env/components/selectable/selectable.a11y.js +122 -0
  200. package/test-env/components/selectable/selectable.js +9 -6
  201. package/test-env/components/tabs/tab.js +31 -6
  202. package/test-env/components/tabs/tab.styles.js +69 -0
  203. package/test-env/components/tabs/tabbed_content/tabbed_content.js +17 -1
  204. package/test-env/components/tabs/tabs.js +24 -14
  205. package/test-env/components/tabs/tabs.styles.js +32 -0
  206. package/test-env/services/string/to_initials.js +1 -1
  207. package/src/components/tabs/_index.scss +0 -1
  208. package/src/components/tabs/_tabs.scss +0 -110
  209. package/src/themes/amsterdam/overrides/_tabs.scss +0 -80
@@ -12,6 +12,8 @@ exports.renderAdditionalControls = renderAdditionalControls;
12
12
 
13
13
  var _react = _interopRequireDefault(require("react"));
14
14
 
15
+ var _accessibility = require("../../accessibility");
16
+
15
17
  var _utils = require("../../../utils");
16
18
 
17
19
  var _react2 = require("@emotion/react");
@@ -33,6 +35,7 @@ var EuiDataGridToolbar = function EuiDataGridToolbar(_ref) {
33
35
  toolbarVisibility = _ref.toolbarVisibility,
34
36
  isFullScreen = _ref.isFullScreen,
35
37
  fullScreenSelector = _ref.fullScreenSelector,
38
+ keyboardShortcuts = _ref.keyboardShortcuts,
36
39
  displaySelector = _ref.displaySelector,
37
40
  columnSelector = _ref.columnSelector,
38
41
  columnSorting = _ref.columnSorting;
@@ -40,12 +43,14 @@ var EuiDataGridToolbar = function EuiDataGridToolbar(_ref) {
40
43
  var hasRoomForGridControls = _utils.IS_JEST_ENVIRONMENT ? true : gridWidth > minSizeForControls || isFullScreen;
41
44
  return (0, _react2.jsx)("div", {
42
45
  className: "euiDataGrid__controls",
43
- "data-test-sub": "dataGridControls"
46
+ "data-test-subj": "dataGridControls"
44
47
  }, hasRoomForGridControls && (0, _react2.jsx)("div", {
45
48
  className: "euiDataGrid__leftControls"
46
49
  }, renderAdditionalControls(toolbarVisibility, 'left.prepend'), checkOrDefaultToolBarDisplayOptions(toolbarVisibility, 'showColumnSelector') ? columnSelector : null, checkOrDefaultToolBarDisplayOptions(toolbarVisibility, 'showSortSelector') ? columnSorting : null, renderAdditionalControls(toolbarVisibility, 'left.append')), (0, _react2.jsx)("div", {
47
50
  className: "euiDataGrid__rightControls"
48
- }, renderAdditionalControls(toolbarVisibility, 'right'), checkOrDefaultToolBarDisplayOptions(toolbarVisibility, 'showDisplaySelector') ? displaySelector : null, checkOrDefaultToolBarDisplayOptions(toolbarVisibility, 'showFullScreenSelector') ? fullScreenSelector : null));
51
+ }, renderAdditionalControls(toolbarVisibility, 'right'), checkOrDefaultToolBarDisplayOptions(toolbarVisibility, 'showKeyboardShortcuts') ? keyboardShortcuts : (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, {
52
+ showOnFocus: true
53
+ }, (0, _react2.jsx)("span", null, keyboardShortcuts)), checkOrDefaultToolBarDisplayOptions(toolbarVisibility, 'showDisplaySelector') ? displaySelector : null, checkOrDefaultToolBarDisplayOptions(toolbarVisibility, 'showFullScreenSelector') ? fullScreenSelector : null));
49
54
  };
50
55
  /**
51
56
  * Toolbar utilities
@@ -45,6 +45,12 @@ Object.defineProperty(exports, "useDataGridFullScreenSelector", {
45
45
  return _fullscreen_selector.useDataGridFullScreenSelector;
46
46
  }
47
47
  });
48
+ Object.defineProperty(exports, "useDataGridKeyboardShortcuts", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _keyboard_shortcuts.useDataGridKeyboardShortcuts;
52
+ }
53
+ });
48
54
 
49
55
  var _column_selector = require("./column_selector");
50
56
 
@@ -52,6 +58,8 @@ var _column_sorting = require("./column_sorting");
52
58
 
53
59
  var _display_selector = require("./display_selector");
54
60
 
61
+ var _keyboard_shortcuts = require("./keyboard_shortcuts");
62
+
55
63
  var _fullscreen_selector = require("./fullscreen_selector");
56
64
 
57
65
  var _data_grid_toolbar = require("./data_grid_toolbar");
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.useDataGridKeyboardShortcuts = void 0;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _services = require("../../../services");
17
+
18
+ var _button = require("../../button");
19
+
20
+ var _tool_tip = require("../../tool_tip");
21
+
22
+ var _popover = require("../../popover");
23
+
24
+ var _description_list = require("../../description_list");
25
+
26
+ var _text = require("../../text");
27
+
28
+ var _i18n = require("../../i18n");
29
+
30
+ var _react2 = require("@emotion/react");
31
+
32
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
+
34
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
+
36
+ /*
37
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
38
+ * or more contributor license agreements. Licensed under the Elastic License
39
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
40
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
41
+ * Side Public License, v 1.
42
+ */
43
+ var useDataGridKeyboardShortcuts = function useDataGridKeyboardShortcuts() {
44
+ var _useState = (0, _react.useState)(false),
45
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
46
+ isOpen = _useState2[0],
47
+ setIsOpen = _useState2[1];
48
+
49
+ var title = (0, _i18n.useEuiI18n)('euiKeyboardShortcuts.title', 'Keyboard shortcuts');
50
+ var titleId = (0, _services.useGeneratedHtmlId)();
51
+ var keyboardShortcuts = (0, _react.useMemo)(function () {
52
+ return (0, _react2.jsx)(_popover.EuiPopover, {
53
+ "data-test-subj": "dataGridKeyboardShortcutsPopover",
54
+ isOpen: isOpen,
55
+ closePopover: function closePopover() {
56
+ return setIsOpen(false);
57
+ },
58
+ anchorPosition: "downRight",
59
+ button: (0, _react2.jsx)(_tool_tip.EuiToolTip, {
60
+ content: title,
61
+ delay: "long"
62
+ }, (0, _react2.jsx)(_button.EuiButtonIcon, {
63
+ size: "xs",
64
+ iconType: "keyboard",
65
+ color: "text",
66
+ "data-test-subj": "dataGridKeyboardShortcutsButton",
67
+ onClick: function onClick() {
68
+ return setIsOpen(!isOpen);
69
+ },
70
+ "aria-label": title
71
+ }))
72
+ }, (0, _react2.jsx)(_popover.EuiPopoverTitle, {
73
+ paddingSize: "s"
74
+ }, (0, _react2.jsx)("h2", {
75
+ id: titleId
76
+ }, title)), (0, _react2.jsx)(_text.EuiText, {
77
+ className: "euiDataGrid__keyboardShortcuts",
78
+ size: "xs"
79
+ }, (0, _react2.jsx)(_description_list.EuiDescriptionList, {
80
+ "aria-labelledby": titleId,
81
+ type: "column",
82
+ align: "center",
83
+ compressed: true,
84
+ gutterSize: "s",
85
+ listItems: [{
86
+ title: (0, _react2.jsx)("kbd", null, (0, _react2.jsx)(_i18n.EuiI18n, {
87
+ token: "euiKeyboardShortcuts.upArrowTitle",
88
+ default: "Up arrow"
89
+ })),
90
+ description: (0, _react2.jsx)(_i18n.EuiI18n, {
91
+ token: "euiKeyboardShortcuts.upArrowDescription",
92
+ default: "Move one cell up"
93
+ })
94
+ }, {
95
+ title: (0, _react2.jsx)("kbd", null, (0, _react2.jsx)(_i18n.EuiI18n, {
96
+ token: "euiKeyboardShortcuts.downArrowTitle",
97
+ default: "Down arrow"
98
+ })),
99
+ description: (0, _react2.jsx)(_i18n.EuiI18n, {
100
+ token: "euiKeyboardShortcuts.downArrowDescription",
101
+ default: "Move one cell down"
102
+ })
103
+ }, {
104
+ title: (0, _react2.jsx)("kbd", null, (0, _react2.jsx)(_i18n.EuiI18n, {
105
+ token: "euiKeyboardShortcuts.rightArrowTitle",
106
+ default: "Right arrow"
107
+ })),
108
+ description: (0, _react2.jsx)(_i18n.EuiI18n, {
109
+ token: "euiKeyboardShortcuts.rightArrowDescription",
110
+ default: "Move one cell right"
111
+ })
112
+ }, {
113
+ title: (0, _react2.jsx)("kbd", null, (0, _react2.jsx)(_i18n.EuiI18n, {
114
+ token: "euiKeyboardShortcuts.leftArrowTitle",
115
+ default: "Left arrow"
116
+ })),
117
+ description: (0, _react2.jsx)(_i18n.EuiI18n, {
118
+ token: "euiKeyboardShortcuts.leftArrowDescription",
119
+ default: "Move one cell left"
120
+ })
121
+ }, {
122
+ title: (0, _react2.jsx)("kbd", null, (0, _react2.jsx)(_i18n.EuiI18n, {
123
+ token: "euiKeyboardShortcuts.homeTitle",
124
+ default: "Home"
125
+ })),
126
+ description: (0, _react2.jsx)(_i18n.EuiI18n, {
127
+ token: "euiKeyboardShortcuts.homeDescription",
128
+ default: "Move to the first cell of the current row"
129
+ })
130
+ }, {
131
+ title: (0, _react2.jsx)("kbd", null, (0, _react2.jsx)(_i18n.EuiI18n, {
132
+ token: "euiKeyboardShortcuts.endTitle",
133
+ default: "End"
134
+ })),
135
+ description: (0, _react2.jsx)(_i18n.EuiI18n, {
136
+ token: "euiKeyboardShortcuts.endDescription",
137
+ default: "Move to the last cell of the current row"
138
+ })
139
+ }, {
140
+ title: (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("kbd", null, (0, _react2.jsx)(_i18n.EuiI18n, {
141
+ token: "euiKeyboardShortcuts.ctrl",
142
+ default: "Ctrl"
143
+ })), ' ', (0, _react2.jsx)("kbd", null, (0, _react2.jsx)(_i18n.EuiI18n, {
144
+ token: "euiKeyboardShortcuts.homeTitle",
145
+ default: "Home"
146
+ }))),
147
+ description: (0, _react2.jsx)(_i18n.EuiI18n, {
148
+ token: "euiKeyboardShortcuts.ctrlHomeDescription",
149
+ default: "Move to the first cell of the current page"
150
+ })
151
+ }, {
152
+ title: (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("kbd", null, (0, _react2.jsx)(_i18n.EuiI18n, {
153
+ token: "euiKeyboardShortcuts.ctrl",
154
+ default: "Ctrl"
155
+ })), ' ', (0, _react2.jsx)("kbd", null, (0, _react2.jsx)(_i18n.EuiI18n, {
156
+ token: "euiKeyboardShortcuts.endTitle",
157
+ default: "End"
158
+ }))),
159
+ description: (0, _react2.jsx)(_i18n.EuiI18n, {
160
+ token: "euiKeyboardShortcuts.ctrlEndDescription",
161
+ default: "Move to the last cell of the current page"
162
+ })
163
+ }, {
164
+ title: (0, _react2.jsx)("kbd", null, (0, _react2.jsx)(_i18n.EuiI18n, {
165
+ token: "euiKeyboardShortcuts.pageUpTitle",
166
+ default: "Page Up"
167
+ })),
168
+ description: (0, _react2.jsx)(_i18n.EuiI18n, {
169
+ token: "euiKeyboardShortcuts.pageUpDescription",
170
+ default: "Go to the last row of the previous page"
171
+ })
172
+ }, {
173
+ title: (0, _react2.jsx)("kbd", null, (0, _react2.jsx)(_i18n.EuiI18n, {
174
+ token: "euiKeyboardShortcuts.pageDownTitle",
175
+ default: "Page Down"
176
+ })),
177
+ description: (0, _react2.jsx)(_i18n.EuiI18n, {
178
+ token: "euiKeyboardShortcuts.pageDownDescription",
179
+ default: "Go to the first row of the next page"
180
+ })
181
+ }, {
182
+ title: (0, _react2.jsx)("kbd", null, (0, _react2.jsx)(_i18n.EuiI18n, {
183
+ token: "euiKeyboardShortcuts.enterTitle",
184
+ default: "Enter"
185
+ })),
186
+ description: (0, _react2.jsx)(_i18n.EuiI18n, {
187
+ token: "euiKeyboardShortcuts.enterDescription",
188
+ default: "Open cell details and actions"
189
+ })
190
+ }, {
191
+ title: (0, _react2.jsx)("kbd", null, (0, _react2.jsx)(_i18n.EuiI18n, {
192
+ token: "euiKeyboardShortcuts.escapeTitle",
193
+ default: "Escape"
194
+ })),
195
+ description: (0, _react2.jsx)(_i18n.EuiI18n, {
196
+ token: "euiKeyboardShortcuts.escapeDescription",
197
+ default: "Close cell details and actions"
198
+ })
199
+ }]
200
+ })));
201
+ }, [isOpen, title, titleId]);
202
+ return {
203
+ keyboardShortcuts: keyboardShortcuts
204
+ };
205
+ };
206
+
207
+ exports.useDataGridKeyboardShortcuts = useDataGridKeyboardShortcuts;
@@ -248,12 +248,15 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
248
248
  cellPopoverContext = _useCellPopover.cellPopoverContext,
249
249
  cellPopover = _useCellPopover.cellPopover;
250
250
  /**
251
- * Toolbar & fullscreen
251
+ * Toolbar, keyboard shortcuts, & fullscreen
252
252
  */
253
253
 
254
254
 
255
255
  var showToolbar = !!toolbarVisibility;
256
256
 
257
+ var _useDataGridKeyboardS = (0, _controls.useDataGridKeyboardShortcuts)(),
258
+ keyboardShortcuts = _useDataGridKeyboardS.keyboardShortcuts;
259
+
257
260
  var _useDataGridFullScree = (0, _controls.useDataGridFullScreenSelector)(),
258
261
  isFullScreen = _useDataGridFullScree.isFullScreen,
259
262
  setIsFullScreen = _useDataGridFullScree.setIsFullScreen,
@@ -342,6 +345,7 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
342
345
  toolbarVisibility: toolbarVisibility,
343
346
  isFullScreen: isFullScreen,
344
347
  fullScreenSelector: fullScreenSelector,
348
+ keyboardShortcuts: keyboardShortcuts,
345
349
  displaySelector: displaySelector,
346
350
  columnSelector: columnSelector,
347
351
  columnSorting: columnSorting
@@ -1120,6 +1124,12 @@ EuiDataGrid.propTypes = {
1120
1124
  */
1121
1125
  showSortSelector: _propTypes.default.bool,
1122
1126
 
1127
+ /**
1128
+ * Displays a popover listing all keyboard controls and shortcuts for the data grid.
1129
+ * If set to `false`, the toggle will be visually hidden, but still focusable by keyboard and screen reader users.
1130
+ */
1131
+ showKeyboardShortcuts: _propTypes.default.bool,
1132
+
1123
1133
  /**
1124
1134
  * Allows user to be able to fullscreen the data grid. If set to `false` make sure your grid fits within a large enough panel to still show the other controls.
1125
1135
  */
@@ -269,7 +269,8 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
269
269
  locale = _this$props2.locale,
270
270
  timeFormat = _this$props2.timeFormat,
271
271
  utcOffset = _this$props2.utcOffset,
272
- compressed = _this$props2.compressed;
272
+ compressed = _this$props2.compressed,
273
+ onFocus = _this$props2.onFocus;
273
274
 
274
275
  if (showPrettyDuration && !isStartDatePopoverOpen && !isEndDatePopoverOpen) {
275
276
  return (0, _react2.jsx)(_date_picker_range.EuiDatePickerRange, {
@@ -284,7 +285,8 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
284
285
  }),
285
286
  "data-test-subj": "superDatePickerShowDatesButton",
286
287
  disabled: isDisabled,
287
- onClick: _this.hidePrettyDuration
288
+ onClick: _this.hidePrettyDuration,
289
+ onFocus: onFocus
288
290
  }, (0, _react2.jsx)(_pretty_duration.PrettyDuration, {
289
291
  timeFrom: start,
290
292
  timeTo: end,
@@ -317,7 +319,10 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
317
319
  isOpen: _this.state.isStartDatePopoverOpen,
318
320
  onPopoverToggle: _this.onStartDatePopoverToggle,
319
321
  onPopoverClose: _this.onStartDatePopoverClose,
320
- timeOptions: timeOptions
322
+ timeOptions: timeOptions,
323
+ buttonProps: {
324
+ onFocus: onFocus
325
+ }
321
326
  }),
322
327
  endDateControl: (0, _react2.jsx)(_date_popover_button.EuiDatePopoverButton, {
323
328
  position: "end",
@@ -335,7 +340,10 @@ var EuiSuperDatePickerInternal = /*#__PURE__*/function (_Component) {
335
340
  isOpen: _this.state.isEndDatePopoverOpen,
336
341
  onPopoverToggle: _this.onEndDatePopoverToggle,
337
342
  onPopoverClose: _this.onEndDatePopoverClose,
338
- timeOptions: timeOptions
343
+ timeOptions: timeOptions,
344
+ buttonProps: {
345
+ onFocus: onFocus
346
+ }
339
347
  })
340
348
  });
341
349
  });
@@ -547,6 +555,11 @@ EuiSuperDatePickerInternal.propTypes = {
547
555
  */
548
556
  locale: _propTypes.default.any,
549
557
 
558
+ /**
559
+ * Triggered whenever the EuiSuperDatePicker's dates are focused
560
+ */
561
+ onFocus: _propTypes.default.any,
562
+
550
563
  /**
551
564
  * Callback for when the refresh interval is fired.
552
565
  * EuiSuperDatePicker will only manage a refresh interval timer when onRefresh callback is supplied
@@ -757,6 +770,11 @@ EuiSuperDatePicker.propTypes = {
757
770
  */
758
771
  locale: _propTypes.default.any,
759
772
 
773
+ /**
774
+ * Triggered whenever the EuiSuperDatePicker's dates are focused
775
+ */
776
+ onFocus: _propTypes.default.any,
777
+
760
778
  /**
761
779
  * Callback for when the refresh interval is fired.
762
780
  * EuiSuperDatePicker will only manage a refresh interval timer when onRefresh callback is supplied
@@ -260,6 +260,12 @@ EuiHeaderLinks.propTypes = {
260
260
  */
261
261
  repositionOnScroll: _propTypes.default.bool,
262
262
 
263
+ /**
264
+ * Must be set to true if using `EuiDragDropContext` within a popover,
265
+ * otherwise your nested drag & drop will have incorrect positioning
266
+ */
267
+ hasDragDrop: _propTypes.default.bool,
268
+
263
269
  /**
264
270
  * By default, popover content inherits the z-index of the anchor
265
271
  * component; pass `zIndex` to override
@@ -9,6 +9,8 @@ exports.SIZES = exports.EuiLoadingSpinner = void 0;
9
9
 
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
 
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
12
14
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
15
 
14
16
  var _react = _interopRequireDefault(require("react"));
@@ -25,7 +27,12 @@ var _loading_spinner = require("./loading_spinner.styles");
25
27
 
26
28
  var _react2 = require("@emotion/react");
27
29
 
28
- var _excluded = ["size", "className", "aria-label", "color"];
30
+ var _excluded = ["size", "className", "aria-label", "color", "style"];
31
+
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
33
+
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
35
+
29
36
  var SIZES = ['s', 'm', 'l', 'xl', 'xxl'];
30
37
  exports.SIZES = SIZES;
31
38
 
@@ -35,15 +42,20 @@ var EuiLoadingSpinner = function EuiLoadingSpinner(_ref) {
35
42
  className = _ref.className,
36
43
  ariaLabel = _ref['aria-label'],
37
44
  color = _ref.color,
45
+ style = _ref.style,
38
46
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
39
47
  var euiTheme = (0, _services.useEuiTheme)();
40
- var styles = (0, _loading_spinner.euiLoadingSpinnerStyles)(euiTheme, color);
48
+ var styles = (0, _loading_spinner.euiLoadingSpinnerStyles)(euiTheme);
41
49
  var cssStyles = [styles.euiLoadingSpinner, styles[size]];
42
50
  var classes = (0, _classnames.default)('euiLoadingSpinner', className);
43
51
  var defaultLabel = (0, _loading_strings.useLoadingAriaLabel)();
52
+ var customColorStyle = color ? _objectSpread(_objectSpread({}, style), {}, {
53
+ borderColor: (0, _loading_spinner.euiSpinnerBorderColorsCSS)(euiTheme, color)
54
+ }) : style;
44
55
  return (0, _react2.jsx)("span", (0, _extends2.default)({
45
56
  className: classes,
46
57
  css: cssStyles,
58
+ style: customColorStyle,
47
59
  role: "progressbar",
48
60
  "aria-label": ariaLabel || defaultLabel
49
61
  }, rest));
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.euiLoadingSpinnerStyles = void 0;
8
+ exports.euiSpinnerBorderColorsCSS = exports.euiLoadingSpinnerStyles = void 0;
9
9
 
10
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
11
 
@@ -25,14 +25,22 @@ var spinnerSizes = {
25
25
  xxl: 'xxl'
26
26
  };
27
27
 
28
- var spinnerColorsCSS = function spinnerColorsCSS(border, highlight) {
29
- return "\n border-color: ".concat(highlight, " ").concat(border, " ").concat(border, " ").concat(border, ";\n ");
28
+ var euiSpinnerBorderColorsCSS = function euiSpinnerBorderColorsCSS(_ref) {
29
+ var euiTheme = _ref.euiTheme;
30
+ var colors = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
31
+ var _colors$border = colors.border,
32
+ border = _colors$border === void 0 ? euiTheme.colors.lightShade : _colors$border,
33
+ _colors$highlight = colors.highlight,
34
+ highlight = _colors$highlight === void 0 ? euiTheme.colors.primary : _colors$highlight;
35
+ return "".concat(highlight, " ").concat(border, " ").concat(border, " ").concat(border);
30
36
  };
31
37
 
32
- var euiLoadingSpinnerStyles = function euiLoadingSpinnerStyles(_ref, color) {
33
- var euiTheme = _ref.euiTheme;
38
+ exports.euiSpinnerBorderColorsCSS = euiSpinnerBorderColorsCSS;
39
+
40
+ var euiLoadingSpinnerStyles = function euiLoadingSpinnerStyles(euiThemeContext) {
41
+ var euiTheme = euiThemeContext.euiTheme;
34
42
  return {
35
- euiLoadingSpinner: /*#__PURE__*/(0, _react.css)("flex-shrink:0;display:inline-block;border-radius:50%;border:", euiTheme.border.thick, ";", spinnerColorsCSS((color === null || color === void 0 ? void 0 : color.border) || euiTheme.colors.lightShade, (color === null || color === void 0 ? void 0 : color.highlight) || euiTheme.colors.primary), ";", _global_styling.euiCanAnimate, "{animation:", _loadingSpinner, " 0.6s infinite linear;};label:euiLoadingSpinner;"),
43
+ euiLoadingSpinner: /*#__PURE__*/(0, _react.css)("flex-shrink:0;display:inline-block;border-radius:50%;border:", euiTheme.border.thick, ";border-color:", euiSpinnerBorderColorsCSS(euiThemeContext), ";", _global_styling.euiCanAnimate, "{animation:", _loadingSpinner, " 0.6s infinite linear;};label:euiLoadingSpinner;"),
36
44
  // Sizes
37
45
  s: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalSizeCSS)(euiTheme.size[spinnerSizes.s], euiTheme.size[spinnerSizes.s]), " border-width:calc(", euiTheme.border.width.thin, " * 1.5);;label:s;"),
38
46
  m: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalSizeCSS)(euiTheme.size[spinnerSizes.m], euiTheme.size[spinnerSizes.m]), " border-width:calc(", euiTheme.border.width.thin, " * 1.5);;label:m;"),
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
@@ -13,7 +15,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
13
15
 
14
16
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
17
 
16
- var _react = _interopRequireDefault(require("react"));
18
+ var _react = _interopRequireWildcard(require("react"));
17
19
 
18
20
  var _propTypes = _interopRequireDefault(require("prop-types"));
19
21
 
@@ -33,6 +35,10 @@ var _react2 = require("@emotion/react");
33
35
 
34
36
  var _excluded = ["className", "children", "initialFocus", "onClose", "maxWidth", "style"];
35
37
 
38
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
+
40
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
+
36
42
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
37
43
 
38
44
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -46,6 +52,18 @@ var EuiModal = function EuiModal(_ref) {
46
52
  maxWidth = _ref$maxWidth === void 0 ? true : _ref$maxWidth,
47
53
  style = _ref.style,
48
54
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
55
+ // TODO: Remove this onFocus scroll workaround after react-focus-on supports focusOptions
56
+ // @see https://github.com/elastic/eui/issues/6304
57
+ var bodyScrollTop = (0, _react.useRef)(typeof window === 'undefined' ? undefined : window.scrollY // Account for SSR
58
+ );
59
+ var onFocus = (0, _react.useCallback)(function () {
60
+ if (bodyScrollTop.current != null) {
61
+ window.scrollTo({
62
+ top: bodyScrollTop.current
63
+ });
64
+ bodyScrollTop.current = undefined; // Unset after first auto focus
65
+ }
66
+ }, []);
49
67
 
50
68
  var onKeyDown = function onKeyDown(event) {
51
69
  if (event.key === _services.keys.ESCAPE) {
@@ -69,11 +87,13 @@ var EuiModal = function EuiModal(_ref) {
69
87
 
70
88
  var classes = (0, _classnames.default)('euiModal', widthClassName, className);
71
89
  return (0, _react2.jsx)(_overlay_mask.EuiOverlayMask, null, (0, _react2.jsx)(_focus_trap.EuiFocusTrap, {
72
- initialFocus: initialFocus
90
+ initialFocus: initialFocus,
91
+ scrollLock: true
73
92
  }, (0, _react2.jsx)("div", (0, _extends2.default)({
74
93
  className: classes,
75
94
  onKeyDown: onKeyDown,
76
95
  tabIndex: 0,
96
+ onFocus: onFocus,
77
97
  style: newStyle || style
78
98
  }, rest), (0, _react2.jsx)(_i18n.EuiI18n, {
79
99
  token: "euiModal.closeModal",
@@ -157,15 +157,12 @@ var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
157
157
  _react.default.Children.toArray(children).forEach(function (child, index) {
158
158
  if (! /*#__PURE__*/_react.default.isValidElement(child)) return; // Skip non-components
159
159
 
160
- switch (child.type) {
161
- case _page.EuiPageSidebar:
162
- sidebar.push( /*#__PURE__*/_react.default.cloneElement(child, _objectSpread(_objectSpread({
163
- key: "sidebar".concat(index)
164
- }, getSideBarProps()), child.props)));
165
- break;
166
-
167
- default:
168
- sections.push(child);
160
+ if (child.type === _page.EuiPageSidebar || child.props.__EMOTION_TYPE_PLEASE_DO_NOT_USE__ === _page.EuiPageSidebar) {
161
+ sidebar.push( /*#__PURE__*/_react.default.cloneElement(child, _objectSpread(_objectSpread({
162
+ key: "sidebar".concat(index)
163
+ }, getSideBarProps()), child.props)));
164
+ } else {
165
+ sections.push(child);
169
166
  }
170
167
  });
171
168
 
@@ -66,7 +66,7 @@ var _popover2 = require("./popover.styles");
66
66
 
67
67
  var _popover_panel = require("./popover_panel");
68
68
 
69
- var _excluded = ["anchorClassName", "anchorPosition", "button", "buttonRef", "insert", "isOpen", "ownFocus", "children", "className", "closePopover", "panelClassName", "panelPaddingSize", "panelProps", "panelRef", "panelStyle", "popoverScreenReaderText", "popoverRef", "hasArrow", "arrowChildren", "repositionOnScroll", "zIndex", "attachToAnchor", "display", "offset", "onPositionChange", "onTrapDeactivation", "buffer", "aria-label", "aria-labelledby", "container", "focusTrapProps", "initialFocus", "tabIndex"];
69
+ var _excluded = ["anchorClassName", "anchorPosition", "button", "buttonRef", "insert", "isOpen", "ownFocus", "children", "className", "closePopover", "panelClassName", "panelPaddingSize", "panelProps", "panelRef", "panelStyle", "popoverScreenReaderText", "popoverRef", "hasArrow", "arrowChildren", "repositionOnScroll", "hasDragDrop", "zIndex", "attachToAnchor", "display", "offset", "onPositionChange", "onTrapDeactivation", "buffer", "aria-label", "aria-labelledby", "container", "focusTrapProps", "initialFocus", "tabIndex"];
70
70
 
71
71
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
72
72
 
@@ -403,7 +403,8 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
403
403
  }, {
404
404
  key: "render",
405
405
  value: function render() {
406
- var _this4 = this;
406
+ var _panelProps$tabIndex,
407
+ _this4 = this;
407
408
 
408
409
  var _this$props = this.props,
409
410
  anchorClassName = _this$props.anchorClassName,
@@ -426,6 +427,7 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
426
427
  hasArrow = _this$props.hasArrow,
427
428
  arrowChildren = _this$props.arrowChildren,
428
429
  repositionOnScroll = _this$props.repositionOnScroll,
430
+ hasDragDrop = _this$props.hasDragDrop,
429
431
  zIndex = _this$props.zIndex,
430
432
  attachToAnchor = _this$props.attachToAnchor,
431
433
  display = _this$props.display,
@@ -438,8 +440,9 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
438
440
  container = _this$props.container,
439
441
  focusTrapProps = _this$props.focusTrapProps,
440
442
  initialFocusProp = _this$props.initialFocus,
441
- tabIndexProp = _this$props.tabIndex,
443
+ _tabIndexProp = _this$props.tabIndex,
442
444
  rest = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
445
+ var tabIndexProp = (_panelProps$tabIndex = panelProps === null || panelProps === void 0 ? void 0 : panelProps.tabIndex) !== null && _panelProps$tabIndex !== void 0 ? _panelProps$tabIndex : _tabIndexProp;
443
446
  var styles = (0, _popover2.euiPopoverStyles)();
444
447
  var popoverStyles = [styles.euiPopover, {
445
448
  display: display
@@ -503,6 +506,7 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
503
506
  position: this.state.arrowPosition,
504
507
  isAttached: attachToAnchor,
505
508
  className: (0, _classnames.default)(panelClassName, panelProps === null || panelProps === void 0 ? void 0 : panelProps.className),
509
+ hasDragDrop: hasDragDrop,
506
510
  hasShadow: false,
507
511
  paddingSize: panelPaddingSize,
508
512
  tabIndex: tabIndex,
@@ -720,6 +724,12 @@ EuiPopover.propTypes = {
720
724
  */
721
725
  repositionOnScroll: _propTypes.default.bool,
722
726
 
727
+ /**
728
+ * Must be set to true if using `EuiDragDropContext` within a popover,
729
+ * otherwise your nested drag & drop will have incorrect positioning
730
+ */
731
+ hasDragDrop: _propTypes.default.bool,
732
+
723
733
  /**
724
734
  * By default, popover content inherits the z-index of the anchor
725
735
  * component; pass `zIndex` to override
@@ -33,6 +33,7 @@ var EuiPopoverArrow = function EuiPopoverArrow(_ref) {
33
33
  var styles = (0, _popover_arrow.euiPopoverArrowStyles)(euiTheme);
34
34
  var cssStyles = [styles.euiPopoverArrow, styles[position]];
35
35
  return (0, _react2.jsx)("div", (0, _extends2.default)({
36
+ className: "euiPopover__arrow",
36
37
  "data-popover-arrow": position,
37
38
  css: cssStyles
38
39
  }, rest), children);
@@ -29,7 +29,7 @@ var _popover_panel = require("./_popover_panel.styles");
29
29
 
30
30
  var _react2 = require("@emotion/react");
31
31
 
32
- var _excluded = ["children", "className", "isOpen", "isAttached", "position"];
32
+ var _excluded = ["children", "className", "isOpen", "isAttached", "hasDragDrop", "position"];
33
33
 
34
34
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
35
 
@@ -49,6 +49,7 @@ var EuiPopoverPanel = function EuiPopoverPanel(_ref) {
49
49
  className = _ref.className,
50
50
  isOpen = _ref.isOpen,
51
51
  isAttached = _ref.isAttached,
52
+ hasDragDrop = _ref.hasDragDrop,
52
53
  position = _ref.position,
53
54
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
54
55
  var panelContext = (0, _react.useContext)(EuiPopoverPanelContext);
@@ -63,6 +64,10 @@ var EuiPopoverPanel = function EuiPopoverPanel(_ref) {
63
64
  panelCSS = [].concat((0, _toConsumableArray2.default)(panelCSS), [isOpen && styles.attached.isOpen, position && styles.attached[position]]);
64
65
  }
65
66
 
67
+ if (hasDragDrop) {
68
+ panelCSS = [].concat((0, _toConsumableArray2.default)(panelCSS), [styles.hasDragDrop.hasDragDrop, position && styles.hasDragDrop[position]]);
69
+ }
70
+
66
71
  return (0, _react2.jsx)(EuiPopoverPanelContext.Provider, {
67
72
  value: panelContext
68
73
  }, (0, _react2.jsx)(_panel.EuiPanel, (0, _extends2.default)({
@@ -116,5 +121,6 @@ EuiPopoverPanel.propTypes = {
116
121
  css: _propTypes.default.any,
117
122
  isOpen: _propTypes.default.bool,
118
123
  isAttached: _propTypes.default.bool,
119
- position: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.oneOf([null])])
124
+ position: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.oneOf([null])]),
125
+ hasDragDrop: _propTypes.default.bool
120
126
  };