@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
@@ -66,7 +66,7 @@ var _popover2 = require("./popover.styles");
66
66
 
67
67
  var _popover_panel = require("./popover_panel");
68
68
 
69
- var _excluded = ["anchorClassName", "anchorPosition", "button", "buttonRef", "insert", "isOpen", "ownFocus", "children", "className", "closePopover", "panelClassName", "panelPaddingSize", "panelProps", "panelRef", "panelStyle", "popoverScreenReaderText", "popoverRef", "hasArrow", "arrowChildren", "repositionOnScroll", "zIndex", "attachToAnchor", "display", "offset", "onPositionChange", "onTrapDeactivation", "buffer", "aria-label", "aria-labelledby", "container", "focusTrapProps", "initialFocus", "tabIndex"];
69
+ var _excluded = ["anchorClassName", "anchorPosition", "button", "buttonRef", "insert", "isOpen", "ownFocus", "children", "className", "closePopover", "panelClassName", "panelPaddingSize", "panelProps", "panelRef", "panelStyle", "popoverScreenReaderText", "popoverRef", "hasArrow", "arrowChildren", "repositionOnScroll", "hasDragDrop", "zIndex", "attachToAnchor", "display", "offset", "onPositionChange", "onTrapDeactivation", "buffer", "aria-label", "aria-labelledby", "container", "focusTrapProps", "initialFocus", "tabIndex"];
70
70
 
71
71
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
72
72
 
@@ -403,7 +403,8 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
403
403
  }, {
404
404
  key: "render",
405
405
  value: function render() {
406
- var _this4 = this;
406
+ var _panelProps$tabIndex,
407
+ _this4 = this;
407
408
 
408
409
  var _this$props = this.props,
409
410
  anchorClassName = _this$props.anchorClassName,
@@ -426,6 +427,7 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
426
427
  hasArrow = _this$props.hasArrow,
427
428
  arrowChildren = _this$props.arrowChildren,
428
429
  repositionOnScroll = _this$props.repositionOnScroll,
430
+ hasDragDrop = _this$props.hasDragDrop,
429
431
  zIndex = _this$props.zIndex,
430
432
  attachToAnchor = _this$props.attachToAnchor,
431
433
  display = _this$props.display,
@@ -438,8 +440,9 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
438
440
  container = _this$props.container,
439
441
  focusTrapProps = _this$props.focusTrapProps,
440
442
  initialFocusProp = _this$props.initialFocus,
441
- tabIndexProp = _this$props.tabIndex,
443
+ _tabIndexProp = _this$props.tabIndex,
442
444
  rest = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
445
+ var tabIndexProp = (_panelProps$tabIndex = panelProps === null || panelProps === void 0 ? void 0 : panelProps.tabIndex) !== null && _panelProps$tabIndex !== void 0 ? _panelProps$tabIndex : _tabIndexProp;
443
446
  var styles = (0, _popover2.euiPopoverStyles)();
444
447
  var popoverStyles = [styles.euiPopover, {
445
448
  display: display
@@ -503,6 +506,7 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
503
506
  position: this.state.arrowPosition,
504
507
  isAttached: attachToAnchor,
505
508
  className: (0, _classnames.default)(panelClassName, panelProps === null || panelProps === void 0 ? void 0 : panelProps.className),
509
+ hasDragDrop: hasDragDrop,
506
510
  hasShadow: false,
507
511
  paddingSize: panelPaddingSize,
508
512
  tabIndex: tabIndex,
@@ -720,6 +724,12 @@ EuiPopover.propTypes = {
720
724
  */
721
725
  repositionOnScroll: _propTypes.default.bool,
722
726
 
727
+ /**
728
+ * Must be set to true if using `EuiDragDropContext` within a popover,
729
+ * otherwise your nested drag & drop will have incorrect positioning
730
+ */
731
+ hasDragDrop: _propTypes.default.bool,
732
+
723
733
  /**
724
734
  * By default, popover content inherits the z-index of the anchor
725
735
  * component; pass `zIndex` to override
@@ -33,6 +33,7 @@ var EuiPopoverArrow = function EuiPopoverArrow(_ref) {
33
33
  var styles = (0, _popover_arrow.euiPopoverArrowStyles)(euiTheme);
34
34
  var cssStyles = [styles.euiPopoverArrow, styles[position]];
35
35
  return (0, _react2.jsx)("div", (0, _extends2.default)({
36
+ className: "euiPopover__arrow",
36
37
  "data-popover-arrow": position,
37
38
  css: cssStyles
38
39
  }, rest), children);
@@ -29,7 +29,7 @@ var _popover_panel = require("./_popover_panel.styles");
29
29
 
30
30
  var _react2 = require("@emotion/react");
31
31
 
32
- var _excluded = ["children", "className", "isOpen", "isAttached", "position"];
32
+ var _excluded = ["children", "className", "isOpen", "isAttached", "hasDragDrop", "position"];
33
33
 
34
34
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
35
 
@@ -49,6 +49,7 @@ var EuiPopoverPanel = function EuiPopoverPanel(_ref) {
49
49
  className = _ref.className,
50
50
  isOpen = _ref.isOpen,
51
51
  isAttached = _ref.isAttached,
52
+ hasDragDrop = _ref.hasDragDrop,
52
53
  position = _ref.position,
53
54
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
54
55
  var panelContext = (0, _react.useContext)(EuiPopoverPanelContext);
@@ -63,6 +64,10 @@ var EuiPopoverPanel = function EuiPopoverPanel(_ref) {
63
64
  panelCSS = [].concat((0, _toConsumableArray2.default)(panelCSS), [isOpen && styles.attached.isOpen, position && styles.attached[position]]);
64
65
  }
65
66
 
67
+ if (hasDragDrop) {
68
+ panelCSS = [].concat((0, _toConsumableArray2.default)(panelCSS), [styles.hasDragDrop.hasDragDrop, position && styles.hasDragDrop[position]]);
69
+ }
70
+
66
71
  return (0, _react2.jsx)(EuiPopoverPanelContext.Provider, {
67
72
  value: panelContext
68
73
  }, (0, _react2.jsx)(_panel.EuiPanel, (0, _extends2.default)({
@@ -116,5 +121,6 @@ EuiPopoverPanel.propTypes = {
116
121
  css: _propTypes.default.any,
117
122
  isOpen: _propTypes.default.bool,
118
123
  isAttached: _propTypes.default.bool,
119
- position: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.oneOf([null])])
124
+ position: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.oneOf([null])]),
125
+ hasDragDrop: _propTypes.default.bool
120
126
  };
@@ -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
  };
@@ -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,19 +37,22 @@ 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
  });
45
- var prependNode = prepend && (0, _react2.jsx)("span", {
46
- className: "euiTab__prepend"
47
- }, prepend);
48
- var appendNode = append && (0, _react2.jsx)("span", {
49
- className: "euiTab__append"
50
- }, append); // <a> elements don't respect the `disabled` attribute. So if we're disabled, we'll just pretend
50
+ var tabStyles = (0, _tab.euiTabStyles)(euiTheme);
51
+ var cssTabStyles = [tabStyles.euiTab, expand && tabStyles.expanded, isSelected && tabStyles.selected, disabled && tabStyles.disabled, size && tabStyles[size]];
52
+ var tabContentStyles = (0, _tab.euiTabContentStyles)(euiTheme);
53
+ var cssTabContentStyles = [tabContentStyles.euiTab__content, size && tabContentStyles[size], isSelected && tabContentStyles.selected, disabled && tabContentStyles.disabled];
54
+ var prependNode = prepend && (0, _react2.jsx)("span", null, prepend);
55
+ var appendNode = append && (0, _react2.jsx)("span", null, append); // <a> elements don't respect the `disabled` attribute. So if we're disabled, we'll just pretend
51
56
  // this is a button and piggyback off its disabled styles.
52
57
 
53
58
  if (href && !disabled) {
@@ -60,11 +65,13 @@ var EuiTab = function EuiTab(_ref) {
60
65
  role: "tab",
61
66
  "aria-selected": !!isSelected,
62
67
  className: classes,
68
+ css: cssTabStyles,
63
69
  href: href,
64
70
  target: target,
65
71
  rel: secureRel
66
72
  }, rest), prependNode, (0, _react2.jsx)("span", {
67
- className: "euiTab__content"
73
+ className: "euiTab__content",
74
+ css: cssTabContentStyles
68
75
  }, children), appendNode);
69
76
  }
70
77
 
@@ -73,9 +80,11 @@ var EuiTab = function EuiTab(_ref) {
73
80
  "aria-selected": !!isSelected,
74
81
  type: "button",
75
82
  className: classes,
83
+ css: cssTabStyles,
76
84
  disabled: disabled
77
85
  }, rest), prependNode, (0, _react2.jsx)("span", {
78
- className: "euiTab__content"
86
+ className: "euiTab__content",
87
+ css: cssTabContentStyles
79
88
  }, children), appendNode);
80
89
  };
81
90
 
@@ -105,6 +114,18 @@ EuiTab.propTypes = {
105
114
  * Will be excluded from interactive effects.
106
115
  */
107
116
  append: _propTypes.default.node,
117
+
118
+ /**
119
+ * Evenly stretches each tab to fill the
120
+ * horizontal space
121
+ */
122
+ expand: _propTypes.default.bool,
123
+
124
+ /**
125
+ * Sizes affect both font size and overall size.
126
+ * Only use the `xl` size when displayed as page titles.
127
+ */
128
+ size: _propTypes.default.any,
108
129
  className: _propTypes.default.string,
109
130
  "aria-label": _propTypes.default.string,
110
131
  "data-test-subj": _propTypes.default.string,
@@ -0,0 +1,56 @@
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 _title = require("../title/title.styles");
11
+
12
+ 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)."; }
13
+
14
+ var _ref = process.env.NODE_ENV === "production" ? {
15
+ name: "10tso78-expanded",
16
+ styles: "flex-basis:0%;flex-grow:1;justify-content:center;label:expanded;"
17
+ } : {
18
+ name: "10tso78-expanded",
19
+ styles: "flex-basis:0%;flex-grow:1;justify-content:center;label:expanded;",
20
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
21
+ };
22
+
23
+ var euiTabStyles = function euiTabStyles(_ref2) {
24
+ var euiTheme = _ref2.euiTheme;
25
+ return {
26
+ 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, ";&:focus{background-color:transparent;outline-offset:-", euiTheme.focus.width, ";};label:euiTab;"),
27
+ // sizes
28
+ s: /*#__PURE__*/(0, _react.css)("padding:0 ", euiTheme.size.xs, ";;label:s;"),
29
+ m: /*#__PURE__*/(0, _react.css)("padding:0 ", euiTheme.size.xs, ";;label:m;"),
30
+ l: /*#__PURE__*/(0, _react.css)("padding:0 ", euiTheme.size.xs, ";;label:l;"),
31
+ xl: /*#__PURE__*/(0, _react.css)("padding:", euiTheme.size.s, " ", euiTheme.size.xs, ";;label:xl;"),
32
+ // variations
33
+ expanded: _ref,
34
+ selected: /*#__PURE__*/(0, _react.css)("box-shadow:inset 0 calc(", euiTheme.border.width.thick, " * -1) 0 ", euiTheme.colors.primary, ";;label:selected;"),
35
+ disabled: /*#__PURE__*/(0, _react.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;")
36
+ };
37
+ };
38
+
39
+ exports.euiTabStyles = euiTabStyles;
40
+
41
+ var euiTabContentStyles = function euiTabContentStyles(euiThemeContext) {
42
+ var euiTheme = euiThemeContext.euiTheme;
43
+ return {
44
+ euiTab__content: /*#__PURE__*/(0, _react.css)("color:", euiTheme.colors.disabledText, ";&:hover{text-decoration:none;};label:euiTab__content;"),
45
+ // sizes
46
+ s: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 'xxxs'), ";line-height:", euiTheme.size.xl, ";;label:s;"),
47
+ m: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 'xxs'), ";line-height:", euiTheme.size.xxl, ";;label:m;"),
48
+ l: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 'xs'), ";line-height:calc(", euiTheme.size.xl, " + ", euiTheme.size.s, ");;label:l;"),
49
+ xl: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 's'), ";line-height:calc(", euiTheme.size.xxxl, " + ", euiTheme.size.s, ");;label:xl;"),
50
+ // variations
51
+ selected: /*#__PURE__*/(0, _react.css)("color:", euiTheme.colors.primaryText, ";;label:selected;"),
52
+ disabled: /*#__PURE__*/(0, _react.css)("color:", euiTheme.colors.disabledText, ";&:hover{text-decoration:none;};label:disabled;")
53
+ };
54
+ };
55
+
56
+ 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,6 +266,8 @@ 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,
@@ -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 tabsStyles = (0, _tabs.euiTabsStyles)(euiTheme);
49
+ var computedStyles = [tabsStyles.euiTabs, tabsStyles[size], bottomBorder && tabsStyles.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: computedStyles
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';
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiTabsStyles = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _global_styling = require("../../global_styling");
11
+
12
+ /*
13
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
14
+ * or more contributor license agreements. Licensed under the Elastic License
15
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
16
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
17
+ * Side Public License, v 1.
18
+ */
19
+ var euiTabsStyles = function euiTabsStyles(euiThemeContext) {
20
+ var euiTheme = euiThemeContext.euiTheme;
21
+ return {
22
+ euiTabs: /*#__PURE__*/(0, _react.css)("display:flex;", (0, _global_styling.logicalCSS)('max-width', '100%'), ";", (0, _global_styling.logicalCSSWithFallback)('overflow-x', 'auto'), ";", (0, _global_styling.logicalCSSWithFallback)('overflow-y', 'hidden'), ";position:relative;flex-shrink:0;;label:euiTabs;"),
23
+ bottomBorder: /*#__PURE__*/(0, _react.css)("box-shadow:inset 0 ", (0, _global_styling.mathWithUnits)(euiTheme.border.width.thin, function (x) {
24
+ return x * -1;
25
+ }), " 0 ", euiTheme.border.color, ";;label:bottomBorder;"),
26
+ // sizes
27
+ s: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.m, ";;label:s;"),
28
+ m: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.base, ";;label:m;"),
29
+ l: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.l, ";;label:l;"),
30
+ xl: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.xl, ";;label:xl;")
31
+ };
32
+ };
33
+
34
+ exports.euiTabsStyles = euiTabsStyles;
@@ -1 +0,0 @@
1
- @import 'tabs';