@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
@@ -9,6 +9,8 @@ var _react = require("@emotion/react");
9
9
 
10
10
  var _mixins = require("../../../themes/amsterdam/global_styling/mixins");
11
11
 
12
+ var _functions = require("../../../themes/amsterdam/global_styling/functions");
13
+
12
14
  var _global_styling = require("../../../global_styling");
13
15
 
14
16
  /*
@@ -28,7 +30,8 @@ var translateDistance = 's';
28
30
  */
29
31
 
30
32
  var euiPopoverPanelStyles = function euiPopoverPanelStyles(euiThemeContext) {
31
- var euiTheme = euiThemeContext.euiTheme;
33
+ var euiTheme = euiThemeContext.euiTheme,
34
+ colorMode = euiThemeContext.colorMode;
32
35
  return {
33
36
  // Base
34
37
  euiPopover__panel: /*#__PURE__*/(0, _react.css)("position:absolute;", (0, _global_styling.logicalCSS)('min-width', "".concat(euiTheme.base * 7, "px")), ";", (0, _global_styling.logicalCSS)('max-width', "calc(100vw - ".concat(euiTheme.size.xl, ")")), ";backface-visibility:hidden;pointer-events:none;opacity:0;transform:translateY(0) translateX(0) translateZ(0);", (0, _mixins.euiShadowMedium)(euiThemeContext, {
@@ -49,6 +52,18 @@ var euiPopoverPanelStyles = function euiPopoverPanelStyles(euiThemeContext) {
49
52
  // Satisfies TS
50
53
  left: /*#__PURE__*/(0, _react.css)(";label:left;"),
51
54
  right: /*#__PURE__*/(0, _react.css)(";label:right;")
55
+ },
56
+ // Overrides for drag & drop contexts within popovers. This is required because
57
+ // the fixed positions of drag and drop don't work inside of transformed elements
58
+ hasDragDrop: {
59
+ hasDragDrop: /*#__PURE__*/(0, _react.css)("transform:none;filter:none;", (0, _mixins.euiShadowMedium)(euiThemeContext, {
60
+ property: 'box-shadow'
61
+ }), ";;label:hasDragDrop;"),
62
+ // The offset transforms must be recreated in margins
63
+ top: /*#__PURE__*/(0, _react.css)("margin-block-start:", euiTheme.size[translateDistance], ";;label:top;"),
64
+ bottom: /*#__PURE__*/(0, _react.css)("margin-block-start:-", euiTheme.size[translateDistance], ";.euiPopover__arrow{filter:drop-shadow(\n 0 -6px 6px ", (0, _functions.getShadowColor)(euiTheme.colors.shadow, 0.12, colorMode), "\n );};label:bottom;"),
65
+ left: /*#__PURE__*/(0, _react.css)("margin-inline-start:", euiTheme.size[translateDistance], ";.euiPopover__arrow{filter:drop-shadow(\n 6px 0 6px ", (0, _functions.getShadowColor)(euiTheme.colors.shadow, 0.12, colorMode), "\n );};label:left;"),
66
+ right: /*#__PURE__*/(0, _react.css)("margin-inline-start:-", euiTheme.size[translateDistance], ";.euiPopover__arrow{filter:drop-shadow(\n -6px 0 6px ", (0, _functions.getShadowColor)(euiTheme.colors.shadow, 0.12, colorMode), "\n );};label:right;")
52
67
  }
53
68
  };
54
69
  };
@@ -45,6 +45,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
45
45
 
46
46
  var _react = _interopRequireWildcard(require("react"));
47
47
 
48
+ var _accessibility = require("../../services/accessibility");
49
+
48
50
  var _predicate = require("../../services/predicate");
49
51
 
50
52
  var _flex = require("../flex");
@@ -63,6 +65,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
63
65
 
64
66
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
65
67
 
68
+ 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; }
69
+
70
+ 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; }
71
+
66
72
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
67
73
 
68
74
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -97,6 +103,7 @@ var EuiSearchBar = /*#__PURE__*/function (_Component) {
97
103
 
98
104
  (0, _classCallCheck2.default)(this, EuiSearchBar);
99
105
  _this = _super.call(this, props);
106
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hintId", (0, _accessibility.htmlIdGenerator)('__hint')());
100
107
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onSearch", function (queryText) {
101
108
  try {
102
109
  var query = parseQuery(queryText, _this.props);
@@ -152,7 +159,8 @@ var EuiSearchBar = /*#__PURE__*/function (_Component) {
152
159
  _this.state = {
153
160
  query: _query,
154
161
  queryText: _query.text,
155
- error: null
162
+ error: null,
163
+ isHintVisible: false
156
164
  };
157
165
  return _this;
158
166
  }
@@ -214,10 +222,15 @@ var EuiSearchBar = /*#__PURE__*/function (_Component) {
214
222
  }, {
215
223
  key: "render",
216
224
  value: function render() {
225
+ var _hint$popoverProps$is,
226
+ _hint$popoverProps,
227
+ _this2 = this;
228
+
217
229
  var _this$state = this.state,
218
230
  query = _this$state.query,
219
231
  queryText = _this$state.queryText,
220
- error = _this$state.error;
232
+ error = _this$state.error,
233
+ isHintVisibleState = _this$state.isHintVisible;
221
234
  var _this$props = this.props,
222
235
  _this$props$box = _this$props.box;
223
236
  _this$props$box = _this$props$box === void 0 ? {
@@ -227,7 +240,8 @@ var EuiSearchBar = /*#__PURE__*/function (_Component) {
227
240
  box = (0, _objectWithoutProperties2.default)(_this$props$box, _excluded),
228
241
  filters = _this$props.filters,
229
242
  toolsLeft = _this$props.toolsLeft,
230
- toolsRight = _this$props.toolsRight;
243
+ toolsRight = _this$props.toolsRight,
244
+ hint = _this$props.hint;
231
245
  var toolsLeftEl = this.renderTools(toolsLeft);
232
246
  var filtersBar = !filters ? undefined : (0, _react2.jsx)(_flex.EuiFlexItem, {
233
247
  className: "euiSearchBar__filtersHolder",
@@ -238,6 +252,7 @@ var EuiSearchBar = /*#__PURE__*/function (_Component) {
238
252
  onChange: this.onFiltersChange
239
253
  }));
240
254
  var toolsRightEl = this.renderTools(toolsRight);
255
+ var isHintVisible = (_hint$popoverProps$is = hint === null || hint === void 0 ? void 0 : (_hint$popoverProps = hint.popoverProps) === null || _hint$popoverProps === void 0 ? void 0 : _hint$popoverProps.isOpen) !== null && _hint$popoverProps$is !== void 0 ? _hint$popoverProps$is : isHintVisibleState;
241
256
  return (0, _react2.jsx)(_flex.EuiFlexGroup, {
242
257
  gutterSize: "m",
243
258
  alignItems: "center",
@@ -249,7 +264,17 @@ var EuiSearchBar = /*#__PURE__*/function (_Component) {
249
264
  query: queryText,
250
265
  onSearch: this.onSearch,
251
266
  isInvalid: error != null,
252
- title: error ? error.message : undefined
267
+ title: error ? error.message : undefined,
268
+ "aria-describedby": isHintVisible ? "".concat(this.hintId) : undefined,
269
+ hint: hint ? _objectSpread({
270
+ isVisible: isHintVisible,
271
+ setIsVisible: function setIsVisible(isVisible) {
272
+ _this2.setState({
273
+ isHintVisible: isVisible
274
+ });
275
+ },
276
+ id: this.hintId
277
+ }, hint) : undefined
253
278
  }))), filtersBar, toolsRightEl);
254
279
  }
255
280
  }], [{
@@ -260,7 +285,8 @@ var EuiSearchBar = /*#__PURE__*/function (_Component) {
260
285
  return {
261
286
  query: query,
262
287
  queryText: query.text,
263
- error: null
288
+ error: null,
289
+ isHintVisible: prevState.isHintVisible
264
290
  };
265
291
  }
266
292
 
@@ -451,6 +477,14 @@ EuiSearchBar.propTypes = {
451
477
  * Date formatter to use when parsing date values
452
478
  */
453
479
  dateFormat: _propTypes.default.any,
480
+
481
+ /**
482
+ * Hint to render below the search bar
483
+ */
484
+ hint: _propTypes.default.shape({
485
+ content: _propTypes.default.node.isRequired,
486
+ popoverProps: _propTypes.default.any
487
+ }),
454
488
  className: _propTypes.default.string,
455
489
  "aria-label": _propTypes.default.string,
456
490
  "data-test-subj": _propTypes.default.string,
@@ -33,9 +33,11 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
33
33
 
34
34
  var _form = require("../form");
35
35
 
36
+ var _popover = require("../popover");
37
+
36
38
  var _react2 = require("@emotion/react");
37
39
 
38
- var _excluded = ["query", "incremental"];
40
+ var _excluded = ["query", "incremental", "hint"];
39
41
 
40
42
  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); }
41
43
 
@@ -80,6 +82,7 @@ var EuiSearchBox = /*#__PURE__*/function (_Component) {
80
82
  var _this$props = this.props,
81
83
  query = _this$props.query,
82
84
  incremental = _this$props.incremental,
85
+ hint = _this$props.hint,
83
86
  rest = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
84
87
  var ariaLabel;
85
88
 
@@ -89,15 +92,39 @@ var EuiSearchBox = /*#__PURE__*/function (_Component) {
89
92
  ariaLabel = 'This is a search bar. After typing your query, hit enter to filter the results lower in the page.';
90
93
  }
91
94
 
92
- return (0, _react2.jsx)(_form.EuiFieldSearch, (0, _extends2.default)({
95
+ var search = (0, _react2.jsx)(_form.EuiFieldSearch, (0, _extends2.default)({
93
96
  inputRef: function inputRef(input) {
94
97
  return _this2.inputElement = input;
95
98
  },
96
99
  fullWidth: true,
97
100
  defaultValue: query,
98
101
  incremental: incremental,
99
- "aria-label": ariaLabel
102
+ "aria-label": ariaLabel,
103
+ onFocus: function onFocus() {
104
+ hint === null || hint === void 0 ? void 0 : hint.setIsVisible(true);
105
+ }
100
106
  }, rest));
107
+
108
+ if (hint) {
109
+ return (0, _react2.jsx)(_popover.EuiInputPopover, (0, _extends2.default)({
110
+ disableFocusTrap: true,
111
+ input: search,
112
+ isOpen: hint.isVisible,
113
+ fullWidth: true,
114
+ closePopover: function closePopover() {
115
+ hint.setIsVisible(false);
116
+ },
117
+ panelProps: {
118
+ 'aria-live': undefined,
119
+ 'aria-modal': undefined,
120
+ role: undefined,
121
+ tabIndex: -1,
122
+ id: hint.id
123
+ }
124
+ }, hint.popoverProps), hint.content);
125
+ }
126
+
127
+ return search;
101
128
  }
102
129
  }]);
103
130
  return EuiSearchBox;
@@ -111,5 +138,12 @@ exports.EuiSearchBox = EuiSearchBox;
111
138
  EuiSearchBox.propTypes = {
112
139
  query: _propTypes.default.string.isRequired,
113
140
  // This is optional in EuiFieldSearchProps
114
- onSearch: _propTypes.default.func.isRequired
141
+ onSearch: _propTypes.default.func.isRequired,
142
+ hint: _propTypes.default.shape({
143
+ id: _propTypes.default.string.isRequired,
144
+ isVisible: _propTypes.default.bool.isRequired,
145
+ setIsVisible: _propTypes.default.func.isRequired,
146
+ content: _propTypes.default.node.isRequired,
147
+ popoverProps: _propTypes.default.any
148
+ })
115
149
  };
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
+
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+
11
+ var _react = _interopRequireWildcard(require("react"));
12
+
13
+ var _button = require("../button");
14
+
15
+ var _popover = require("../popover");
16
+
17
+ var _selectable = require("./selectable");
18
+
19
+ var _react2 = require("@emotion/react");
20
+
21
+ 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); }
22
+
23
+ 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; }
24
+
25
+ /*
26
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
27
+ * or more contributor license agreements. Licensed under the Elastic License
28
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
29
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
30
+ * Side Public License, v 1.
31
+ */
32
+ /// <reference types="../../../cypress/support"/>
33
+ var options = [{
34
+ label: 'Titan',
35
+ 'data-test-subj': 'titanOption'
36
+ }, {
37
+ label: 'Enceladus'
38
+ }, {
39
+ label: "Pandora is one of Saturn's moons, named for a Titaness of Greek mythology"
40
+ }];
41
+
42
+ var EuiSelectableListboxOnly = function EuiSelectableListboxOnly(args) {
43
+ return (0, _react2.jsx)(_selectable.EuiSelectable, (0, _extends2.default)({
44
+ options: options
45
+ }, args), function (list) {
46
+ return (0, _react2.jsx)(_react.default.Fragment, null, list);
47
+ });
48
+ };
49
+
50
+ var EuiSelectableWithSearchInput = function EuiSelectableWithSearchInput(args) {
51
+ return (0, _react2.jsx)(_selectable.EuiSelectable, (0, _extends2.default)({
52
+ searchable: true,
53
+ options: options
54
+ }, args), function (list, search) {
55
+ return (0, _react2.jsx)(_react.default.Fragment, null, search, list);
56
+ });
57
+ };
58
+
59
+ describe('EuiSelectable', function () {
60
+ describe('with a `searchable` configuration', function () {
61
+ it('has no accessibility errors', function () {
62
+ var onChange = cy.stub();
63
+ cy.realMount((0, _react2.jsx)(EuiSelectableWithSearchInput, {
64
+ onChange: onChange
65
+ }));
66
+ cy.checkAxe();
67
+ });
68
+ });
69
+ describe('without a `searchable` configuration', function () {
70
+ it('has no accessibility errors', function () {
71
+ var onChange = cy.stub();
72
+ cy.realMount((0, _react2.jsx)(EuiSelectableListboxOnly, {
73
+ "aria-label": "No search box",
74
+ onChange: onChange
75
+ }));
76
+ cy.checkAxe();
77
+ });
78
+ });
79
+ describe('nested in `EuiPopover` component', function () {
80
+ var EuiSelectableNested = function EuiSelectableNested() {
81
+ var _useState = (0, _react.useState)(false),
82
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
83
+ isPopoverOpen = _useState2[0],
84
+ setIsPopoverOpen = _useState2[1];
85
+
86
+ var onChange = function onChange() {};
87
+
88
+ var onClosePopover = function onClosePopover() {};
89
+
90
+ var onButtonClick = function onButtonClick() {
91
+ setIsPopoverOpen(!isPopoverOpen);
92
+ };
93
+
94
+ var button = (0, _react2.jsx)(_button.EuiButton, {
95
+ iconType: "arrowDown",
96
+ iconSide: "right",
97
+ onClick: onButtonClick
98
+ }, "Show popover");
99
+ return (0, _react2.jsx)(_popover.EuiPopover, {
100
+ id: "data-cy-popover-1",
101
+ panelPaddingSize: "s",
102
+ button: button,
103
+ isOpen: isPopoverOpen,
104
+ closePopover: onClosePopover
105
+ }, (0, _react2.jsx)(EuiSelectableWithSearchInput, {
106
+ "aria-label": "With popover",
107
+ options: options,
108
+ onChange: onChange
109
+ }, function (list) {
110
+ return (0, _react2.jsx)(_react.default.Fragment, null, list);
111
+ }));
112
+ };
113
+
114
+ it('has no accessibility errors', function () {
115
+ cy.realMount((0, _react2.jsx)(EuiSelectableNested, null));
116
+ cy.get('button').realClick();
117
+ cy.get('li[role=option]').first(); // Make sure the EuiSelectable is rendered before a11y check
118
+
119
+ cy.checkAxe();
120
+ });
121
+ });
122
+ });
@@ -584,25 +584,28 @@ var EuiSelectable = /*#__PURE__*/function (_Component) {
584
584
  }], [{
585
585
  key: "getDerivedStateFromProps",
586
586
  value: function getDerivedStateFromProps(nextProps, prevState) {
587
+ var _stateUpdate$searchVa;
588
+
587
589
  var options = nextProps.options,
588
590
  isPreFiltered = nextProps.isPreFiltered,
589
591
  searchProps = nextProps.searchProps;
590
592
  var activeOptionIndex = prevState.activeOptionIndex,
591
593
  searchValue = prevState.searchValue;
592
- var matchingOptions = (0, _matching_options.getMatchingOptions)(options, searchValue, isPreFiltered);
593
594
  var stateUpdate = {
594
- visibleOptions: matchingOptions,
595
+ searchValue: searchValue,
595
596
  activeOptionIndex: activeOptionIndex
596
597
  };
597
598
 
598
- if (activeOptionIndex != null && activeOptionIndex >= matchingOptions.length) {
599
- stateUpdate.activeOptionIndex = -1;
600
- }
601
-
602
599
  if ((searchProps === null || searchProps === void 0 ? void 0 : searchProps.value) != null && searchProps.value !== searchValue) {
603
600
  stateUpdate.searchValue = searchProps.value;
604
601
  }
605
602
 
603
+ stateUpdate.visibleOptions = (0, _matching_options.getMatchingOptions)(options, (_stateUpdate$searchVa = stateUpdate.searchValue) !== null && _stateUpdate$searchVa !== void 0 ? _stateUpdate$searchVa : '', isPreFiltered);
604
+
605
+ if (activeOptionIndex != null && activeOptionIndex >= stateUpdate.visibleOptions.length) {
606
+ stateUpdate.activeOptionIndex = -1;
607
+ }
608
+
606
609
  return stateUpdate;
607
610
  }
608
611
  }]);
@@ -21,9 +21,11 @@ var _services = require("../../services");
21
21
 
22
22
  var _href_validator = require("../../services/security/href_validator");
23
23
 
24
+ var _tab = require("./tab.styles");
25
+
24
26
  var _react2 = require("@emotion/react");
25
27
 
26
- var _excluded = ["isSelected", "children", "className", "disabled", "href", "target", "rel", "prepend", "append"];
28
+ var _excluded = ["isSelected", "children", "className", "disabled", "href", "target", "rel", "prepend", "append", "size", "expand"];
27
29
 
28
30
  var EuiTab = function EuiTab(_ref) {
29
31
  var isSelected = _ref.isSelected,
@@ -35,13 +37,20 @@ var EuiTab = function EuiTab(_ref) {
35
37
  rel = _ref.rel,
36
38
  prepend = _ref.prepend,
37
39
  append = _ref.append,
40
+ size = _ref.size,
41
+ expand = _ref.expand,
38
42
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
43
+ var euiTheme = (0, _services.useEuiTheme)();
39
44
  var isHrefValid = !href || (0, _href_validator.validateHref)(href);
40
- var disabled = _disabled || !isHrefValid;
45
+ var disabled = _disabled || !isHrefValid; // Keep CSS classnames for reference
46
+
41
47
  var classes = (0, _classnames.default)('euiTab', className, {
42
- 'euiTab-isSelected': isSelected,
43
- 'euiTab-isDisabled': disabled
48
+ 'euiTab-isSelected': isSelected
44
49
  });
50
+ var tabStyles = (0, _tab.euiTabStyles)(euiTheme);
51
+ var cssTabStyles = [tabStyles.euiTab, expand && tabStyles.expanded, disabled && tabStyles.disabled.disabled, isSelected && (disabled ? tabStyles.disabled.selected : tabStyles.selected)];
52
+ var tabContentStyles = (0, _tab.euiTabContentStyles)(euiTheme);
53
+ var cssTabContentStyles = [tabContentStyles.euiTab__content, size && tabContentStyles[size], isSelected && tabContentStyles.selected, disabled && tabContentStyles.disabled];
45
54
  var prependNode = prepend && (0, _react2.jsx)("span", {
46
55
  className: "euiTab__prepend"
47
56
  }, prepend);
@@ -60,11 +69,13 @@ var EuiTab = function EuiTab(_ref) {
60
69
  role: "tab",
61
70
  "aria-selected": !!isSelected,
62
71
  className: classes,
72
+ css: cssTabStyles,
63
73
  href: href,
64
74
  target: target,
65
75
  rel: secureRel
66
76
  }, rest), prependNode, (0, _react2.jsx)("span", {
67
- className: "euiTab__content"
77
+ className: "euiTab__content",
78
+ css: cssTabContentStyles
68
79
  }, children), appendNode);
69
80
  }
70
81
 
@@ -73,9 +84,11 @@ var EuiTab = function EuiTab(_ref) {
73
84
  "aria-selected": !!isSelected,
74
85
  type: "button",
75
86
  className: classes,
87
+ css: cssTabStyles,
76
88
  disabled: disabled
77
89
  }, rest), prependNode, (0, _react2.jsx)("span", {
78
- className: "euiTab__content"
90
+ className: "euiTab__content",
91
+ css: cssTabContentStyles
79
92
  }, children), appendNode);
80
93
  };
81
94
 
@@ -105,6 +118,18 @@ EuiTab.propTypes = {
105
118
  * Will be excluded from interactive effects.
106
119
  */
107
120
  append: _propTypes.default.node,
121
+
122
+ /**
123
+ * Evenly stretches each tab to fill the
124
+ * horizontal space
125
+ */
126
+ expand: _propTypes.default.bool,
127
+
128
+ /**
129
+ * Sizes affect both font size and overall size.
130
+ * Only use the `xl` size when displayed as page titles.
131
+ */
132
+ size: _propTypes.default.any,
108
133
  className: _propTypes.default.string,
109
134
  "aria-label": _propTypes.default.string,
110
135
  "data-test-subj": _propTypes.default.string,
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiTabStyles = exports.euiTabContentStyles = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _global_styling = require("../../global_styling");
11
+
12
+ var _title = require("../title/title.styles");
13
+
14
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
15
+
16
+ var _ref2 = process.env.NODE_ENV === "production" ? {
17
+ name: "10tso78-expanded",
18
+ styles: "flex-basis:0%;flex-grow:1;justify-content:center;label:expanded;"
19
+ } : {
20
+ name: "10tso78-expanded",
21
+ styles: "flex-basis:0%;flex-grow:1;justify-content:center;label:expanded;",
22
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
23
+ };
24
+
25
+ var euiTabStyles = function euiTabStyles(_ref3) {
26
+ var euiTheme = _ref3.euiTheme;
27
+ return {
28
+ euiTab: /*#__PURE__*/(0, _react.css)("display:flex;cursor:pointer;flex-direction:row;align-items:center;font-weight:", euiTheme.font.weight.semiBold, ";gap:", euiTheme.size.s, ";", (0, _global_styling.logicalCSS)('padding-vertical', 0), " ", (0, _global_styling.logicalCSS)('padding-horizontal', euiTheme.size.xs), " &:focus{background-color:transparent;outline-offset:-", euiTheme.focus.width, ";};label:euiTab;"),
29
+ // variations
30
+ expanded: _ref2,
31
+ selected: /*#__PURE__*/(0, _react.css)("box-shadow:inset 0 -", euiTheme.border.width.thick, " 0 ", euiTheme.colors.primary, ";;label:selected;"),
32
+ disabled: {
33
+ disabled: /*#__PURE__*/(0, _react.css)("cursor:not-allowed;color:", euiTheme.colors.disabledText, ";;label:disabled;"),
34
+ selected: /*#__PURE__*/(0, _react.css)("box-shadow:inset 0 -", euiTheme.border.width.thick, " 0 ", euiTheme.colors.disabledText, ";;label:selected;")
35
+ }
36
+ };
37
+ };
38
+
39
+ exports.euiTabStyles = euiTabStyles;
40
+
41
+ var _ref = process.env.NODE_ENV === "production" ? {
42
+ name: "1yhgei9-euiTab__content",
43
+ styles: "&:hover{text-decoration:none;};label:euiTab__content;"
44
+ } : {
45
+ name: "1yhgei9-euiTab__content",
46
+ styles: "&:hover{text-decoration:none;};label:euiTab__content;",
47
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
48
+ };
49
+
50
+ var euiTabContentStyles = function euiTabContentStyles(euiThemeContext) {
51
+ var euiTheme = euiThemeContext.euiTheme;
52
+ return {
53
+ euiTab__content: _ref,
54
+ // sizes
55
+ s: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 'xxxs'), ";line-height:", euiTheme.size.xl, ";;label:s;"),
56
+ m: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 'xxs'), ";line-height:", euiTheme.size.xxl, ";;label:m;"),
57
+ l: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 'xs'), ";line-height:", (0, _global_styling.mathWithUnits)([euiTheme.size.xl, euiTheme.size.s], function (x, y) {
58
+ return x + y;
59
+ }), ";;label:l;"),
60
+ xl: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 's'), ";line-height:", (0, _global_styling.mathWithUnits)([euiTheme.size.xxxl, euiTheme.size.s], function (x, y) {
61
+ return x + y;
62
+ }), ";;label:xl;"),
63
+ // variations
64
+ selected: /*#__PURE__*/(0, _react.css)("color:", euiTheme.colors.primaryText, ";;label:selected;"),
65
+ disabled: /*#__PURE__*/(0, _react.css)("color:", euiTheme.colors.disabledText, ";;label:disabled;")
66
+ };
67
+ };
68
+
69
+ exports.euiTabContentStyles = euiTabContentStyles;
@@ -236,6 +236,18 @@ EuiTabbedContent.propTypes = {
236
236
  * Will be excluded from interactive effects.
237
237
  */
238
238
  append: _propTypes.default.node,
239
+
240
+ /**
241
+ * Evenly stretches each tab to fill the
242
+ * horizontal space
243
+ */
244
+ expand: _propTypes.default.bool,
245
+
246
+ /**
247
+ * Sizes affect both font size and overall size.
248
+ * Only use the `xl` size when displayed as page titles.
249
+ */
250
+ size: _propTypes.default.any,
239
251
  className: _propTypes.default.string,
240
252
  "aria-label": _propTypes.default.string,
241
253
  "data-test-subj": _propTypes.default.string,
@@ -254,12 +266,14 @@ EuiTabbedContent.propTypes = {
254
266
  disabled: _propTypes.default.bool,
255
267
  prepend: _propTypes.default.node,
256
268
  append: _propTypes.default.node,
269
+ expand: _propTypes.default.bool,
270
+ size: _propTypes.default.any,
257
271
  className: _propTypes.default.string,
258
272
  "aria-label": _propTypes.default.string,
259
273
  "data-test-subj": _propTypes.default.string,
260
274
  css: _propTypes.default.any
261
275
  }),
262
- size: _propTypes.default.oneOf(["s", "m", "l", "xl"]),
276
+ size: _propTypes.default.any,
263
277
 
264
278
  /**
265
279
  * Each tab needs id and content properties, so we can associate it with its panel for accessibility.
@@ -273,6 +287,8 @@ EuiTabbedContent.propTypes = {
273
287
  disabled: _propTypes.default.bool,
274
288
  prepend: _propTypes.default.node,
275
289
  append: _propTypes.default.node,
290
+ expand: _propTypes.default.bool,
291
+ size: _propTypes.default.any,
276
292
  className: _propTypes.default.string,
277
293
  "aria-label": _propTypes.default.string,
278
294
  "data-test-subj": _propTypes.default.string,
@@ -17,7 +17,11 @@ var _react = _interopRequireWildcard(require("react"));
17
17
 
18
18
  var _classnames = _interopRequireDefault(require("classnames"));
19
19
 
20
- var _common = require("../common");
20
+ var _services = require("../../services");
21
+
22
+ var _clone_element = require("../../services/theme/clone_element");
23
+
24
+ var _tabs = require("./tabs.styles");
21
25
 
22
26
  var _react2 = require("@emotion/react");
23
27
 
@@ -27,13 +31,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
27
31
 
28
32
  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; }
29
33
 
30
- var sizeToClassNameMap = {
31
- s: 'euiTabs--small',
32
- m: null,
33
- l: 'euiTabs--large',
34
- xl: 'euiTabs--xlarge'
35
- };
36
- var SIZES = (0, _common.keysOf)(sizeToClassNameMap);
34
+ var SIZES = ['s', 'm', 'l', 'xl'];
37
35
  exports.SIZES = SIZES;
38
36
  var EuiTabs = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
39
37
  var children = _ref.children,
@@ -45,16 +43,28 @@ var EuiTabs = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
45
43
  _ref$size = _ref.size,
46
44
  size = _ref$size === void 0 ? 'm' : _ref$size,
47
45
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
48
- var classes = (0, _classnames.default)('euiTabs', sizeToClassNameMap[size], {
49
- 'euiTabs--expand': expand,
50
- 'euiTabs--bottomBorder': bottomBorder
51
- }, className);
46
+ var euiTheme = (0, _services.useEuiTheme)();
47
+ var classes = (0, _classnames.default)('euiTabs', className);
48
+ var styles = (0, _tabs.euiTabsStyles)(euiTheme);
49
+ var cssStyles = [styles.euiTabs, styles[size], bottomBorder && styles.bottomBorder];
50
+
51
+ var tabItems = _react.default.Children.map(children, function (child) {
52
+ if ( /*#__PURE__*/_react.default.isValidElement(child)) {
53
+ return (0, _clone_element.cloneElementWithCss)(child, {
54
+ // we're passing the parent `size` and `expand` down to the children
55
+ size: size,
56
+ expand: expand
57
+ });
58
+ }
59
+ });
60
+
52
61
  return (0, _react2.jsx)("div", (0, _extends2.default)({
53
62
  ref: ref,
54
- className: classes
63
+ className: classes,
64
+ css: cssStyles
55
65
  }, children && {
56
66
  role: 'tablist'
57
- }, rest), children);
67
+ }, rest), tabItems);
58
68
  });
59
69
  exports.EuiTabs = EuiTabs;
60
70
  EuiTabs.displayName = 'EuiTabs';