@elastic/eui 70.0.0 → 70.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 (128) hide show
  1. package/dist/eui_theme_dark.css +0 -179
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +0 -179
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/badge/beta_badge/beta_badge.js +6 -6
  6. package/es/components/basic_table/in_memory_table.js +8 -0
  7. package/es/components/button/button_display/_button_display.js +7 -6
  8. package/es/components/button/button_display/_button_display.styles.js +4 -4
  9. package/es/components/button/button_display/_button_display_content.js +6 -9
  10. package/es/components/button/button_display/_button_display_content.styles.js +3 -41
  11. package/es/components/datagrid/controls/column_selector.js +1 -1
  12. package/es/components/datagrid/controls/column_sorting.js +1 -1
  13. package/es/components/header/header_links/header_links.js +6 -0
  14. package/es/components/loading/loading_spinner.js +14 -3
  15. package/es/components/loading/loading_spinner.styles.js +11 -7
  16. package/es/components/modal/modal.js +17 -2
  17. package/es/components/page_template/page_template.js +6 -9
  18. package/es/components/popover/popover.js +13 -3
  19. package/es/components/popover/popover_arrow/_popover_arrow.js +1 -0
  20. package/es/components/popover/popover_panel/_popover_panel.js +8 -2
  21. package/es/components/popover/popover_panel/_popover_panel.styles.js +15 -1
  22. package/es/components/search_bar/search_bar.js +39 -5
  23. package/es/components/search_bar/search_box.js +37 -4
  24. package/es/components/tabs/tab.js +33 -13
  25. package/es/components/tabs/tab.styles.js +50 -0
  26. package/es/components/tabs/tabbed_content/tabbed_content.js +16 -0
  27. package/es/components/tabs/tabs.js +20 -14
  28. package/es/components/tabs/tabs.styles.js +23 -0
  29. package/es/components/tour/tour_step.js +6 -0
  30. package/eui.d.ts +110 -47
  31. package/i18ntokens.json +4 -4
  32. package/lib/components/badge/beta_badge/beta_badge.js +6 -10
  33. package/lib/components/basic_table/in_memory_table.js +8 -0
  34. package/lib/components/button/button_display/_button_display.js +7 -6
  35. package/lib/components/button/button_display/_button_display.styles.js +4 -4
  36. package/lib/components/button/button_display/_button_display_content.js +6 -9
  37. package/lib/components/button/button_display/_button_display_content.styles.js +10 -40
  38. package/lib/components/datagrid/controls/column_selector.js +1 -1
  39. package/lib/components/datagrid/controls/column_sorting.js +1 -1
  40. package/lib/components/header/header_links/header_links.js +6 -0
  41. package/lib/components/loading/loading_spinner.js +13 -2
  42. package/lib/components/loading/loading_spinner.styles.js +14 -6
  43. package/lib/components/modal/modal.js +23 -2
  44. package/lib/components/page_template/page_template.js +6 -9
  45. package/lib/components/popover/popover.js +13 -3
  46. package/lib/components/popover/popover_arrow/_popover_arrow.js +1 -0
  47. package/lib/components/popover/popover_panel/_popover_panel.js +8 -2
  48. package/lib/components/popover/popover_panel/_popover_panel.styles.js +16 -1
  49. package/lib/components/search_bar/search_bar.js +40 -5
  50. package/lib/components/search_bar/search_box.js +38 -4
  51. package/lib/components/tabs/tab.js +33 -12
  52. package/lib/components/tabs/tab.styles.js +56 -0
  53. package/lib/components/tabs/tabbed_content/tabbed_content.js +16 -0
  54. package/lib/components/tabs/tabs.js +24 -14
  55. package/lib/components/tabs/tabs.styles.js +34 -0
  56. package/optimize/es/components/badge/beta_badge/beta_badge.js +6 -6
  57. package/optimize/es/components/button/button_display/_button_display.js +6 -5
  58. package/optimize/es/components/button/button_display/_button_display.styles.js +4 -4
  59. package/optimize/es/components/button/button_display/_button_display_content.js +6 -9
  60. package/optimize/es/components/button/button_display/_button_display_content.styles.js +3 -41
  61. package/optimize/es/components/datagrid/controls/column_selector.js +1 -1
  62. package/optimize/es/components/datagrid/controls/column_sorting.js +1 -1
  63. package/optimize/es/components/loading/loading_spinner.js +13 -3
  64. package/optimize/es/components/loading/loading_spinner.styles.js +11 -7
  65. package/optimize/es/components/modal/modal.js +17 -2
  66. package/optimize/es/components/page_template/page_template.js +6 -9
  67. package/optimize/es/components/popover/popover.js +7 -3
  68. package/optimize/es/components/popover/popover_arrow/_popover_arrow.js +1 -0
  69. package/optimize/es/components/popover/popover_panel/_popover_panel.js +6 -1
  70. package/optimize/es/components/popover/popover_panel/_popover_panel.styles.js +15 -1
  71. package/optimize/es/components/search_bar/search_bar.js +31 -5
  72. package/optimize/es/components/search_bar/search_box.js +29 -3
  73. package/optimize/es/components/tabs/tab.js +21 -13
  74. package/optimize/es/components/tabs/tab.styles.js +50 -0
  75. package/optimize/es/components/tabs/tabs.js +20 -14
  76. package/optimize/es/components/tabs/tabs.styles.js +23 -0
  77. package/optimize/lib/components/badge/beta_badge/beta_badge.js +6 -13
  78. package/optimize/lib/components/button/button_display/_button_display.js +7 -6
  79. package/optimize/lib/components/button/button_display/_button_display.styles.js +4 -4
  80. package/optimize/lib/components/button/button_display/_button_display_content.js +6 -9
  81. package/optimize/lib/components/button/button_display/_button_display_content.styles.js +10 -40
  82. package/optimize/lib/components/datagrid/controls/column_selector.js +1 -1
  83. package/optimize/lib/components/datagrid/controls/column_sorting.js +1 -1
  84. package/optimize/lib/components/loading/loading_spinner.js +14 -2
  85. package/optimize/lib/components/loading/loading_spinner.styles.js +14 -6
  86. package/optimize/lib/components/modal/modal.js +22 -2
  87. package/optimize/lib/components/page_template/page_template.js +6 -9
  88. package/optimize/lib/components/popover/popover.js +7 -3
  89. package/optimize/lib/components/popover/popover_arrow/_popover_arrow.js +1 -0
  90. package/optimize/lib/components/popover/popover_panel/_popover_panel.js +6 -1
  91. package/optimize/lib/components/popover/popover_panel/_popover_panel.styles.js +16 -1
  92. package/optimize/lib/components/search_bar/search_bar.js +31 -5
  93. package/optimize/lib/components/search_bar/search_box.js +30 -3
  94. package/optimize/lib/components/tabs/tab.js +21 -12
  95. package/optimize/lib/components/tabs/tab.styles.js +56 -0
  96. package/optimize/lib/components/tabs/tabs.js +24 -14
  97. package/optimize/lib/components/tabs/tabs.styles.js +34 -0
  98. package/package.json +4 -4
  99. package/src/components/datagrid/controls/_data_grid_toolbar.scss +0 -8
  100. package/src/components/index.scss +0 -1
  101. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  102. package/test-env/components/badge/beta_badge/beta_badge.js +6 -13
  103. package/test-env/components/basic_table/in_memory_table.js +8 -0
  104. package/test-env/components/button/button_display/_button_display.js +7 -6
  105. package/test-env/components/button/button_display/_button_display.styles.js +4 -4
  106. package/test-env/components/button/button_display/_button_display_content.js +6 -9
  107. package/test-env/components/button/button_display/_button_display_content.styles.js +10 -40
  108. package/test-env/components/datagrid/controls/column_selector.js +1 -1
  109. package/test-env/components/datagrid/controls/column_sorting.js +1 -1
  110. package/test-env/components/header/header_links/header_links.js +6 -0
  111. package/test-env/components/loading/loading_spinner.js +14 -2
  112. package/test-env/components/loading/loading_spinner.styles.js +14 -6
  113. package/test-env/components/modal/modal.js +22 -2
  114. package/test-env/components/page_template/page_template.js +6 -9
  115. package/test-env/components/popover/popover.js +13 -3
  116. package/test-env/components/popover/popover_arrow/_popover_arrow.js +1 -0
  117. package/test-env/components/popover/popover_panel/_popover_panel.js +8 -2
  118. package/test-env/components/popover/popover_panel/_popover_panel.styles.js +16 -1
  119. package/test-env/components/search_bar/search_bar.js +39 -5
  120. package/test-env/components/search_bar/search_box.js +38 -4
  121. package/test-env/components/tabs/tab.js +33 -12
  122. package/test-env/components/tabs/tab.styles.js +56 -0
  123. package/test-env/components/tabs/tabbed_content/tabbed_content.js +16 -0
  124. package/test-env/components/tabs/tabs.js +24 -14
  125. package/test-env/components/tabs/tabs.styles.js +34 -0
  126. package/src/components/tabs/_index.scss +0 -1
  127. package/src/components/tabs/_tabs.scss +0 -110
  128. package/src/themes/amsterdam/overrides/_tabs.scss +0 -80
@@ -2,6 +2,10 @@ var _excluded = ["schema"];
2
2
 
3
3
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
4
 
5
+ 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; }
6
+
7
+ 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) { _defineProperty(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; }
8
+
5
9
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
6
10
 
7
11
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
@@ -40,6 +44,7 @@ import PropTypes from "prop-types";
40
44
  * Side Public License, v 1.
41
45
  */
42
46
  import React, { Component } from 'react';
47
+ import { htmlIdGenerator } from '../../services/accessibility';
43
48
  import { isString } from '../../services/predicate';
44
49
  import { EuiFlexGroup, EuiFlexItem } from '../flex';
45
50
  import { EuiSearchBox } from './search_box';
@@ -80,6 +85,8 @@ export var EuiSearchBar = /*#__PURE__*/function (_Component) {
80
85
 
81
86
  _this = _super.call(this, props);
82
87
 
88
+ _defineProperty(_assertThisInitialized(_this), "hintId", htmlIdGenerator('__hint')());
89
+
83
90
  _defineProperty(_assertThisInitialized(_this), "onSearch", function (queryText) {
84
91
  try {
85
92
  var query = parseQuery(queryText, _this.props);
@@ -136,7 +143,8 @@ export var EuiSearchBar = /*#__PURE__*/function (_Component) {
136
143
  _this.state = {
137
144
  query: _query,
138
145
  queryText: _query.text,
139
- error: null
146
+ error: null,
147
+ isHintVisible: false
140
148
  };
141
149
  return _this;
142
150
  }
@@ -198,10 +206,15 @@ export var EuiSearchBar = /*#__PURE__*/function (_Component) {
198
206
  }, {
199
207
  key: "render",
200
208
  value: function render() {
209
+ var _hint$popoverProps$is,
210
+ _hint$popoverProps,
211
+ _this2 = this;
212
+
201
213
  var _this$state = this.state,
202
214
  query = _this$state.query,
203
215
  queryText = _this$state.queryText,
204
- error = _this$state.error;
216
+ error = _this$state.error,
217
+ isHintVisibleState = _this$state.isHintVisible;
205
218
  var _this$props = this.props,
206
219
  _this$props$box = _this$props.box;
207
220
  _this$props$box = _this$props$box === void 0 ? {
@@ -212,7 +225,8 @@ export var EuiSearchBar = /*#__PURE__*/function (_Component) {
212
225
  box = _objectWithoutProperties(_this$props$box, _excluded),
213
226
  filters = _this$props.filters,
214
227
  toolsLeft = _this$props.toolsLeft,
215
- toolsRight = _this$props.toolsRight;
228
+ toolsRight = _this$props.toolsRight,
229
+ hint = _this$props.hint;
216
230
 
217
231
  var toolsLeftEl = this.renderTools(toolsLeft);
218
232
  var filtersBar = !filters ? undefined : ___EmotionJSX(EuiFlexItem, {
@@ -224,6 +238,7 @@ export var EuiSearchBar = /*#__PURE__*/function (_Component) {
224
238
  onChange: this.onFiltersChange
225
239
  }));
226
240
  var toolsRightEl = this.renderTools(toolsRight);
241
+ 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;
227
242
  return ___EmotionJSX(EuiFlexGroup, {
228
243
  gutterSize: "m",
229
244
  alignItems: "center",
@@ -235,7 +250,17 @@ export var EuiSearchBar = /*#__PURE__*/function (_Component) {
235
250
  query: queryText,
236
251
  onSearch: this.onSearch,
237
252
  isInvalid: error != null,
238
- title: error ? error.message : undefined
253
+ title: error ? error.message : undefined,
254
+ "aria-describedby": isHintVisible ? "".concat(this.hintId) : undefined,
255
+ hint: hint ? _objectSpread({
256
+ isVisible: isHintVisible,
257
+ setIsVisible: function setIsVisible(isVisible) {
258
+ _this2.setState({
259
+ isHintVisible: isVisible
260
+ });
261
+ },
262
+ id: this.hintId
263
+ }, hint) : undefined
239
264
  }))), filtersBar, toolsRightEl);
240
265
  }
241
266
  }], [{
@@ -246,7 +271,8 @@ export var EuiSearchBar = /*#__PURE__*/function (_Component) {
246
271
  return {
247
272
  query: query,
248
273
  queryText: query.text,
249
- error: null
274
+ error: null,
275
+ isHintVisible: prevState.isHintVisible
250
276
  };
251
277
  }
252
278
 
@@ -438,6 +464,14 @@ EuiSearchBar.propTypes = {
438
464
  * Date formatter to use when parsing date values
439
465
  */
440
466
  dateFormat: PropTypes.any,
467
+
468
+ /**
469
+ * Hint to render below the search bar
470
+ */
471
+ hint: PropTypes.shape({
472
+ content: PropTypes.node.isRequired,
473
+ popoverProps: PropTypes.any
474
+ }),
441
475
  className: PropTypes.string,
442
476
  "aria-label": PropTypes.string,
443
477
  "data-test-subj": PropTypes.string,
@@ -1,6 +1,6 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2
2
 
3
- var _excluded = ["query", "incremental"];
3
+ var _excluded = ["query", "incremental", "hint"];
4
4
 
5
5
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
6
6
 
@@ -40,6 +40,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
40
40
  import React, { Component } from 'react';
41
41
  import PropTypes from "prop-types";
42
42
  import { EuiFieldSearch } from '../form';
43
+ import { EuiInputPopover } from '../popover';
43
44
  import { jsx as ___EmotionJSX } from "@emotion/react";
44
45
  export var EuiSearchBox = /*#__PURE__*/function (_Component) {
45
46
  _inherits(EuiSearchBox, _Component);
@@ -78,6 +79,7 @@ export var EuiSearchBox = /*#__PURE__*/function (_Component) {
78
79
  var _this$props = this.props,
79
80
  query = _this$props.query,
80
81
  incremental = _this$props.incremental,
82
+ hint = _this$props.hint,
81
83
  rest = _objectWithoutProperties(_this$props, _excluded);
82
84
 
83
85
  var ariaLabel;
@@ -88,15 +90,39 @@ export var EuiSearchBox = /*#__PURE__*/function (_Component) {
88
90
  ariaLabel = 'This is a search bar. After typing your query, hit enter to filter the results lower in the page.';
89
91
  }
90
92
 
91
- return ___EmotionJSX(EuiFieldSearch, _extends({
93
+ var search = ___EmotionJSX(EuiFieldSearch, _extends({
92
94
  inputRef: function inputRef(input) {
93
95
  return _this2.inputElement = input;
94
96
  },
95
97
  fullWidth: true,
96
98
  defaultValue: query,
97
99
  incremental: incremental,
98
- "aria-label": ariaLabel
100
+ "aria-label": ariaLabel,
101
+ onFocus: function onFocus() {
102
+ hint === null || hint === void 0 ? void 0 : hint.setIsVisible(true);
103
+ }
99
104
  }, rest));
105
+
106
+ if (hint) {
107
+ return ___EmotionJSX(EuiInputPopover, _extends({
108
+ disableFocusTrap: true,
109
+ input: search,
110
+ isOpen: hint.isVisible,
111
+ fullWidth: true,
112
+ closePopover: function closePopover() {
113
+ hint.setIsVisible(false);
114
+ },
115
+ panelProps: {
116
+ 'aria-live': undefined,
117
+ 'aria-modal': undefined,
118
+ role: undefined,
119
+ tabIndex: -1,
120
+ id: hint.id
121
+ }
122
+ }, hint.popoverProps), hint.content);
123
+ }
124
+
125
+ return search;
100
126
  }
101
127
  }]);
102
128
 
@@ -111,5 +137,12 @@ _defineProperty(EuiSearchBox, "defaultProps", {
111
137
  EuiSearchBox.propTypes = {
112
138
  query: PropTypes.string.isRequired,
113
139
  // This is optional in EuiFieldSearchProps
114
- onSearch: PropTypes.func.isRequired
140
+ onSearch: PropTypes.func.isRequired,
141
+ hint: PropTypes.shape({
142
+ id: PropTypes.string.isRequired,
143
+ isVisible: PropTypes.bool.isRequired,
144
+ setIsVisible: PropTypes.func.isRequired,
145
+ content: PropTypes.node.isRequired,
146
+ popoverProps: PropTypes.any
147
+ })
115
148
  };
@@ -1,4 +1,4 @@
1
- var _excluded = ["isSelected", "children", "className", "disabled", "href", "target", "rel", "prepend", "append"];
1
+ var _excluded = ["isSelected", "children", "className", "disabled", "href", "target", "rel", "prepend", "append", "size", "expand"];
2
2
 
3
3
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
4
 
@@ -16,8 +16,9 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
16
16
  import React from 'react';
17
17
  import PropTypes from "prop-types";
18
18
  import classNames from 'classnames';
19
- import { getSecureRelForTarget } from '../../services';
19
+ import { getSecureRelForTarget, useEuiTheme } from '../../services';
20
20
  import { validateHref } from '../../services/security/href_validator';
21
+ import { euiTabStyles, euiTabContentStyles } from './tab.styles';
21
22
  import { jsx as ___EmotionJSX } from "@emotion/react";
22
23
  export var EuiTab = function EuiTab(_ref) {
23
24
  var isSelected = _ref.isSelected,
@@ -29,22 +30,25 @@ export var EuiTab = function EuiTab(_ref) {
29
30
  rel = _ref.rel,
30
31
  prepend = _ref.prepend,
31
32
  append = _ref.append,
33
+ size = _ref.size,
34
+ expand = _ref.expand,
32
35
  rest = _objectWithoutProperties(_ref, _excluded);
33
36
 
37
+ var euiTheme = useEuiTheme();
34
38
  var isHrefValid = !href || validateHref(href);
35
- var disabled = _disabled || !isHrefValid;
39
+ var disabled = _disabled || !isHrefValid; // Keep CSS classnames for reference
40
+
36
41
  var classes = classNames('euiTab', className, {
37
- 'euiTab-isSelected': isSelected,
38
- 'euiTab-isDisabled': disabled
42
+ 'euiTab-isSelected': isSelected
39
43
  });
44
+ var tabStyles = euiTabStyles(euiTheme);
45
+ var cssTabStyles = [tabStyles.euiTab, expand && tabStyles.expanded, isSelected && tabStyles.selected, disabled && tabStyles.disabled, size && tabStyles[size]];
46
+ var tabContentStyles = euiTabContentStyles(euiTheme);
47
+ var cssTabContentStyles = [tabContentStyles.euiTab__content, size && tabContentStyles[size], isSelected && tabContentStyles.selected, disabled && tabContentStyles.disabled];
40
48
 
41
- var prependNode = prepend && ___EmotionJSX("span", {
42
- className: "euiTab__prepend"
43
- }, prepend);
49
+ var prependNode = prepend && ___EmotionJSX("span", null, prepend);
44
50
 
45
- var appendNode = append && ___EmotionJSX("span", {
46
- className: "euiTab__append"
47
- }, append); // <a> elements don't respect the `disabled` attribute. So if we're disabled, we'll just pretend
51
+ var appendNode = append && ___EmotionJSX("span", null, append); // <a> elements don't respect the `disabled` attribute. So if we're disabled, we'll just pretend
48
52
  // this is a button and piggyback off its disabled styles.
49
53
 
50
54
 
@@ -58,11 +62,13 @@ export var EuiTab = function EuiTab(_ref) {
58
62
  role: "tab",
59
63
  "aria-selected": !!isSelected,
60
64
  className: classes,
65
+ css: cssTabStyles,
61
66
  href: href,
62
67
  target: target,
63
68
  rel: secureRel
64
69
  }, rest), prependNode, ___EmotionJSX("span", {
65
- className: "euiTab__content"
70
+ className: "euiTab__content",
71
+ css: cssTabContentStyles
66
72
  }, children), appendNode);
67
73
  }
68
74
 
@@ -71,9 +77,11 @@ export var EuiTab = function EuiTab(_ref) {
71
77
  "aria-selected": !!isSelected,
72
78
  type: "button",
73
79
  className: classes,
80
+ css: cssTabStyles,
74
81
  disabled: disabled
75
82
  }, rest), prependNode, ___EmotionJSX("span", {
76
- className: "euiTab__content"
83
+ className: "euiTab__content",
84
+ css: cssTabContentStyles
77
85
  }, children), appendNode);
78
86
  };
79
87
  EuiTab.propTypes = {
@@ -101,6 +109,18 @@ EuiTab.propTypes = {
101
109
  * Will be excluded from interactive effects.
102
110
  */
103
111
  append: PropTypes.node,
112
+
113
+ /**
114
+ * Evenly stretches each tab to fill the
115
+ * horizontal space
116
+ */
117
+ expand: PropTypes.bool,
118
+
119
+ /**
120
+ * Sizes affect both font size and overall size.
121
+ * Only use the `xl` size when displayed as page titles.
122
+ */
123
+ size: PropTypes.any,
104
124
  className: PropTypes.string,
105
125
  "aria-label": PropTypes.string,
106
126
  "data-test-subj": PropTypes.string,
@@ -0,0 +1,50 @@
1
+ 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)."; }
2
+
3
+ /*
4
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
5
+ * or more contributor license agreements. Licensed under the Elastic License
6
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
7
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
8
+ * Side Public License, v 1.
9
+ */
10
+ import { css } from '@emotion/react';
11
+ import { euiTitle } from '../title/title.styles';
12
+
13
+ var _ref = process.env.NODE_ENV === "production" ? {
14
+ name: "10tso78-expanded",
15
+ styles: "flex-basis:0%;flex-grow:1;justify-content:center;label:expanded;"
16
+ } : {
17
+ name: "10tso78-expanded",
18
+ styles: "flex-basis:0%;flex-grow:1;justify-content:center;label:expanded;",
19
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
20
+ };
21
+
22
+ export var euiTabStyles = function euiTabStyles(_ref2) {
23
+ var euiTheme = _ref2.euiTheme;
24
+ return {
25
+ euiTab: /*#__PURE__*/css("display:flex;cursor:pointer;flex-direction:row;align-items:center;font-weight:", euiTheme.font.weight.semiBold, ";gap:", euiTheme.size.s, ";&:focus{background-color:transparent;outline-offset:-", euiTheme.focus.width, ";};label:euiTab;"),
26
+ // sizes
27
+ s: /*#__PURE__*/css("padding:0 ", euiTheme.size.xs, ";;label:s;"),
28
+ m: /*#__PURE__*/css("padding:0 ", euiTheme.size.xs, ";;label:m;"),
29
+ l: /*#__PURE__*/css("padding:0 ", euiTheme.size.xs, ";;label:l;"),
30
+ xl: /*#__PURE__*/css("padding:", euiTheme.size.s, " ", euiTheme.size.xs, ";;label:xl;"),
31
+ // variations
32
+ expanded: _ref,
33
+ selected: /*#__PURE__*/css("box-shadow:inset 0 calc(", euiTheme.border.width.thick, " * -1) 0 ", euiTheme.colors.primary, ";;label:selected;"),
34
+ disabled: /*#__PURE__*/css("cursor:not-allowed;color:", euiTheme.colors.disabledText, ";.euiTab.euiTab__isSelected{box-shadow:inset 0 calc(", euiTheme.border.width.thick, " * -1) 0 ", euiTheme.colors.disabledText, ";};label:disabled;")
35
+ };
36
+ };
37
+ export var euiTabContentStyles = function euiTabContentStyles(euiThemeContext) {
38
+ var euiTheme = euiThemeContext.euiTheme;
39
+ return {
40
+ euiTab__content: /*#__PURE__*/css("color:", euiTheme.colors.disabledText, ";&:hover{text-decoration:none;};label:euiTab__content;"),
41
+ // sizes
42
+ s: /*#__PURE__*/css(euiTitle(euiThemeContext, 'xxxs'), ";line-height:", euiTheme.size.xl, ";;label:s;"),
43
+ m: /*#__PURE__*/css(euiTitle(euiThemeContext, 'xxs'), ";line-height:", euiTheme.size.xxl, ";;label:m;"),
44
+ l: /*#__PURE__*/css(euiTitle(euiThemeContext, 'xs'), ";line-height:calc(", euiTheme.size.xl, " + ", euiTheme.size.s, ");;label:l;"),
45
+ xl: /*#__PURE__*/css(euiTitle(euiThemeContext, 's'), ";line-height:calc(", euiTheme.size.xxxl, " + ", euiTheme.size.s, ");;label:xl;"),
46
+ // variations
47
+ selected: /*#__PURE__*/css("color:", euiTheme.colors.primaryText, ";;label:selected;"),
48
+ disabled: /*#__PURE__*/css("color:", euiTheme.colors.disabledText, ";&:hover{text-decoration:none;};label:disabled;")
49
+ };
50
+ };
@@ -239,6 +239,18 @@ EuiTabbedContent.propTypes = {
239
239
  * Will be excluded from interactive effects.
240
240
  */
241
241
  append: PropTypes.node,
242
+
243
+ /**
244
+ * Evenly stretches each tab to fill the
245
+ * horizontal space
246
+ */
247
+ expand: PropTypes.bool,
248
+
249
+ /**
250
+ * Sizes affect both font size and overall size.
251
+ * Only use the `xl` size when displayed as page titles.
252
+ */
253
+ size: PropTypes.any,
242
254
  className: PropTypes.string,
243
255
  "aria-label": PropTypes.string,
244
256
  "data-test-subj": PropTypes.string,
@@ -257,6 +269,8 @@ EuiTabbedContent.propTypes = {
257
269
  disabled: PropTypes.bool,
258
270
  prepend: PropTypes.node,
259
271
  append: PropTypes.node,
272
+ expand: PropTypes.bool,
273
+ size: PropTypes.any,
260
274
  className: PropTypes.string,
261
275
  "aria-label": PropTypes.string,
262
276
  "data-test-subj": PropTypes.string,
@@ -276,6 +290,8 @@ EuiTabbedContent.propTypes = {
276
290
  disabled: PropTypes.bool,
277
291
  prepend: PropTypes.node,
278
292
  append: PropTypes.node,
293
+ expand: PropTypes.bool,
294
+ size: PropTypes.any,
279
295
  className: PropTypes.string,
280
296
  "aria-label": PropTypes.string,
281
297
  "data-test-subj": PropTypes.string,
@@ -15,15 +15,11 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
15
15
  */
16
16
  import React, { forwardRef } from 'react';
17
17
  import classNames from 'classnames';
18
- import { keysOf } from '../common';
18
+ import { useEuiTheme } from '../../services';
19
+ import { cloneElementWithCss } from '../../services/theme/clone_element';
20
+ import { euiTabsStyles } from './tabs.styles';
19
21
  import { jsx as ___EmotionJSX } from "@emotion/react";
20
- var sizeToClassNameMap = {
21
- s: 'euiTabs--small',
22
- m: null,
23
- l: 'euiTabs--large',
24
- xl: 'euiTabs--xlarge'
25
- };
26
- export var SIZES = keysOf(sizeToClassNameMap);
22
+ export var SIZES = ['s', 'm', 'l', 'xl'];
27
23
  export var EuiTabs = /*#__PURE__*/forwardRef(function (_ref, ref) {
28
24
  var children = _ref.children,
29
25
  className = _ref.className,
@@ -35,15 +31,25 @@ export var EuiTabs = /*#__PURE__*/forwardRef(function (_ref, ref) {
35
31
  size = _ref$size === void 0 ? 'm' : _ref$size,
36
32
  rest = _objectWithoutProperties(_ref, _excluded);
37
33
 
38
- var classes = classNames('euiTabs', sizeToClassNameMap[size], {
39
- 'euiTabs--expand': expand,
40
- 'euiTabs--bottomBorder': bottomBorder
41
- }, className);
34
+ var euiTheme = useEuiTheme();
35
+ var classes = classNames('euiTabs', className);
36
+ var tabsStyles = euiTabsStyles(euiTheme);
37
+ var computedStyles = [tabsStyles.euiTabs, tabsStyles[size], bottomBorder && tabsStyles.bottomBorder];
38
+ var tabItems = React.Children.map(children, function (child) {
39
+ if ( /*#__PURE__*/React.isValidElement(child)) {
40
+ return cloneElementWithCss(child, {
41
+ // we're passing the parent `size` and `expand` down to the children
42
+ size: size,
43
+ expand: expand
44
+ });
45
+ }
46
+ });
42
47
  return ___EmotionJSX("div", _extends({
43
48
  ref: ref,
44
- className: classes
49
+ className: classes,
50
+ css: computedStyles
45
51
  }, children && {
46
52
  role: 'tablist'
47
- }, rest), children);
53
+ }, rest), tabItems);
48
54
  });
49
55
  EuiTabs.displayName = 'EuiTabs';
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+ import { css } from '@emotion/react';
9
+ import { logicalCSS, logicalCSSWithFallback, mathWithUnits } from '../../global_styling';
10
+ export var euiTabsStyles = function euiTabsStyles(euiThemeContext) {
11
+ var euiTheme = euiThemeContext.euiTheme;
12
+ return {
13
+ euiTabs: /*#__PURE__*/css("display:flex;", logicalCSS('max-width', '100%'), ";", logicalCSSWithFallback('overflow-x', 'auto'), ";", logicalCSSWithFallback('overflow-y', 'hidden'), ";position:relative;flex-shrink:0;;label:euiTabs;"),
14
+ bottomBorder: /*#__PURE__*/css("box-shadow:inset 0 ", mathWithUnits(euiTheme.border.width.thin, function (x) {
15
+ return x * -1;
16
+ }), " 0 ", euiTheme.border.color, ";;label:bottomBorder;"),
17
+ // sizes
18
+ s: /*#__PURE__*/css("gap:", euiTheme.size.m, ";;label:s;"),
19
+ m: /*#__PURE__*/css("gap:", euiTheme.size.base, ";;label:m;"),
20
+ l: /*#__PURE__*/css("gap:", euiTheme.size.l, ";;label:l;"),
21
+ xl: /*#__PURE__*/css("gap:", euiTheme.size.xl, ";;label:xl;")
22
+ };
23
+ };
@@ -341,6 +341,12 @@ EuiTourStep.propTypes = {
341
341
  */
342
342
  repositionOnScroll: PropTypes.bool,
343
343
 
344
+ /**
345
+ * Must be set to true if using `EuiDragDropContext` within a popover,
346
+ * otherwise your nested drag & drop will have incorrect positioning
347
+ */
348
+ hasDragDrop: PropTypes.bool,
349
+
344
350
  /**
345
351
  * By default, popover content inherits the z-index of the anchor
346
352
  * component; pass `zIndex` to override