@elastic/eui 98.0.0 → 98.1.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 (170) hide show
  1. package/es/components/badge/beta_badge/beta_badge.js +2 -2
  2. package/es/components/badge/beta_badge/beta_badge.styles.js +1 -0
  3. package/es/components/card/card.js +1 -1
  4. package/es/components/card/card.styles.js +3 -3
  5. package/es/components/code/code_block.js +9 -1
  6. package/es/components/code/code_block_copy.js +5 -4
  7. package/es/components/drag_and_drop/draggable.js +2 -3
  8. package/es/components/drag_and_drop/droppable.js +2 -3
  9. package/es/components/error_boundary/error_boundary.js +2 -3
  10. package/es/components/form/range/range_draggable.js +3 -3
  11. package/es/components/health/health.js +3 -4
  12. package/es/components/inline_edit/inline_edit_form.js +5 -6
  13. package/es/components/inline_edit/inline_edit_text.js +2 -3
  14. package/es/components/inline_edit/inline_edit_title.js +2 -3
  15. package/es/components/key_pad_menu/key_pad_menu.js +2 -3
  16. package/es/components/key_pad_menu/key_pad_menu_item.js +3 -6
  17. package/es/components/mark/mark.js +2 -3
  18. package/es/components/overlay_mask/overlay_mask.js +2 -3
  19. package/es/components/popover/popover.js +3 -1
  20. package/es/components/search_bar/filters/field_value_selection_filter.js +18 -9
  21. package/es/components/search_bar/search_bar.a11y.js +0 -1
  22. package/es/components/selectable/selectable_list/selectable_list.js +10 -1
  23. package/es/components/side_nav/side_nav_item.js +3 -4
  24. package/es/components/tabs/tab.js +2 -0
  25. package/es/components/tabs/tabs.js +18 -2
  26. package/es/components/text_diff/text_diff.js +2 -3
  27. package/es/components/toast/global_toast_list_item.js +3 -6
  28. package/es/components/tour/_tour_footer.js +2 -3
  29. package/es/components/tour/_tour_header.js +2 -3
  30. package/es/components/tour/tour_step.js +4 -5
  31. package/es/components/tree_view/tree_view_item.js +2 -3
  32. package/es/global_styling/mixins/_helpers.js +1 -7
  33. package/eui.d.ts +16 -22
  34. package/i18ntokens.json +66 -48
  35. package/lib/components/badge/beta_badge/beta_badge.js +2 -2
  36. package/lib/components/badge/beta_badge/beta_badge.styles.js +1 -0
  37. package/lib/components/card/card.js +1 -1
  38. package/lib/components/card/card.styles.js +2 -2
  39. package/lib/components/code/code_block.js +9 -1
  40. package/lib/components/code/code_block_copy.js +5 -4
  41. package/lib/components/drag_and_drop/draggable.js +1 -2
  42. package/lib/components/drag_and_drop/droppable.js +1 -2
  43. package/lib/components/error_boundary/error_boundary.js +2 -3
  44. package/lib/components/form/range/range_draggable.js +2 -2
  45. package/lib/components/health/health.js +2 -3
  46. package/lib/components/inline_edit/inline_edit_form.js +4 -5
  47. package/lib/components/inline_edit/inline_edit_text.js +2 -3
  48. package/lib/components/inline_edit/inline_edit_title.js +2 -3
  49. package/lib/components/key_pad_menu/key_pad_menu.js +2 -3
  50. package/lib/components/key_pad_menu/key_pad_menu_item.js +2 -5
  51. package/lib/components/mark/mark.js +2 -3
  52. package/lib/components/overlay_mask/overlay_mask.js +1 -2
  53. package/lib/components/popover/popover.js +3 -1
  54. package/lib/components/search_bar/filters/field_value_selection_filter.js +18 -9
  55. package/lib/components/search_bar/search_bar.a11y.js +0 -1
  56. package/lib/components/selectable/selectable_list/selectable_list.js +10 -1
  57. package/lib/components/side_nav/side_nav_item.js +2 -3
  58. package/lib/components/tabs/tab.js +2 -0
  59. package/lib/components/tabs/tabs.js +17 -1
  60. package/lib/components/text_diff/text_diff.js +1 -2
  61. package/lib/components/toast/global_toast_list_item.js +2 -5
  62. package/lib/components/tour/_tour_footer.js +1 -2
  63. package/lib/components/tour/_tour_header.js +1 -2
  64. package/lib/components/tour/tour_step.js +4 -5
  65. package/lib/components/tree_view/tree_view_item.js +1 -2
  66. package/lib/global_styling/mixins/_helpers.js +2 -8
  67. package/optimize/es/components/badge/beta_badge/beta_badge.js +1 -1
  68. package/optimize/es/components/badge/beta_badge/beta_badge.styles.js +1 -0
  69. package/optimize/es/components/card/card.styles.js +3 -3
  70. package/optimize/es/components/code/code_block.js +3 -1
  71. package/optimize/es/components/code/code_block_copy.js +5 -4
  72. package/optimize/es/components/drag_and_drop/draggable.js +2 -3
  73. package/optimize/es/components/drag_and_drop/droppable.js +2 -3
  74. package/optimize/es/components/error_boundary/error_boundary.js +2 -3
  75. package/optimize/es/components/form/range/range_draggable.js +3 -3
  76. package/optimize/es/components/health/health.js +3 -4
  77. package/optimize/es/components/inline_edit/inline_edit_form.js +5 -6
  78. package/optimize/es/components/inline_edit/inline_edit_text.js +2 -3
  79. package/optimize/es/components/inline_edit/inline_edit_title.js +2 -3
  80. package/optimize/es/components/key_pad_menu/key_pad_menu.js +2 -3
  81. package/optimize/es/components/key_pad_menu/key_pad_menu_item.js +3 -6
  82. package/optimize/es/components/mark/mark.js +2 -3
  83. package/optimize/es/components/overlay_mask/overlay_mask.js +2 -3
  84. package/optimize/es/components/popover/popover.js +3 -1
  85. package/optimize/es/components/search_bar/filters/field_value_selection_filter.js +18 -9
  86. package/optimize/es/components/search_bar/search_bar.a11y.js +0 -1
  87. package/optimize/es/components/selectable/selectable_list/selectable_list.js +10 -1
  88. package/optimize/es/components/side_nav/side_nav_item.js +3 -4
  89. package/optimize/es/components/tabs/tab.js +2 -0
  90. package/optimize/es/components/tabs/tabs.js +18 -2
  91. package/optimize/es/components/text_diff/text_diff.js +2 -3
  92. package/optimize/es/components/toast/global_toast_list_item.js +3 -6
  93. package/optimize/es/components/tour/_tour_footer.js +2 -3
  94. package/optimize/es/components/tour/_tour_header.js +2 -3
  95. package/optimize/es/components/tour/tour_step.js +4 -5
  96. package/optimize/es/components/tree_view/tree_view_item.js +2 -3
  97. package/optimize/es/global_styling/mixins/_helpers.js +1 -7
  98. package/optimize/lib/components/badge/beta_badge/beta_badge.js +1 -1
  99. package/optimize/lib/components/badge/beta_badge/beta_badge.styles.js +1 -0
  100. package/optimize/lib/components/card/card.styles.js +2 -2
  101. package/optimize/lib/components/code/code_block.js +3 -1
  102. package/optimize/lib/components/code/code_block_copy.js +5 -4
  103. package/optimize/lib/components/drag_and_drop/draggable.js +1 -2
  104. package/optimize/lib/components/drag_and_drop/droppable.js +1 -2
  105. package/optimize/lib/components/error_boundary/error_boundary.js +2 -3
  106. package/optimize/lib/components/form/range/range_draggable.js +2 -2
  107. package/optimize/lib/components/health/health.js +2 -3
  108. package/optimize/lib/components/inline_edit/inline_edit_form.js +4 -5
  109. package/optimize/lib/components/inline_edit/inline_edit_text.js +2 -3
  110. package/optimize/lib/components/inline_edit/inline_edit_title.js +2 -3
  111. package/optimize/lib/components/key_pad_menu/key_pad_menu.js +2 -3
  112. package/optimize/lib/components/key_pad_menu/key_pad_menu_item.js +2 -5
  113. package/optimize/lib/components/mark/mark.js +2 -3
  114. package/optimize/lib/components/overlay_mask/overlay_mask.js +1 -2
  115. package/optimize/lib/components/popover/popover.js +3 -1
  116. package/optimize/lib/components/search_bar/filters/field_value_selection_filter.js +18 -9
  117. package/optimize/lib/components/search_bar/search_bar.a11y.js +0 -1
  118. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +10 -1
  119. package/optimize/lib/components/side_nav/side_nav_item.js +2 -3
  120. package/optimize/lib/components/tabs/tab.js +2 -0
  121. package/optimize/lib/components/tabs/tabs.js +17 -1
  122. package/optimize/lib/components/text_diff/text_diff.js +1 -2
  123. package/optimize/lib/components/toast/global_toast_list_item.js +2 -5
  124. package/optimize/lib/components/tour/_tour_footer.js +1 -2
  125. package/optimize/lib/components/tour/_tour_header.js +1 -2
  126. package/optimize/lib/components/tour/tour_step.js +4 -5
  127. package/optimize/lib/components/tree_view/tree_view_item.js +1 -2
  128. package/optimize/lib/global_styling/mixins/_helpers.js +2 -8
  129. package/package.json +13 -12
  130. package/src/global_styling/index.scss +0 -6
  131. package/src/global_styling/mixins/_helpers.scss +0 -9
  132. package/src/global_styling/mixins/_shadow.scss +0 -8
  133. package/src/global_styling/variables/_size.scss +0 -2
  134. package/src/themes/amsterdam/global_styling/index.scss +0 -3
  135. package/test-env/components/badge/beta_badge/beta_badge.js +2 -2
  136. package/test-env/components/badge/beta_badge/beta_badge.styles.js +1 -0
  137. package/test-env/components/card/card.js +1 -1
  138. package/test-env/components/card/card.styles.js +2 -2
  139. package/test-env/components/code/code_block_copy.js +5 -4
  140. package/test-env/components/drag_and_drop/draggable.js +1 -2
  141. package/test-env/components/drag_and_drop/droppable.js +1 -2
  142. package/test-env/components/error_boundary/error_boundary.js +2 -3
  143. package/test-env/components/form/range/range_draggable.js +2 -2
  144. package/test-env/components/health/health.js +2 -3
  145. package/test-env/components/inline_edit/inline_edit_form.js +4 -5
  146. package/test-env/components/inline_edit/inline_edit_text.js +2 -3
  147. package/test-env/components/inline_edit/inline_edit_title.js +2 -3
  148. package/test-env/components/key_pad_menu/key_pad_menu.js +2 -3
  149. package/test-env/components/key_pad_menu/key_pad_menu_item.js +2 -5
  150. package/test-env/components/mark/mark.js +2 -3
  151. package/test-env/components/overlay_mask/overlay_mask.js +1 -2
  152. package/test-env/components/popover/popover.js +3 -1
  153. package/test-env/components/search_bar/filters/field_value_selection_filter.js +18 -9
  154. package/test-env/components/search_bar/search_bar.a11y.js +0 -1
  155. package/test-env/components/selectable/selectable_list/selectable_list.js +10 -1
  156. package/test-env/components/side_nav/side_nav_item.js +2 -3
  157. package/test-env/components/tabs/tab.js +2 -0
  158. package/test-env/components/tabs/tabs.js +17 -1
  159. package/test-env/components/text_diff/text_diff.js +1 -2
  160. package/test-env/components/toast/global_toast_list_item.js +2 -5
  161. package/test-env/components/tour/_tour_footer.js +1 -2
  162. package/test-env/components/tour/_tour_header.js +1 -2
  163. package/test-env/components/tour/tour_step.js +4 -5
  164. package/test-env/components/tree_view/tree_view_item.js +1 -2
  165. package/test-env/global_styling/mixins/_helpers.js +2 -8
  166. package/src/global_styling/react_date_picker/_date_picker.scss +0 -772
  167. package/src/global_styling/react_date_picker/_index.scss +0 -2
  168. package/src/global_styling/react_date_picker/_variables.scss +0 -1
  169. package/src/global_styling/utility/_animations.scss +0 -55
  170. package/src/global_styling/utility/_index.scss +0 -1
@@ -23,7 +23,7 @@ var _excluded = ["className", "label", "color", "tooltipContent", "tooltipPositi
23
23
  * in compliance with, at your election, the Elastic License 2.0 or the Server
24
24
  * Side Public License, v 1.
25
25
  */
26
- var COLORS = exports.COLORS = ['accent', 'subdued', 'hollow'];
26
+ var COLORS = exports.COLORS = ['accent', 'subdued', 'hollow', 'warning'];
27
27
  var SIZES = exports.SIZES = ['s', 'm'];
28
28
  var ALIGNMENTS = exports.ALIGNMENTS = ['baseline', 'middle'];
29
29
 
@@ -50,6 +50,7 @@ var euiBetaBadgeStyles = exports.euiBetaBadgeStyles = function euiBetaBadgeStyle
50
50
  accent: /*#__PURE__*/(0, _react.css)(badgeColors.accentText, ";label:accent;"),
51
51
  subdued: /*#__PURE__*/(0, _react.css)(badgeColors.subdued, ";label:subdued;"),
52
52
  hollow: /*#__PURE__*/(0, _react.css)("color:", badgeColors.hollow.color, ";background-color:", badgeColors.hollow.backgroundColor, ";box-shadow:inset 0 0 0 ", euiTheme.border.width.thin, " ", badgeColors.hollow.borderColor, ";;label:hollow;"),
53
+ warning: /*#__PURE__*/(0, _react.css)(badgeColors.warning, ";label:warning;"),
53
54
  // Font sizes
54
55
  m: /*#__PURE__*/(0, _react.css)("font-size:", (0, _global_styling.euiFontSizeFromScale)('xs', euiTheme), ";line-height:", euiTheme.size.l, ";;label:m;"),
55
56
  s: /*#__PURE__*/(0, _react.css)("font-size:0.625rem;line-height:", (0, _global_styling.mathWithUnits)(euiTheme.size.xs, function (x) {
@@ -128,7 +128,7 @@ var euiCardTextStyles = exports.euiCardTextStyles = function euiCardTextStyles(e
128
128
  var euiTheme = euiThemeContext.euiTheme;
129
129
  return {
130
130
  euiCard__text: _ref,
131
- interactive: /*#__PURE__*/(0, _react.css)("outline-offset:", euiTheme.size.xxs, ";.euiCard:hover &,.euiCard:focus &,&:hover,&:focus{text-decoration:underline;}", _global_styling.euiSupportsHas, "{outline:none!important;};label:interactive;"),
131
+ interactive: /*#__PURE__*/(0, _react.css)("outline-offset:", euiTheme.size.xxs, ";.euiCard:hover &,.euiCard:focus &,&:hover,&:focus{text-decoration:underline;};label:interactive;"),
132
132
  aligned: {
133
133
  center: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalTextAlignCSS)('center'), ";;label:center;"),
134
134
  left: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalTextAlignCSS)('left'), ";;label:left;"),
@@ -142,7 +142,7 @@ var euiCardBetaBadgeStyles = exports.euiCardBetaBadgeStyles = function euiCardBe
142
142
  var padding = (0, _global_styling.euiPaddingSize)(euiThemeContext, paddingSize);
143
143
  return {
144
144
  hasBetaBadge: /*#__PURE__*/(0, _react.css)("position:relative;overflow:visible;", (0, _global_styling.logicalCSS)('padding-top', "calc(".concat(padding, " + ").concat(euiTheme.size.s, ")")), ";;label:hasBetaBadge;"),
145
- euiCard__betaBadgeAnchor: /*#__PURE__*/(0, _react.css)("line-height:0;position:absolute;", (0, _global_styling.logicalCSS)('top', '0'), " ", (0, _global_styling.logicalCSS)('left', '50%'), " transform:translateX(-50%) translateY(-50%);z-index:3;", (0, _global_styling.logicalCSS)('min-width', 'min(30%, 112px)'), " ", (0, _global_styling.logicalCSS)('max-width', "calc(100% - (".concat(padding, " * 2))")), ";;label:euiCard__betaBadgeAnchor;"),
145
+ euiCard__betaBadgeAnchor: /*#__PURE__*/(0, _react.css)("line-height:0;position:absolute;", (0, _global_styling.logicalCSS)('top', '0'), " ", (0, _global_styling.logicalCSS)('left', '50%'), " transform:translateX(-50%) translateY(-50%);z-index:3;", (0, _global_styling.logicalCSS)('min-width', "min(30%, ".concat(euiTheme.base * 7, "px)")), " ", (0, _global_styling.logicalCSS)('max-width', "calc(100% - (".concat(padding, " * 2))")), ";;label:euiCard__betaBadgeAnchor;"),
146
146
  euiCard__betaBadge: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', '100%'), ";;label:euiCard__betaBadge;")
147
147
  };
148
148
  };
@@ -22,7 +22,7 @@ var _code_block_controls = require("./code_block_controls");
22
22
  var _code_block_virtualized = require("./code_block_virtualized");
23
23
  var _code_block = require("./code_block.styles");
24
24
  var _react2 = require("@emotion/react");
25
- var _excluded = ["language", "transparentBackground", "paddingSize", "fontSize", "isCopyable", "whiteSpace", "children", "className", "overflowHeight", "isVirtualized", "lineNumbers"];
25
+ var _excluded = ["language", "transparentBackground", "paddingSize", "fontSize", "isCopyable", "copyAriaLabel", "whiteSpace", "children", "className", "overflowHeight", "isVirtualized", "lineNumbers"];
26
26
  /*
27
27
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
28
28
  * or more contributor license agreements. Licensed under the Elastic License
@@ -56,6 +56,7 @@ var EuiCodeBlock = exports.EuiCodeBlock = function EuiCodeBlock(_ref) {
56
56
  fontSize = _ref$fontSize === void 0 ? 's' : _ref$fontSize,
57
57
  _ref$isCopyable = _ref.isCopyable,
58
58
  isCopyable = _ref$isCopyable === void 0 ? false : _ref$isCopyable,
59
+ copyAriaLabel = _ref.copyAriaLabel,
59
60
  _ref$whiteSpace = _ref.whiteSpace,
60
61
  whiteSpace = _ref$whiteSpace === void 0 ? 'pre-wrap' : _ref$whiteSpace,
61
62
  children = _ref.children,
@@ -96,6 +97,7 @@ var EuiCodeBlock = exports.EuiCodeBlock = function EuiCodeBlock(_ref) {
96
97
  return !!(_isVirtualized && Array.isArray(data));
97
98
  }, [_isVirtualized, data]);
98
99
  var _useCopy = (0, _code_block_copy.useCopy)({
100
+ copyAriaLabel: copyAriaLabel,
99
101
  isCopyable: isCopyable,
100
102
  isVirtualized: isVirtualized,
101
103
  children: children
@@ -28,7 +28,8 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
28
28
  * Hook that returns copy-related state/logic/utils
29
29
  */
30
30
  var useCopy = exports.useCopy = function useCopy(_ref) {
31
- var isCopyable = _ref.isCopyable,
31
+ var copyAriaLabel = _ref.copyAriaLabel,
32
+ isCopyable = _ref.isCopyable,
32
33
  isVirtualized = _ref.isVirtualized,
33
34
  children = _ref.children;
34
35
  var _useInnerText = (0, _inner_text.useInnerText)(''),
@@ -51,7 +52,7 @@ var useCopy = exports.useCopy = function useCopy(_ref) {
51
52
  var textToCopy = isVirtualized ? "".concat(children) : innerText; // Virtualized code blocks do not have inner text
52
53
 
53
54
  var showCopyButton = isCopyable && textToCopy;
54
- var copyAriaLabel = (0, _i18n.useEuiI18n)('euiCodeBlockCopy.copy', 'Copy');
55
+ var copyDefaultAriaLabel = (0, _i18n.useEuiI18n)('euiCodeBlockCopy.copy', 'Copy');
55
56
  var copyButton = (0, _react.useMemo)(function () {
56
57
  return showCopyButton ? (0, _react2.jsx)("div", {
57
58
  className: "euiCodeBlock__copyButton"
@@ -62,11 +63,11 @@ var useCopy = exports.useCopy = function useCopy(_ref) {
62
63
  onClick: copy,
63
64
  iconType: "copyClipboard",
64
65
  color: "text",
65
- "aria-label": copyAriaLabel,
66
+ "aria-label": copyAriaLabel || copyDefaultAriaLabel,
66
67
  "data-test-subj": "euiCodeBlockCopy"
67
68
  });
68
69
  })) : null;
69
- }, [showCopyButton, textToCopy, copyAriaLabel]);
70
+ }, [copyAriaLabel, copyDefaultAriaLabel, showCopyButton, textToCopy]);
70
71
  return {
71
72
  innerTextRef: innerTextRef,
72
73
  copyButton: copyButton
@@ -52,8 +52,7 @@ var EuiDraggable = exports.EuiDraggable = function EuiDraggable(_ref) {
52
52
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
53
53
  var _useContext = (0, _react.useContext)(_droppable.EuiDroppableContext),
54
54
  cloneItems = _useContext.cloneItems;
55
- var euiTheme = (0, _services.useEuiTheme)();
56
- var styles = (0, _draggable.euiDraggableStyles)(euiTheme);
55
+ var styles = (0, _services.useEuiMemoizedStyles)(_draggable.euiDraggableStyles);
57
56
  var hasCustomDragHandle = customDragHandle !== false;
58
57
  return (0, _react2.jsx)(_dnd.Draggable, (0, _extends2.default)({
59
58
  draggableId: draggableId,
@@ -54,8 +54,7 @@ var EuiDroppable = exports.EuiDroppable = function EuiDroppable(_ref) {
54
54
  var _useContext = (0, _react.useContext)(_drag_drop_context.EuiDragDropContextContext),
55
55
  isDraggingType = _useContext.isDraggingType;
56
56
  var dropIsDisabled = cloneDraggables ? true : isDropDisabled;
57
- var euiTheme = (0, _services.useEuiTheme)();
58
- var styles = (0, _droppable.euiDroppableStyles)(euiTheme);
57
+ var styles = (0, _services.useEuiMemoizedStyles)(_droppable.euiDroppableStyles);
59
58
  return (0, _react2.jsx)(_dnd.Droppable, (0, _extends2.default)({
60
59
  isDropDisabled: dropIsDisabled,
61
60
  droppableId: droppableId,
@@ -15,10 +15,10 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
15
15
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16
16
  var _react = _interopRequireWildcard(require("react"));
17
17
  var _classnames = _interopRequireDefault(require("classnames"));
18
+ var _services = require("../../services");
18
19
  var _title = require("../title");
19
20
  var _code = require("../code");
20
21
  var _i18n = require("../i18n");
21
- var _services = require("../../services");
22
22
  var _error_boundary = require("./error_boundary.styles");
23
23
  var _react2 = require("@emotion/react");
24
24
  var _excluded = ["children"],
@@ -94,8 +94,7 @@ var EuiErrorMessage = exports.EuiErrorMessage = function EuiErrorMessage(_ref) {
94
94
  className = _ref.className,
95
95
  dataTestSubj = _ref['data-test-subj'],
96
96
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded2);
97
- var euiTheme = (0, _services.useEuiTheme)();
98
- var styles = (0, _error_boundary.euiErrorBoundaryStyles)(euiTheme);
97
+ var styles = (0, _services.useEuiMemoizedStyles)(_error_boundary.euiErrorBoundaryStyles);
99
98
  return (0, _react2.jsx)("div", (0, _extends2.default)({
100
99
  css: styles.euiErrorBoundary,
101
100
  className: (0, _classnames.default)('euiErrorBoundary', className),
@@ -53,9 +53,9 @@ var EuiRangeDraggable = exports.EuiRangeDraggable = function EuiRangeDraggable(_
53
53
  handleMouseDown = _useMouseMove2[0],
54
54
  handleInteraction = _useMouseMove2[1];
55
55
  var classes = (0, _classnames.default)('euiRangeDraggable', className);
56
- var styles = (0, _range_draggable.euiRangeDraggableStyles)(euiTheme);
56
+ var styles = (0, _services.useEuiMemoizedStyles)(_range_draggable.euiRangeDraggableStyles);
57
57
  var cssStyles = [styles.euiRangeDraggable, showTicks && styles.hasTicks, disabled && styles.disabled];
58
- var innerStyles = (0, _range_draggable.euiRangeDraggableInnerStyles)(euiTheme);
58
+ var innerStyles = (0, _services.useEuiMemoizedStyles)(_range_draggable.euiRangeDraggableInnerStyles);
59
59
  var cssInnerStyles = [innerStyles.euiRangeDraggable__inner, disabled ? styles.disabled : innerStyles.enabled];
60
60
  var commonProps = {
61
61
  className: classes,
@@ -10,9 +10,9 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
12
  var _services = require("../../services");
13
- var _health = require("./health.styles");
14
13
  var _icon = require("../icon");
15
14
  var _flex = require("../flex");
15
+ var _health = require("./health.styles");
16
16
  var _react2 = require("@emotion/react");
17
17
  var _excluded = ["children", "className", "color", "textSize"];
18
18
  /*
@@ -30,8 +30,7 @@ var EuiHealth = exports.EuiHealth = function EuiHealth(_ref) {
30
30
  _ref$textSize = _ref.textSize,
31
31
  textSize = _ref$textSize === void 0 ? 's' : _ref$textSize,
32
32
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
33
- var euiTheme = (0, _services.useEuiTheme)();
34
- var styles = (0, _health.euiHealthStyles)(euiTheme);
33
+ var styles = (0, _services.useEuiMemoizedStyles)(_health.euiHealthStyles);
35
34
  var cssStyles = [styles.euiHealth, styles[textSize]];
36
35
  var classes = (0, _classnames.default)('euiHealth', className);
37
36
  return (0, _react2.jsx)("div", (0, _extends2.default)({
@@ -69,10 +69,9 @@ var EuiInlineEditForm = exports.EuiInlineEditForm = function EuiInlineEditForm(_
69
69
  isReadOnly = _ref.isReadOnly,
70
70
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
71
71
  var classes = (0, _classnames.default)('euiInlineEdit', className);
72
- var euiTheme = (0, _services.useEuiTheme)();
73
- var _euiFormVariables = (0, _form2.euiFormVariables)(euiTheme),
74
- controlHeight = _euiFormVariables.controlHeight,
75
- controlCompressedHeight = _euiFormVariables.controlCompressedHeight;
72
+ var _useEuiMemoizedStyles = (0, _services.useEuiMemoizedStyles)(_form2.euiFormVariables),
73
+ controlHeight = _useEuiMemoizedStyles.controlHeight,
74
+ controlCompressedHeight = _useEuiMemoizedStyles.controlCompressedHeight;
76
75
  var loadingSkeletonSize = sizes.compressed ? controlCompressedHeight : controlHeight;
77
76
  var defaultSaveButtonAriaLabel = (0, _i18n.useEuiI18n)('euiInlineEditForm.saveButtonAriaLabel', 'Save edit');
78
77
  var defaultCancelButtonAriaLabel = (0, _i18n.useEuiI18n)('euiInlineEditForm.cancelButtonAriaLabel', 'Cancel edit');
@@ -107,7 +106,7 @@ var EuiInlineEditForm = exports.EuiInlineEditForm = function EuiInlineEditForm(_
107
106
  return isEditing ? editModeValue : readModeValue || placeholder;
108
107
  }
109
108
  }, [controlledValue, editModeValue, readModeValue, isEditing, placeholder]);
110
- var readModeStyles = (0, _inline_edit_form.euiInlineEditReadModeStyles)(euiTheme);
109
+ var readModeStyles = (0, _services.useEuiMemoizedStyles)(_inline_edit_form.euiInlineEditReadModeStyles);
111
110
  var readModeCssStyles = [readModeStyles.euiInlineEditReadMode, isReadOnly && readModeStyles.isReadOnly, placeholder && !readModeValue && readModeStyles.hasPlaceholder];
112
111
  var activateEditMode = function activateEditMode() {
113
112
  setIsEditing(true);
@@ -11,9 +11,9 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
11
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
  var _classnames = _interopRequireDefault(require("classnames"));
14
+ var _services = require("../../services");
14
15
  var _text = require("../text");
15
16
  var _inline_edit_form = require("./inline_edit_form");
16
- var _services = require("../../services");
17
17
  var _inline_edit_text = require("./inline_edit_text.styles");
18
18
  var _react2 = require("@emotion/react");
19
19
  var _excluded = ["className", "size", "readModeProps", "isReadOnly"];
@@ -36,8 +36,7 @@ var EuiInlineEditText = exports.EuiInlineEditText = function EuiInlineEditText(_
36
36
  isReadOnly = _ref.isReadOnly,
37
37
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
38
38
  var classes = (0, _classnames.default)('euiInlineEditText', className);
39
- var theme = (0, _services.useEuiTheme)();
40
- var styles = (0, _inline_edit_text.euiInlineEditTextStyles)(theme);
39
+ var styles = (0, _services.useEuiMemoizedStyles)(_inline_edit_text.euiInlineEditTextStyles);
41
40
  var cssStyles = [styles.euiInlineEditText, styles.fontSize[size]];
42
41
  var isSmallSize = ['xs', 's'].includes(size);
43
42
  var sizes = isSmallSize ? _inline_edit_form.SMALL_SIZE_FORM : _inline_edit_form.MEDIUM_SIZE_FORM;
@@ -11,9 +11,9 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
11
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
  var _classnames = _interopRequireDefault(require("classnames"));
14
+ var _services = require("../../services");
14
15
  var _title = require("../title");
15
16
  var _inline_edit_form = require("./inline_edit_form");
16
- var _services = require("../../services");
17
17
  var _inline_edit_title = require("./inline_edit_title.styles");
18
18
  var _react2 = require("@emotion/react");
19
19
  var _excluded = ["className", "size", "heading", "readModeProps", "isReadOnly"];
@@ -38,8 +38,7 @@ var EuiInlineEditTitle = exports.EuiInlineEditTitle = function EuiInlineEditTitl
38
38
  isReadOnly = _ref.isReadOnly,
39
39
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
40
40
  var classes = (0, _classnames.default)('euiInlineEditTitle', className);
41
- var theme = (0, _services.useEuiTheme)();
42
- var styles = (0, _inline_edit_title.euiInlineEditTitleStyles)(theme);
41
+ var styles = (0, _services.useEuiMemoizedStyles)(_inline_edit_title.euiInlineEditTitleStyles);
43
42
  var cssStyles = [styles.euiInlineEditTitle, styles.fontSize[size]];
44
43
  var H = heading;
45
44
  var isSmallSize = ['xxxs', 'xxs', 'xs', 's'].includes(size);
@@ -10,8 +10,8 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
11
  var _react = _interopRequireDefault(require("react"));
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
- var _form_label = require("../form/form_label/form_label");
14
13
  var _services = require("../../services");
14
+ var _form_label = require("../form/form_label/form_label");
15
15
  var _key_pad_menu = require("./key_pad_menu.styles");
16
16
  var _react2 = require("@emotion/react");
17
17
  var _excluded = ["children", "className", "checkable"];
@@ -30,8 +30,7 @@ var EuiKeyPadMenu = exports.EuiKeyPadMenu = function EuiKeyPadMenu(_ref) {
30
30
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
31
31
  var hasCheckableConfig = (0, _typeof2.default)(checkable) === 'object';
32
32
  var classes = (0, _classnames.default)('euiKeyPadMenu', className);
33
- var theme = (0, _services.useEuiTheme)();
34
- var styles = (0, _key_pad_menu.euiKeyPadMenuStyles)(theme);
33
+ var styles = (0, _services.useEuiMemoizedStyles)(_key_pad_menu.euiKeyPadMenuStyles);
35
34
  var cssStyles = [styles.euiKeyPadMenu];
36
35
  var legendCssStyles = [styles.euiKeyPadMenu__legend, hasCheckableConfig && (checkable === null || checkable === void 0 || (_checkable$legendProp = checkable.legendProps) === null || _checkable$legendProp === void 0 ? void 0 : _checkable$legendProp.css)];
37
36
  var legend = hasCheckableConfig && checkable.legend ? (0, _react2.jsx)(_form_label.EuiFormLabel, (0, _extends2.default)({}, checkable.legendProps, {
@@ -50,8 +50,7 @@ var EuiKeyPadMenuItem = exports.EuiKeyPadMenuItem = function EuiKeyPadMenuItem(_
50
50
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
51
51
  var isHrefValid = !href || (0, _href_validator.validateHref)(href);
52
52
  var isDisabled = disabled || _isDisabled || !isHrefValid;
53
- var euiTheme = (0, _services.useEuiTheme)();
54
- var styles = (0, _key_pad_menu_item.euiKeyPadMenuItemStyles)(euiTheme);
53
+ var styles = (0, _services.useEuiMemoizedStyles)(_key_pad_menu_item.euiKeyPadMenuItemStyles);
55
54
  var cssStyles = [styles.euiKeyPadMenuItem, !isDisabled ? styles.enabled : styles.disabled.disabled, isSelected && (!isDisabled ? styles.selected : styles.disabled.selected)];
56
55
  var classes = (0, _classnames.default)('euiKeyPadMenuItem', className);
57
56
  var Element = href && !isDisabled ? 'a' : 'button';
@@ -59,9 +58,7 @@ var EuiKeyPadMenuItem = exports.EuiKeyPadMenuItem = function EuiKeyPadMenuItem(_
59
58
  var itemId = (0, _services.useGeneratedHtmlId)({
60
59
  conditionalId: id
61
60
  });
62
- var childStyles = (0, _react.useMemo)(function () {
63
- return (0, _key_pad_menu_item.euiKeyPadMenuItemChildStyles)(euiTheme);
64
- }, [euiTheme]);
61
+ var childStyles = (0, _services.useEuiMemoizedStyles)(_key_pad_menu_item.euiKeyPadMenuItemChildStyles);
65
62
  var checkableElement = (0, _react.useMemo)(function () {
66
63
  if (!checkable) return;
67
64
  var cssStyles = [childStyles.euiKeyPadMenuItem__checkableInput, !isSelected && isDisabled && childStyles.hideCheckableInput, !isSelected && !isDisabled && childStyles.showCheckableInputOnInteraction];
@@ -10,8 +10,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
- var _i18n = require("../i18n");
14
13
  var _services = require("../../services");
14
+ var _i18n = require("../i18n");
15
15
  var _mark = require("./mark.styles");
16
16
  var _react2 = require("@emotion/react");
17
17
  var _excluded = ["children", "className", "hasScreenReaderHelpText"];
@@ -31,8 +31,7 @@ var EuiMark = exports.EuiMark = function EuiMark(_ref) {
31
31
  hasScreenReaderHelpText = _ref$hasScreenReaderH === void 0 ? true : _ref$hasScreenReaderH,
32
32
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
33
33
  var classes = (0, _classnames.default)('euiMark', className);
34
- var euiTheme = (0, _services.useEuiTheme)();
35
- var styles = (0, _mark.euiMarkStyles)(euiTheme);
34
+ var styles = (0, _services.useEuiMemoizedStyles)(_mark.euiMarkStyles);
36
35
  var highlightStart = (0, _i18n.useEuiI18n)('euiMark.highlightStart', 'highlight start');
37
36
  var highlightEnd = (0, _i18n.useEuiI18n)('euiMark.highlightEnd', 'highlight end');
38
37
  var screenReaderStyles = (0, _react.useMemo)(function () {
@@ -39,8 +39,7 @@ var EuiOverlayMask = exports.EuiOverlayMask = function EuiOverlayMask(_ref) {
39
39
  overlayMaskNode = _useState2[0],
40
40
  setOverlayMaskNode = _useState2[1];
41
41
  var combinedMaskRef = (0, _services.useCombinedRefs)([setOverlayMaskNode, maskRef]);
42
- var euiTheme = (0, _services.useEuiTheme)();
43
- var styles = (0, _overlay_mask.euiOverlayMaskStyles)(euiTheme);
42
+ var styles = (0, _services.useEuiMemoizedStyles)(_overlay_mask.euiOverlayMaskStyles);
44
43
  var cssStyles = (0, _css.cx)([styles.euiOverlayMask, styles["".concat(headerZindexLocation, "Header")]]);
45
44
  (0, _react.useEffect)(function () {
46
45
  if (!overlayMaskNode) return;
@@ -119,11 +119,13 @@ var EuiPopover = exports.EuiPopover = /*#__PURE__*/function (_Component) {
119
119
  });
120
120
  (0, _defineProperty2.default)(_this, "handleStrandedFocus", function () {
121
121
  _this.strandedFocusTimeout = window.setTimeout(function () {
122
+ var _this$panel;
122
123
  // If `returnFocus` failed and focus was stranded,
123
124
  // attempt to manually restore focus to the toggle button.
124
125
  // The stranded focus is either in most cases on body but
125
126
  // it will be on the panel instead on mount when isOpen=true
126
- if (document.activeElement === document.body || document.activeElement === _this.panel) {
127
+ if (document.activeElement === document.body || (_this$panel = _this.panel) !== null && _this$panel !== void 0 && _this$panel.contains(document.activeElement) // if focus is on OR within this.panel
128
+ ) {
127
129
  if (!_this.button) return;
128
130
  var focusableItems = (0, _tabbable.focusable)(_this.button);
129
131
  if (!focusableItems.length) return;
@@ -23,6 +23,7 @@ var _popover = require("../../popover");
23
23
  var _filter_group = require("../../filter_group");
24
24
  var _filter_group2 = require("../../filter_group/filter_group.styles");
25
25
  var _selectable = require("../../selectable");
26
+ var _i18n = require("../../i18n");
26
27
  var _query4 = require("../query");
27
28
  var _ast = require("../query/ast");
28
29
  var _react2 = require("@emotion/react");
@@ -283,14 +284,21 @@ var FieldValueSelectionFilter = exports.FieldValueSelectionFilter = /*#__PURE__*
283
284
  }) : false;
284
285
  var activeItemsCount = this.state.activeItemsCount;
285
286
  var active = (activeTop || activeItem) && activeItemsCount > 0;
286
- var button = (0, _react2.jsx)(_filter_group.EuiFilterButton, {
287
- iconType: "arrowDown",
288
- iconSide: "right",
289
- onClick: this.onButtonClick.bind(this),
290
- hasActiveFilters: active,
291
- numActiveFilters: active ? activeItemsCount : undefined,
292
- grow: true
293
- }, config.name);
287
+ var button = (0, _react2.jsx)(_i18n.EuiI18n, {
288
+ token: "euiFieldValueSelectionFilter.buttonLabelHint",
289
+ default: "Selection"
290
+ }, function (buttonLabelHint) {
291
+ var ariaLabel = "".concat(config.name, " ").concat(buttonLabelHint);
292
+ return (0, _react2.jsx)(_filter_group.EuiFilterButton, {
293
+ iconType: "arrowDown",
294
+ iconSide: "right",
295
+ hasActiveFilters: active,
296
+ numActiveFilters: active ? activeItemsCount : undefined,
297
+ grow: true,
298
+ "aria-label": ariaLabel,
299
+ onClick: _this3.onButtonClick.bind(_this3)
300
+ }, config.name);
301
+ });
294
302
  var items = options ? options.map(function (option) {
295
303
  var _option$view;
296
304
  var optionField = option.field || config.field;
@@ -348,7 +356,8 @@ var FieldValueSelectionFilter = exports.FieldValueSelectionFilter = /*#__PURE__*
348
356
  errorMessage: _this3.state.error,
349
357
  noMatchesMessage: config.noOptionsMessage,
350
358
  listProps: {
351
- isVirtualized: isOverSearchThreshold || false
359
+ isVirtualized: isOverSearchThreshold || false,
360
+ autoFocus: true
352
361
  },
353
362
  onChange: function onChange(options, event, changedOption) {
354
363
  if (changedOption.data) {
@@ -207,7 +207,6 @@ describe('EuiSearchBar', function () {
207
207
  it('has zero violations after filtering by Tags', function () {
208
208
  cy.get('button.euiButtonEmpty').last().focus();
209
209
  cy.realPress('Enter');
210
- cy.realPress('Tab');
211
210
  cy.realPress('ArrowDown');
212
211
  cy.realPress('Enter');
213
212
  cy.realPress('Escape');
@@ -28,7 +28,7 @@ var _selectable_list = require("./selectable_list.styles");
28
28
  var _react2 = require("@emotion/react");
29
29
  var _excluded = ["data"],
30
30
  _excluded2 = ["label", "isGroupLabel", "checked", "disabled", "prepend", "append", "ref", "key", "searchableLabel", "data", "truncationProps"],
31
- _excluded3 = ["className", "options", "searchValue", "onOptionClick", "renderOption", "height", "windowProps", "rowHeight", "activeOptionIndex", "makeOptionId", "showIcons", "singleSelection", "visibleOptions", "allowExclusions", "bordered", "paddingSize", "searchable", "onFocusBadge", "listId", "setActiveOptionIndex", "aria-label", "aria-labelledby", "aria-describedby", "role", "isPreFiltered", "isVirtualized", "textWrap", "truncationProps"];
31
+ _excluded3 = ["className", "options", "searchValue", "onOptionClick", "renderOption", "height", "windowProps", "rowHeight", "activeOptionIndex", "makeOptionId", "showIcons", "singleSelection", "visibleOptions", "allowExclusions", "bordered", "paddingSize", "searchable", "onFocusBadge", "listId", "setActiveOptionIndex", "aria-label", "aria-labelledby", "aria-describedby", "role", "isPreFiltered", "isVirtualized", "textWrap", "truncationProps", "autoFocus"];
32
32
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
33
33
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
34
34
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -70,6 +70,7 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
70
70
  listId = _this$props.listId,
71
71
  searchable = _this$props.searchable,
72
72
  singleSelection = _this$props.singleSelection,
73
+ autoFocus = _this$props.autoFocus,
73
74
  ariaLabel = _this$props['aria-label'],
74
75
  ariaLabelledby = _this$props['aria-labelledby'],
75
76
  ariaDescribedby = _this$props['aria-describedby'];
@@ -90,6 +91,13 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
90
91
  if (typeof ariaDescribedby === 'string') {
91
92
  ref.setAttribute('aria-describedby', ariaDescribedby);
92
93
  }
94
+ if (autoFocus === true) {
95
+ // manually focus listbox once available
96
+ // use last stack execution to prevent potential focus order issues
97
+ setTimeout(function () {
98
+ return ref.focus();
99
+ });
100
+ }
93
101
  }
94
102
  });
95
103
  // This utility is necessary to exclude group labels from the aria set count
@@ -543,6 +551,7 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
543
551
  isVirtualized = _this$props11.isVirtualized,
544
552
  textWrap = _this$props11.textWrap,
545
553
  truncationProps = _this$props11.truncationProps,
554
+ autoFocus = _this$props11.autoFocus,
546
555
  rest = (0, _objectWithoutProperties2.default)(_this$props11, _excluded3);
547
556
  var heightIsFull = forcedHeight === 'full';
548
557
  var classes = (0, _classnames.default)('euiSelectableList', className);
@@ -92,7 +92,6 @@ var EuiSideNavItem = exports.EuiSideNavItem = function EuiSideNavItem(_ref2) {
92
92
  buttonClassName = _ref2.buttonClassName,
93
93
  childrenOnly = _ref2.childrenOnly,
94
94
  rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
95
- var euiTheme = (0, _services.useEuiTheme)();
96
95
  var isHrefValid = !_href || (0, _href_validator.validateHref)(_href);
97
96
  var href = isHrefValid ? _href : '';
98
97
 
@@ -121,14 +120,14 @@ var EuiSideNavItem = exports.EuiSideNavItem = function EuiSideNavItem(_ref2) {
121
120
  'euiSideNavItem--emphasized': emphasize,
122
121
  'euiSideNavItem-hasChildItems': hasChildItems
123
122
  }, className);
124
- var styles = (0, _side_nav_item.euiSideNavItemStyles)(euiTheme);
123
+ var styles = (0, _services.useEuiMemoizedStyles)(_side_nav_item.euiSideNavItemStyles);
125
124
  var cssStyles = [styles.euiSideNavItem, isRoot && styles.root, isTrunk && styles.trunk, isBranch && styles.branch, emphasize && styles.emphasized, css];
126
125
  var itemsStyles = hasChildItems && [styles.items.euiSideNavItem__items, isRoot && icon && styles.items.rootWithIcon, isTrunk && styles.items.trunk, isBranch && styles.items.branch];
127
126
  var buttonClasses = (0, _classnames.default)('euiSideNavItemButton', {
128
127
  'euiSideNavItemButton-isOpen': depth > 0 && itemIsOpen && !isSelected,
129
128
  'euiSideNavItemButton-isSelected': isSelected
130
129
  }, buttonClassName);
131
- var buttonStyles = (0, _side_nav_item.euiSideNavItemButtonStyles)(euiTheme);
130
+ var buttonStyles = (0, _services.useEuiMemoizedStyles)(_side_nav_item.euiSideNavItemButtonStyles);
132
131
  var buttonCssStyles = [buttonStyles.euiSideNavItemButton, isSelected && buttonStyles.selected, emphasize && buttonStyles.emphasized, isRoot && buttonStyles.root, isTrunk && buttonStyles.trunk, isBranch && buttonStyles.branch];
133
132
  var labelCssStyles = [buttonStyles.label.euiSideNavItemButton__label, isRoot && buttonStyles.label.root];
134
133
  return (0, _react2.jsx)("div", {
@@ -68,6 +68,7 @@ var EuiTab = exports.EuiTab = function EuiTab(_ref) {
68
68
  return (0, _react2.jsx)("a", (0, _extends2.default)({
69
69
  role: "tab",
70
70
  "aria-selected": !!isSelected,
71
+ tabIndex: isSelected ? 0 : -1,
71
72
  className: classes,
72
73
  css: cssTabStyles,
73
74
  href: href,
@@ -81,6 +82,7 @@ var EuiTab = exports.EuiTab = function EuiTab(_ref) {
81
82
  return (0, _react2.jsx)("button", (0, _extends2.default)({
82
83
  role: "tab",
83
84
  "aria-selected": !!isSelected,
85
+ tabIndex: isSelected ? 0 : -1,
84
86
  type: "button",
85
87
  className: classes,
86
88
  css: cssTabStyles,
@@ -38,10 +38,26 @@ var EuiTabs = exports.EuiTabs = /*#__PURE__*/(0, _react.forwardRef)(function (_r
38
38
  var classes = (0, _classnames.default)('euiTabs', className);
39
39
  var styles = (0, _services.useEuiMemoizedStyles)(_tabs.euiTabsStyles);
40
40
  var cssStyles = [styles.euiTabs, styles[size], bottomBorder && styles.bottomBorder];
41
+ var handleKeyDown = function handleKeyDown(event) {
42
+ var tablist = event.currentTarget;
43
+ var tabs = tablist === null || tablist === void 0 ? void 0 : tablist.querySelectorAll('[role="tab"]:not(:disabled, [inert])');
44
+ if (!(tabs !== null && tabs !== void 0 && tabs.length)) return;
45
+ var currentIndex = Array.from(tabs).findIndex(function (tab) {
46
+ return tab.matches(':focus');
47
+ });
48
+ if (event.key === _services.keys.ARROW_LEFT) {
49
+ var previousIndex = (currentIndex === 0 ? tabs.length : currentIndex) - 1;
50
+ tabs[previousIndex].focus();
51
+ } else if (event.key === _services.keys.ARROW_RIGHT) {
52
+ var nextIndex = currentIndex === tabs.length - 1 ? 0 : currentIndex + 1;
53
+ tabs[nextIndex].focus();
54
+ }
55
+ };
41
56
  return (0, _react2.jsx)("div", (0, _extends2.default)({
42
57
  ref: ref,
43
58
  className: classes,
44
- css: cssStyles
59
+ css: cssStyles,
60
+ onKeyDown: handleKeyDown
45
61
  }, children && {
46
62
  role: 'tablist'
47
63
  }, rest), (0, _react2.jsx)(_tabs_context.EuiTabsContext.Provider, {
@@ -46,8 +46,7 @@ var useEuiTextDiff = exports.useEuiTextDiff = function useEuiTextDiff(_ref) {
46
46
  return diff.main(beforeText, afterText);
47
47
  }, [beforeText, afterText, timeout]); // produces diff array
48
48
 
49
- var euiTheme = (0, _services.useEuiTheme)();
50
- var styles = (0, _text_diff.euiTextDiffStyles)(euiTheme);
49
+ var styles = (0, _services.useEuiMemoizedStyles)(_text_diff.euiTextDiffStyles);
51
50
  var classes = (0, _classnames.default)('euiTextDiff', className);
52
51
  var rendereredHtml = (0, _react.useMemo)(function () {
53
52
  var html = [];
@@ -21,11 +21,8 @@ var EuiGlobalToastListItem = exports.EuiGlobalToastListItem = function EuiGlobal
21
21
  var children = _ref.children,
22
22
  className = _ref.className,
23
23
  isDismissed = _ref.isDismissed;
24
- var euiTheme = (0, _services.useEuiTheme)();
25
- if (!children) {
26
- return null;
27
- }
28
- var styles = (0, _global_toast_list.euiGlobalToastListItemStyles)(euiTheme);
24
+ var styles = (0, _services.useEuiMemoizedStyles)(_global_toast_list.euiGlobalToastListItemStyles);
25
+ if (!children) return null;
29
26
  var cssStyles = [styles.euiGlobalToastListItem, isDismissed && styles.dismissed];
30
27
  var classes = (0, _classnames.default)('euiGlobalToastListItem', children.props.className, className);
31
28
  return (0, _services.cloneElementWithCss)(children, _objectSpread(_objectSpread({}, children.props), {
@@ -32,8 +32,7 @@ var EuiTourFooter = exports.EuiTourFooter = /*#__PURE__*/(0, _react.memo)(functi
32
32
  step = _ref.step,
33
33
  stepsTotal = _ref.stepsTotal,
34
34
  onFinish = _ref.onFinish;
35
- var euiTheme = (0, _services.useEuiTheme)();
36
- var footerStyles = (0, _tour_footer.euiTourFooterStyles)(euiTheme);
35
+ var footerStyles = (0, _services.useEuiMemoizedStyles)(_tour_footer.euiTourFooterStyles);
37
36
  var customFooterAction = (0, _react.useMemo)(function () {
38
37
  if (!footerAction) return null;
39
38
  return Array.isArray(footerAction) ? (0, _react2.jsx)(_flex.EuiFlexGroup, {
@@ -25,8 +25,7 @@ var EuiTourHeader = exports.EuiTourHeader = /*#__PURE__*/(0, _react.memo)(functi
25
25
  var id = _ref.id,
26
26
  title = _ref.title,
27
27
  subtitle = _ref.subtitle;
28
- var euiTheme = (0, _services.useEuiTheme)();
29
- var headerStyles = (0, _tour_header.euiTourHeaderStyles)(euiTheme);
28
+ var headerStyles = (0, _services.useEuiMemoizedStyles)(_tour_header.euiTourHeaderStyles);
30
29
  return (0, _react2.jsx)(_popover.EuiPopoverTitle, {
31
30
  css: headerStyles.euiTourHeader,
32
31
  className: "euiTourHeader",
@@ -12,10 +12,10 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
12
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
13
  var _react = _interopRequireWildcard(require("react"));
14
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
+ var _services = require("../../services");
15
16
  var _global_styling = require("../../global_styling");
16
- var _beacon = require("../beacon");
17
17
  var _popover = require("../popover");
18
- var _services = require("../../services");
18
+ var _beacon = require("../beacon");
19
19
  var _tour_header = require("./_tour_header");
20
20
  var _tour_footer = require("./_tour_footer");
21
21
  var _tour = require("./tour.styles");
@@ -93,9 +93,8 @@ var EuiTourStep = exports.EuiTourStep = function EuiTourStep(_ref) {
93
93
  }, [anchor]);
94
94
  var anchorClasses = (0, _classnames.default)('euiTourAnchor', className);
95
95
  var popoverClasses = (0, _classnames.default)('euiTour', panelClassName);
96
- var euiTheme = (0, _services.useEuiTheme)();
97
- var tourStyles = (0, _tour.euiTourStyles)(euiTheme);
98
- var beaconStyles = (0, _tour.euiTourBeaconStyles)(euiTheme);
96
+ var tourStyles = (0, _services.useEuiMemoizedStyles)(_tour.euiTourStyles);
97
+ var beaconStyles = (0, _services.useEuiMemoizedStyles)(_tour.euiTourBeaconStyles);
99
98
  var beaconCss = [beaconStyles.euiTourBeacon, isStepOpen && beaconStyles.isOpen, popoverPosition && beaconStyles[popoverPosition]];
100
99
  var hasBeacon = decoration === 'beacon';
101
100
  var widthStyles = (0, _react.useMemo)(function () {
@@ -38,8 +38,7 @@ var EuiTreeViewItem = exports.EuiTreeViewItem = /*#__PURE__*/(0, _react.memo)(fu
38
38
  buttonRef = _ref.buttonRef,
39
39
  wrapperProps = _ref.wrapperProps,
40
40
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
41
- var euiTheme = (0, _services.useEuiTheme)();
42
- var styles = (0, _tree_view_item.euiTreeViewItemStyles)(euiTheme);
41
+ var styles = (0, _services.useEuiMemoizedStyles)(_tree_view_item.euiTreeViewItemStyles);
43
42
  var wrapperClasses = (0, _classnames.default)('euiTreeView__node', {
44
43
  'euiTreeView__node--expanded': isExpanded
45
44
  }, wrapperProps === null || wrapperProps === void 0 ? void 0 : wrapperProps.className);