@elastic/eui 85.1.0 → 86.0.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 (185) hide show
  1. package/dist/eui_charts_theme.js +26 -2
  2. package/dist/eui_charts_theme.js.map +1 -1
  3. package/es/components/combo_box/combo_box_options_list/combo_box_title.js +1 -3
  4. package/es/components/datagrid/body/data_grid_body.js +7 -7
  5. package/es/components/datagrid/body/data_grid_body_custom.js +7 -7
  6. package/es/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  7. package/es/components/datagrid/body/data_grid_cell.js +14 -13
  8. package/es/components/datagrid/body/header/data_grid_control_header_cell.js +2 -2
  9. package/es/components/datagrid/body/header/data_grid_header_cell.js +1 -1
  10. package/es/components/datagrid/body/header/data_grid_header_row.js +5 -5
  11. package/es/components/datagrid/controls/data_grid_toolbar.js +31 -26
  12. package/es/components/datagrid/controls/display_selector.js +1 -1
  13. package/es/components/datagrid/data_grid.js +7 -7
  14. package/es/components/datagrid/utils/in_memory.js +4 -4
  15. package/es/components/datagrid/utils/row_heights.js +4 -4
  16. package/es/components/date_picker/date_picker.js +1 -1
  17. package/es/components/drag_and_drop/drag_drop_context.js +1 -1
  18. package/es/components/drag_and_drop/draggable.js +2 -2
  19. package/es/components/drag_and_drop/droppable.js +1 -1
  20. package/es/components/drag_and_drop/index.js +3 -2
  21. package/es/components/header/header_section/header_section_item_button.js +94 -0
  22. package/es/components/highlight/highlight.js +2 -2
  23. package/es/components/inline_edit/inline_edit_text.js +2 -3
  24. package/es/components/inline_edit/inline_edit_title.js +2 -3
  25. package/es/components/inner_text/index.js +1 -2
  26. package/es/components/markdown_editor/markdown_actions.js +1 -1
  27. package/es/components/markdown_editor/markdown_editor_text_area.js +10 -4
  28. package/es/components/modal/confirm_modal.js +11 -29
  29. package/es/components/outside_click_detector/outside_click_detector.js +10 -11
  30. package/es/components/page/page_template.js +8 -8
  31. package/es/components/popover/wrapping_popover.js +1 -9
  32. package/es/components/portal/portal.js +34 -24
  33. package/es/components/tabs/tabs.js +25 -0
  34. package/es/components/timeline/timeline_item_icon.js +3 -3
  35. package/es/components/tour/tour_step.js +16 -12
  36. package/es/services/color/eui_palettes.js +7 -1
  37. package/es/services/color/index.js +1 -1
  38. package/es/services/index.js +1 -1
  39. package/es/services/time/timer.js +3 -5
  40. package/es/test/rtl/component_helpers.js +1 -1
  41. package/es/test/rtl/index.js +2 -1
  42. package/es/test/rtl/render_hook.js +23 -0
  43. package/eui.d.ts +1234 -748
  44. package/i18ntokens.json +144 -144
  45. package/lib/components/combo_box/combo_box_options_list/combo_box_title.js +1 -3
  46. package/lib/components/datagrid/body/data_grid_body.js +7 -7
  47. package/lib/components/datagrid/body/data_grid_body_custom.js +7 -7
  48. package/lib/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  49. package/lib/components/datagrid/body/data_grid_cell.js +14 -13
  50. package/lib/components/datagrid/body/header/data_grid_control_header_cell.js +2 -2
  51. package/lib/components/datagrid/body/header/data_grid_header_cell.js +1 -1
  52. package/lib/components/datagrid/body/header/data_grid_header_row.js +5 -5
  53. package/lib/components/datagrid/controls/data_grid_toolbar.js +41 -38
  54. package/lib/components/datagrid/controls/display_selector.js +1 -1
  55. package/lib/components/datagrid/data_grid.js +7 -7
  56. package/lib/components/datagrid/utils/in_memory.js +4 -4
  57. package/lib/components/datagrid/utils/row_heights.js +4 -4
  58. package/lib/components/date_picker/date_picker.js +1 -1
  59. package/lib/components/drag_and_drop/drag_drop_context.js +2 -2
  60. package/lib/components/drag_and_drop/draggable.js +3 -3
  61. package/lib/components/drag_and_drop/droppable.js +2 -2
  62. package/lib/components/header/header_section/header_section_item_button.js +94 -0
  63. package/lib/components/highlight/highlight.js +2 -2
  64. package/lib/components/inline_edit/inline_edit_text.js +2 -3
  65. package/lib/components/inline_edit/inline_edit_title.js +2 -3
  66. package/lib/components/inner_text/index.js +1 -8
  67. package/lib/components/markdown_editor/markdown_actions.js +1 -1
  68. package/lib/components/markdown_editor/markdown_editor_text_area.js +10 -4
  69. package/lib/components/modal/confirm_modal.js +10 -28
  70. package/lib/components/outside_click_detector/outside_click_detector.js +10 -11
  71. package/lib/components/page/page_template.js +8 -8
  72. package/lib/components/popover/wrapping_popover.js +1 -9
  73. package/lib/components/portal/portal.js +34 -24
  74. package/lib/components/tabs/tabs.js +25 -0
  75. package/lib/components/timeline/timeline_item_icon.js +6 -3
  76. package/lib/components/tour/tour_step.js +15 -11
  77. package/lib/services/color/eui_palettes.js +9 -2
  78. package/lib/services/color/index.js +7 -0
  79. package/lib/services/index.js +7 -0
  80. package/lib/services/time/timer.js +3 -5
  81. package/lib/test/rtl/component_helpers.js +1 -1
  82. package/lib/test/rtl/index.js +13 -1
  83. package/lib/test/rtl/render_hook.js +29 -0
  84. package/optimize/es/components/datagrid/body/data_grid_cell.js +10 -9
  85. package/optimize/es/components/datagrid/controls/data_grid_toolbar.js +31 -26
  86. package/optimize/es/components/datagrid/controls/display_selector.js +1 -1
  87. package/optimize/es/components/datagrid/utils/in_memory.js +2 -2
  88. package/optimize/es/components/datagrid/utils/row_heights.js +4 -4
  89. package/optimize/es/components/date_picker/date_picker.js +1 -1
  90. package/optimize/es/components/drag_and_drop/drag_drop_context.js +1 -1
  91. package/optimize/es/components/drag_and_drop/draggable.js +2 -2
  92. package/optimize/es/components/drag_and_drop/droppable.js +1 -1
  93. package/optimize/es/components/drag_and_drop/index.js +3 -2
  94. package/optimize/es/components/highlight/highlight.js +2 -2
  95. package/optimize/es/components/inline_edit/inline_edit_text.js +2 -3
  96. package/optimize/es/components/inline_edit/inline_edit_title.js +2 -3
  97. package/optimize/es/components/inner_text/index.js +1 -2
  98. package/optimize/es/components/markdown_editor/markdown_actions.js +1 -1
  99. package/optimize/es/components/markdown_editor/markdown_editor_text_area.js +10 -4
  100. package/optimize/es/components/modal/confirm_modal.js +11 -24
  101. package/optimize/es/components/outside_click_detector/outside_click_detector.js +10 -11
  102. package/optimize/es/components/popover/wrapping_popover.js +1 -9
  103. package/optimize/es/components/portal/portal.js +34 -25
  104. package/optimize/es/components/timeline/timeline_item_icon.js +3 -3
  105. package/optimize/es/components/tour/tour_step.js +16 -12
  106. package/optimize/es/services/color/eui_palettes.js +7 -1
  107. package/optimize/es/services/color/index.js +1 -1
  108. package/optimize/es/services/index.js +1 -1
  109. package/optimize/es/services/time/timer.js +3 -5
  110. package/optimize/es/test/rtl/component_helpers.js +1 -1
  111. package/optimize/es/test/rtl/index.js +2 -1
  112. package/optimize/es/test/rtl/render_hook.js +23 -0
  113. package/optimize/lib/components/datagrid/body/data_grid_cell.js +10 -9
  114. package/optimize/lib/components/datagrid/controls/data_grid_toolbar.js +36 -28
  115. package/optimize/lib/components/datagrid/controls/display_selector.js +1 -1
  116. package/optimize/lib/components/datagrid/utils/in_memory.js +2 -2
  117. package/optimize/lib/components/datagrid/utils/row_heights.js +4 -4
  118. package/optimize/lib/components/date_picker/date_picker.js +1 -1
  119. package/optimize/lib/components/drag_and_drop/drag_drop_context.js +2 -2
  120. package/optimize/lib/components/drag_and_drop/draggable.js +3 -3
  121. package/optimize/lib/components/drag_and_drop/droppable.js +2 -2
  122. package/optimize/lib/components/highlight/highlight.js +2 -2
  123. package/optimize/lib/components/inline_edit/inline_edit_text.js +2 -3
  124. package/optimize/lib/components/inline_edit/inline_edit_title.js +2 -3
  125. package/optimize/lib/components/inner_text/index.js +1 -8
  126. package/optimize/lib/components/markdown_editor/markdown_actions.js +1 -1
  127. package/optimize/lib/components/markdown_editor/markdown_editor_text_area.js +10 -4
  128. package/optimize/lib/components/modal/confirm_modal.js +10 -23
  129. package/optimize/lib/components/outside_click_detector/outside_click_detector.js +10 -11
  130. package/optimize/lib/components/popover/wrapping_popover.js +1 -9
  131. package/optimize/lib/components/portal/portal.js +34 -25
  132. package/optimize/lib/components/timeline/timeline_item_icon.js +6 -4
  133. package/optimize/lib/components/tour/tour_step.js +15 -11
  134. package/optimize/lib/services/color/eui_palettes.js +9 -2
  135. package/optimize/lib/services/color/index.js +7 -0
  136. package/optimize/lib/services/index.js +7 -0
  137. package/optimize/lib/services/time/timer.js +3 -5
  138. package/optimize/lib/test/rtl/component_helpers.js +1 -1
  139. package/optimize/lib/test/rtl/index.js +13 -1
  140. package/optimize/lib/test/rtl/render_hook.js +29 -0
  141. package/package.json +23 -16
  142. package/test-env/components/combo_box/combo_box_options_list/combo_box_title.js +1 -3
  143. package/test-env/components/datagrid/body/data_grid_body.js +7 -7
  144. package/test-env/components/datagrid/body/data_grid_body_custom.js +7 -7
  145. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  146. package/test-env/components/datagrid/body/data_grid_cell.js +14 -13
  147. package/test-env/components/datagrid/body/header/data_grid_control_header_cell.js +2 -2
  148. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +1 -1
  149. package/test-env/components/datagrid/body/header/data_grid_header_row.js +5 -5
  150. package/test-env/components/datagrid/controls/data_grid_toolbar.js +36 -28
  151. package/test-env/components/datagrid/controls/display_selector.js +1 -1
  152. package/test-env/components/datagrid/data_grid.js +7 -7
  153. package/test-env/components/datagrid/utils/in_memory.js +4 -4
  154. package/test-env/components/datagrid/utils/row_heights.js +4 -4
  155. package/test-env/components/date_picker/date_picker.js +1 -1
  156. package/test-env/components/drag_and_drop/drag_drop_context.js +2 -2
  157. package/test-env/components/drag_and_drop/draggable.js +3 -3
  158. package/test-env/components/drag_and_drop/droppable.js +2 -2
  159. package/test-env/components/header/header_section/header_section_item_button.js +94 -0
  160. package/test-env/components/highlight/highlight.js +2 -2
  161. package/test-env/components/inline_edit/inline_edit_text.js +2 -3
  162. package/test-env/components/inline_edit/inline_edit_title.js +2 -3
  163. package/test-env/components/inner_text/index.js +1 -8
  164. package/test-env/components/markdown_editor/markdown_actions.js +1 -1
  165. package/test-env/components/markdown_editor/markdown_editor_text_area.js +10 -4
  166. package/test-env/components/modal/confirm_modal.js +10 -23
  167. package/test-env/components/outside_click_detector/outside_click_detector.js +10 -11
  168. package/test-env/components/page/page_template.js +8 -8
  169. package/test-env/components/popover/wrapping_popover.js +1 -9
  170. package/test-env/components/portal/portal.js +34 -25
  171. package/test-env/components/tabs/tabs.js +25 -0
  172. package/test-env/components/timeline/timeline_item_icon.js +6 -3
  173. package/test-env/components/tour/tour_step.js +15 -11
  174. package/test-env/services/color/eui_palettes.js +9 -2
  175. package/test-env/services/color/index.js +7 -0
  176. package/test-env/services/index.js +7 -0
  177. package/test-env/services/time/timer.js +3 -5
  178. package/test-env/test/rtl/component_helpers.js +1 -1
  179. package/test-env/test/rtl/index.js +13 -1
  180. package/test-env/test/rtl/render_hook.js +29 -0
  181. package/es/components/inner_text/render_to_text.js +0 -47
  182. package/lib/components/inner_text/render_to_text.js +0 -54
  183. package/optimize/es/components/inner_text/render_to_text.js +0 -42
  184. package/optimize/lib/components/inner_text/render_to_text.js +0 -52
  185. package/test-env/components/inner_text/render_to_text.js +0 -52
@@ -38,13 +38,19 @@ var EuiMarkdownEditorTextArea = /*#__PURE__*/(0, _react.forwardRef)(function (_r
38
38
  var classes = (0, _classnames.default)('euiMarkdownEditorTextArea', {
39
39
  'euiMarkdownEditorTextArea-isReadOnly': readOnly
40
40
  });
41
+
42
+ // Ignore invalid empty string style values
43
+ var style = {};
44
+ if (height !== '') {
45
+ style.height = height;
46
+ }
47
+ if (maxHeight !== '') {
48
+ style.maxHeight = maxHeight;
49
+ }
41
50
  return (0, _react2.jsx)("textarea", (0, _extends2.default)({
42
51
  ref: ref,
43
52
  "data-test-subj": "euiMarkdownEditorTextArea",
44
- style: {
45
- height: height,
46
- maxHeight: maxHeight
47
- },
53
+ style: style,
48
54
  className: classes
49
55
  }, rest, {
50
56
  rows: 6,
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.EuiConfirmModal = exports.CONFIRM_BUTTON = exports.CANCEL_BUTTON = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
11
  var _react = _interopRequireWildcard(require("react"));
13
12
  var _classnames = _interopRequireDefault(require("classnames"));
@@ -50,33 +49,21 @@ var EuiConfirmModal = function EuiConfirmModal(_ref) {
50
49
  defaultFocusedButton = _ref.defaultFocusedButton,
51
50
  isLoading = _ref.isLoading,
52
51
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
53
- var _useState = (0, _react.useState)(null),
54
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
55
- cancelButton = _useState2[0],
56
- setCancelButton = _useState2[1];
57
- var _useState3 = (0, _react.useState)(null),
58
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
59
- confirmButton = _useState4[0],
60
- setConfirmButton = _useState4[1];
52
+ var cancelButtonRef = (0, _react.useRef)(null);
53
+ var confirmButtonRef = (0, _react.useRef)(null);
61
54
  (0, _react.useEffect)(function () {
62
55
  // We have to do this instead of using `autoFocus` because React's polyfill for auto-focusing
63
56
  // elements conflicts with the focus-trap logic we have on EuiModal.
64
57
  // Wait a beat for the focus-trap to complete, and then set focus to the right button. Check that
65
58
  // the buttons exist first, because it's possible the modal has been closed already.
66
- requestAnimationFrame(function () {
67
- if (defaultFocusedButton === CANCEL_BUTTON && cancelButton) {
68
- cancelButton.focus();
69
- } else if (defaultFocusedButton === CONFIRM_BUTTON && confirmButton) {
70
- confirmButton.focus();
59
+ setTimeout(function () {
60
+ if (defaultFocusedButton === CANCEL_BUTTON && cancelButtonRef.current) {
61
+ cancelButtonRef.current.focus();
62
+ } else if (defaultFocusedButton === CONFIRM_BUTTON && confirmButtonRef.current) {
63
+ confirmButtonRef.current.focus();
71
64
  }
72
65
  });
73
- });
74
- var confirmRef = function confirmRef(node) {
75
- return setConfirmButton(node);
76
- };
77
- var cancelRef = function cancelRef(node) {
78
- return setCancelButton(node);
79
- };
66
+ }, [defaultFocusedButton, cancelButtonRef, confirmButtonRef]);
80
67
  var classes = (0, _classnames.default)('euiModal--confirmation', className);
81
68
  var euiTheme = (0, _services.useEuiTheme)();
82
69
  var styles = (0, _modal2.euiModalStyles)(euiTheme);
@@ -102,13 +89,13 @@ var EuiConfirmModal = function EuiConfirmModal(_ref) {
102
89
  }, message)), (0, _react2.jsx)(_modal_footer.EuiModalFooter, null, (0, _react2.jsx)(_button.EuiButtonEmpty, {
103
90
  "data-test-subj": "confirmModalCancelButton",
104
91
  onClick: onCancel,
105
- buttonRef: cancelRef
92
+ buttonRef: cancelButtonRef
106
93
  }, cancelButtonText), (0, _react2.jsx)(_button.EuiButton, {
107
94
  "data-test-subj": "confirmModalConfirmButton",
108
95
  onClick: onConfirm,
109
96
  isLoading: isLoading,
110
97
  fill: true,
111
- buttonRef: confirmRef,
98
+ buttonRef: confirmButtonRef,
112
99
  color: buttonColor,
113
100
  isDisabled: confirmButtonDisabled
114
101
  }, confirmButtonText)));
@@ -27,17 +27,6 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
27
27
  var EuiOutsideClickDetector = /*#__PURE__*/function (_Component) {
28
28
  (0, _inherits2.default)(EuiOutsideClickDetector, _Component);
29
29
  var _super = _createSuper(EuiOutsideClickDetector);
30
- // We are working with the assumption that a click event is
31
- // equivalent to a sequential, compound press and release of
32
- // the pointing device (mouse, finger, stylus, etc.).
33
- // A click event's target can be imprecise, as the value will be
34
- // the closest common ancestor of the press (mousedown, touchstart)
35
- // and release (mouseup, touchend) events (often <body />) if
36
- // the the target of each event differs.
37
- // We need the actual event targets to make the correct decisions
38
- // about user intention. So, consider the down/start and up/end
39
- // items below as the deconstruction of a click event.
40
-
41
30
  function EuiOutsideClickDetector(props) {
42
31
  var _this;
43
32
  (0, _classCallCheck2.default)(this, EuiOutsideClickDetector);
@@ -59,6 +48,16 @@ var EuiOutsideClickDetector = /*#__PURE__*/function (_Component) {
59
48
  // virtual DOM and executes EuiClickDetector's onClick handler,
60
49
  // stamping the id even though the event originates outside
61
50
  // this component's reified DOM tree.
51
+ // We are working with the assumption that a click event is
52
+ // equivalent to a sequential, compound press and release of
53
+ // the pointing device (mouse, finger, stylus, etc.).
54
+ // A click event's target can be imprecise, as the value will be
55
+ // the closest common ancestor of the press (mousedown, touchstart)
56
+ // and release (mouseup, touchend) events (often <body />) if
57
+ // the the target of each event differs.
58
+ // We need the actual event targets to make the correct decisions
59
+ // about user intention. So, consider the down/start and up/end
60
+ // items below as the deconstruction of a click event.
62
61
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "id", void 0);
63
62
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "capturedDownIds", void 0);
64
63
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onClickOutside", function (e) {
@@ -46,23 +46,15 @@ var EuiWrappingPopover = /*#__PURE__*/function (_Component) {
46
46
  }
47
47
  _this = _super.call.apply(_super, [this].concat(args));
48
48
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "portal", null);
49
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "anchor", null);
50
49
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setPortalRef", function (node) {
51
50
  _this.portal = node;
52
51
  });
53
52
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setAnchorRef", function (node) {
54
- _this.anchor = node;
53
+ node === null || node === void 0 ? void 0 : node.insertAdjacentElement('beforebegin', _this.props.button);
55
54
  });
56
55
  return _this;
57
56
  }
58
57
  (0, _createClass2.default)(EuiWrappingPopover, [{
59
- key: "componentDidMount",
60
- value: function componentDidMount() {
61
- if (this.anchor) {
62
- this.anchor.insertAdjacentElement('beforebegin', this.props.button);
63
- }
64
- }
65
- }, {
66
58
  key: "componentWillUnmount",
67
59
  value: function componentWillUnmount() {
68
60
  if (this.props.button.parentNode) {
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.insertPositions = exports.INSERT_POSITIONS = exports.EuiPortal = void 0;
8
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
10
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
11
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
12
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
@@ -41,35 +40,41 @@ var EuiPortal = /*#__PURE__*/function (_Component) {
41
40
  var _this;
42
41
  (0, _classCallCheck2.default)(this, EuiPortal);
43
42
  _this = _super.call(this, props);
44
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "portalNode", null);
45
- if (typeof window === 'undefined') return (0, _possibleConstructorReturn2.default)(_this); // Prevent SSR errors
46
-
47
- var insert = _this.props.insert;
48
- _this.portalNode = document.createElement('div');
49
- _this.portalNode.dataset.euiportal = 'true';
50
- if (insert == null) {
51
- // no insertion defined, append to body
52
- document.body.appendChild(_this.portalNode);
53
- } else {
54
- // inserting before or after an element
55
- var sibling = insert.sibling,
56
- position = insert.position;
57
- sibling.insertAdjacentElement(insertPositions[position], _this.portalNode);
58
- }
43
+ _this.state = {
44
+ portalNode: null
45
+ };
59
46
  return _this;
60
47
  }
61
48
  (0, _createClass2.default)(EuiPortal, [{
62
49
  key: "componentDidMount",
63
50
  value: function componentDidMount() {
64
- this.setThemeColor();
65
- this.updatePortalRef(this.portalNode);
51
+ var insert = this.props.insert;
52
+ var portalNode = document.createElement('div');
53
+ portalNode.dataset.euiportal = 'true';
54
+ if (insert == null) {
55
+ // no insertion defined, append to body
56
+ document.body.appendChild(portalNode);
57
+ } else {
58
+ // inserting before or after an element
59
+ var sibling = insert.sibling,
60
+ position = insert.position;
61
+ sibling.insertAdjacentElement(insertPositions[position], portalNode);
62
+ }
63
+ this.setThemeColor(portalNode);
64
+ this.updatePortalRef(portalNode);
65
+
66
+ // Update state with portalNode to intentionally trigger component rerender
67
+ // and call createPortal with correct root element in render()
68
+ this.setState({
69
+ portalNode: portalNode
70
+ });
66
71
  }
67
72
  }, {
68
73
  key: "componentWillUnmount",
69
74
  value: function componentWillUnmount() {
70
- var _this$portalNode;
71
- if ((_this$portalNode = this.portalNode) !== null && _this$portalNode !== void 0 && _this$portalNode.parentNode) {
72
- this.portalNode.parentNode.removeChild(this.portalNode);
75
+ var portalNode = this.state.portalNode;
76
+ if (portalNode !== null && portalNode !== void 0 && portalNode.parentNode) {
77
+ portalNode.parentNode.removeChild(portalNode);
73
78
  }
74
79
  this.updatePortalRef(null);
75
80
  }
@@ -77,13 +82,13 @@ var EuiPortal = /*#__PURE__*/function (_Component) {
77
82
  // Set the inherited color of the portal based on the wrapping EuiThemeProvider
78
83
  }, {
79
84
  key: "setThemeColor",
80
- value: function setThemeColor() {
81
- if (this.portalNode && this.context) {
85
+ value: function setThemeColor(portalNode) {
86
+ if (this.context) {
82
87
  var _this$context = this.context,
83
88
  hasDifferentColorFromGlobalTheme = _this$context.hasDifferentColorFromGlobalTheme,
84
89
  colorClassName = _this$context.colorClassName;
85
90
  if (hasDifferentColorFromGlobalTheme && this.props.insert == null) {
86
- this.portalNode.classList.add(colorClassName);
91
+ portalNode.classList.add(colorClassName);
87
92
  }
88
93
  }
89
94
  }
@@ -97,7 +102,11 @@ var EuiPortal = /*#__PURE__*/function (_Component) {
97
102
  }, {
98
103
  key: "render",
99
104
  value: function render() {
100
- return this.portalNode ? /*#__PURE__*/(0, _reactDom.createPortal)(this.props.children, this.portalNode) : null;
105
+ var portalNode = this.state.portalNode;
106
+ if (!portalNode) {
107
+ return null;
108
+ }
109
+ return /*#__PURE__*/(0, _reactDom.createPortal)(this.props.children, portalNode);
101
110
  }
102
111
  }]);
103
112
  return EuiPortal;
@@ -1,15 +1,17 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.EuiTimelineItemIcon = void 0;
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
  var _avatar = require("../avatar");
10
10
  var _services = require("../../services");
11
11
  var _timeline_item_icon = require("./timeline_item_icon.styles");
12
12
  var _react2 = require("@emotion/react");
13
+ 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); }
14
+ 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; }
13
15
  /*
14
16
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
15
17
  * or more contributor license agreements. Licensed under the Elastic License
@@ -28,11 +30,11 @@ var EuiTimelineItemIcon = function EuiTimelineItemIcon(_ref) {
28
30
  var cssStyles = [styles.euiTimelineItemIcon, styles[verticalAlign]];
29
31
  var cssContentStyles = styles.euiTimelineItemIcon__content;
30
32
  var ariaLabel = iconAriaLabel ? iconAriaLabel : '';
31
- var iconRender = typeof icon === 'string' ? (0, _react2.jsx)(_avatar.EuiAvatar, {
33
+ var iconRender = /*#__PURE__*/(0, _react.isValidElement)(icon) ? icon : (0, _react2.jsx)(_avatar.EuiAvatar, {
32
34
  color: "subdued",
33
35
  name: ariaLabel,
34
36
  iconType: icon
35
- }) : icon;
37
+ });
36
38
  return (0, _react2.jsx)("div", {
37
39
  css: cssStyles
38
40
  }, (0, _react2.jsx)("div", {
@@ -67,12 +67,10 @@ var EuiTourStep = function EuiTourStep(_ref) {
67
67
  if (step === 0) {
68
68
  console.warn('EuiTourStep `step` should 1-based indexing. Please update to eliminate 0 indexes.');
69
69
  }
70
- var _useState = (0, _react.useState)(false),
70
+ var _useState = (0, _react.useState)(null),
71
71
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
72
- hasValidAnchor = _useState2[0],
73
- setHasValidAnchor = _useState2[1];
74
- var animationFrameId = (0, _react.useRef)();
75
- var anchorNode = (0, _react.useRef)(null);
72
+ anchorNode = _useState2[0],
73
+ setAnchorNode = _useState2[1];
76
74
  var _useState3 = (0, _react.useState)(),
77
75
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
78
76
  popoverPosition = _useState4[0],
@@ -81,14 +79,20 @@ var EuiTourStep = function EuiTourStep(_ref) {
81
79
  setPopoverPosition(position);
82
80
  };
83
81
  (0, _react.useEffect)(function () {
82
+ var timeout;
84
83
  if (anchor) {
85
- animationFrameId.current = window.requestAnimationFrame(function () {
86
- anchorNode.current = (0, _services.findElementBySelectorOrRef)(anchor);
87
- setHasValidAnchor(anchorNode.current ? true : false);
84
+ // Wait until next tick to find anchor node in case it's not already
85
+ // in DOM requestAnimationFrame isn't used here because we don't need to
86
+ // synchronize with repainting ticks and the updated value still
87
+ // needs to go through a react DOM rerender which may take more than
88
+ // 1 frame (16ms) of time.
89
+ // TODO: It would be ideal to have some kind of intersection observer here instead
90
+ timeout = window.setTimeout(function () {
91
+ setAnchorNode((0, _services.findElementBySelectorOrRef)(anchor));
88
92
  });
89
93
  }
90
94
  return function () {
91
- animationFrameId.current && window.cancelAnimationFrame(animationFrameId.current);
95
+ timeout && window.clearTimeout(timeout);
92
96
  };
93
97
  }, [anchor]);
94
98
  var classes = (0, _classnames.default)('euiTour', className);
@@ -200,8 +204,8 @@ var EuiTourStep = function EuiTourStep(_ref) {
200
204
  button: children
201
205
  }, popoverProps), layout);
202
206
  }
203
- return hasValidAnchor && anchorNode.current ? (0, _react2.jsx)(_popover.EuiWrappingPopover, (0, _extends2.default)({
204
- button: anchorNode.current
207
+ return anchorNode ? (0, _react2.jsx)(_popover.EuiWrappingPopover, (0, _extends2.default)({
208
+ button: anchorNode
205
209
  }, popoverProps), layout) : null;
206
210
  };
207
211
  exports.EuiTourStep = EuiTourStep;
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.euiPaletteWarm = exports.euiPalettePositive = exports.euiPaletteNegative = exports.euiPaletteGray = exports.euiPaletteForTemperature = exports.euiPaletteForStatus = exports.euiPaletteForLightBackground = exports.euiPaletteForDarkBackground = exports.euiPaletteCool = exports.euiPaletteComplimentary = exports.euiPaletteColorBlindBehindText = exports.euiPaletteColorBlind = void 0;
7
+ exports.euiPaletteWarm = exports.euiPalettePositive = exports.euiPaletteNegative = exports.euiPaletteGray = exports.euiPaletteForTemperature = exports.euiPaletteForStatus = exports.euiPaletteForLightBackground = exports.euiPaletteForDarkBackground = exports.euiPaletteCool = exports.euiPaletteComplimentary = exports.euiPaletteComplementary = exports.euiPaletteColorBlindBehindText = exports.euiPaletteColorBlind = void 0;
8
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
9
  var _chromaJs = _interopRequireDefault(require("chroma-js"));
10
10
  var _color_palette = require("./color_palette");
@@ -155,12 +155,19 @@ var euiPaletteForTemperature = function euiPaletteForTemperature(steps) {
155
155
  return euiPalette([].concat((0, _toConsumableArray2.default)(cools), (0, _toConsumableArray2.default)(warms)), steps, true);
156
156
  };
157
157
  exports.euiPaletteForTemperature = euiPaletteForTemperature;
158
- var euiPaletteComplimentary = function euiPaletteComplimentary(steps) {
158
+ var euiPaletteComplementary = function euiPaletteComplementary(steps) {
159
159
  if (steps === 1) {
160
160
  return [euiPaletteColorBlind()[1]];
161
161
  }
162
162
  return euiPalette([euiPaletteColorBlind()[1], euiPaletteColorBlind()[7]], steps, true);
163
163
  };
164
+
165
+ /**
166
+ * The old typo'd name for this palette remains exported until the end of its deprecation period
167
+ * @deprecated Use euiPaletteComplementary instead
168
+ */
169
+ exports.euiPaletteComplementary = euiPaletteComplementary;
170
+ var euiPaletteComplimentary = euiPaletteComplementary;
164
171
  exports.euiPaletteComplimentary = euiPaletteComplimentary;
165
172
  var euiPaletteNegative = function euiPaletteNegative(steps) {
166
173
  if (steps === 1) {
@@ -24,6 +24,7 @@ var _exportNames = {
24
24
  euiPaletteForStatus: true,
25
25
  euiPaletteForTemperature: true,
26
26
  euiPaletteComplimentary: true,
27
+ euiPaletteComplementary: true,
27
28
  euiPaletteNegative: true,
28
29
  euiPalettePositive: true,
29
30
  euiPaletteCool: true,
@@ -73,6 +74,12 @@ Object.defineProperty(exports, "euiPaletteColorBlindBehindText", {
73
74
  return _eui_palettes.euiPaletteColorBlindBehindText;
74
75
  }
75
76
  });
77
+ Object.defineProperty(exports, "euiPaletteComplementary", {
78
+ enumerable: true,
79
+ get: function get() {
80
+ return _eui_palettes.euiPaletteComplementary;
81
+ }
82
+ });
76
83
  Object.defineProperty(exports, "euiPaletteComplimentary", {
77
84
  enumerable: true,
78
85
  get: function get() {
@@ -30,6 +30,7 @@ var _exportNames = {
30
30
  euiPaletteColorBlind: true,
31
31
  euiPaletteColorBlindBehindText: true,
32
32
  euiPaletteComplimentary: true,
33
+ euiPaletteComplementary: true,
33
34
  euiPaletteCool: true,
34
35
  euiPaletteForDarkBackground: true,
35
36
  euiPaletteForLightBackground: true,
@@ -264,6 +265,12 @@ Object.defineProperty(exports, "euiPaletteColorBlindBehindText", {
264
265
  return _color.euiPaletteColorBlindBehindText;
265
266
  }
266
267
  });
268
+ Object.defineProperty(exports, "euiPaletteComplementary", {
269
+ enumerable: true,
270
+ get: function get() {
271
+ return _color.euiPaletteComplementary;
272
+ }
273
+ });
267
274
  Object.defineProperty(exports, "euiPaletteComplimentary", {
268
275
  enumerable: true,
269
276
  get: function get() {
@@ -15,13 +15,11 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
15
15
  * in compliance with, at your election, the Elastic License 2.0 or the Server
16
16
  * Side Public License, v 1.
17
17
  */
18
- var Timer = /*#__PURE__*/(0, _createClass2.default)(
19
- // In a browser this is a number, but in node it's a NodeJS.Time (a
20
- // class). We don't care about this difference.
21
-
22
- function Timer(callback, timeMs) {
18
+ var Timer = /*#__PURE__*/(0, _createClass2.default)(function Timer(callback, timeMs) {
23
19
  var _this = this;
24
20
  (0, _classCallCheck2.default)(this, Timer);
21
+ // In a browser this is a number, but in node it's a NodeJS.Time (a
22
+ // class). We don't care about this difference.
25
23
  (0, _defineProperty2.default)(this, "id", void 0);
26
24
  (0, _defineProperty2.default)(this, "callback", void 0);
27
25
  (0, _defineProperty2.default)(this, "finishTime", void 0);
@@ -82,7 +82,7 @@ var waitForEuiToolTipVisible = /*#__PURE__*/function () {
82
82
  var tooltip = document.querySelector('.euiToolTipPopover');
83
83
  expect(tooltip).toBeVisible();
84
84
  }, {
85
- timeout: 1500
85
+ timeout: 3000
86
86
  } // Account for long delay on tooltips
87
87
  );
88
88
  case 2:
@@ -81,4 +81,16 @@ Object.keys(_component_helpers).forEach(function (key) {
81
81
  });
82
82
  });
83
83
  var _data_test_subj_queries = require("./data_test_subj_queries");
84
- var _custom_render = require("./custom_render");
84
+ var _custom_render = require("./custom_render");
85
+ var _render_hook = require("./render_hook");
86
+ Object.keys(_render_hook).forEach(function (key) {
87
+ if (key === "default" || key === "__esModule") return;
88
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
89
+ if (key in exports && exports[key] === _render_hook[key]) return;
90
+ Object.defineProperty(exports, key, {
91
+ enumerable: true,
92
+ get: function get() {
93
+ return _render_hook[key];
94
+ }
95
+ });
96
+ });
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.renderHookAct = exports.renderHook = void 0;
7
+ /*
8
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
9
+ * or more contributor license agreements. Licensed under the Elastic License
10
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
11
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
12
+ * Side Public License, v 1.
13
+ */
14
+
15
+ /* eslint-disable @typescript-eslint/no-var-requires */
16
+
17
+ var renderHook;
18
+ exports.renderHook = renderHook;
19
+ var renderHookAct;
20
+ exports.renderHookAct = renderHookAct;
21
+ if (process.env.REACT_VERSION === '18') {
22
+ exports.renderHook = renderHook = require('@testing-library/react').renderHook;
23
+ exports.renderHookAct = renderHookAct = require('@testing-library/react').act;
24
+ } else {
25
+ exports.renderHook = renderHook = require('@testing-library/react-hooks').renderHook;
26
+ exports.renderHookAct = renderHookAct = require('@testing-library/react-hooks').act;
27
+ }
28
+
29
+ /* eslint-enable @typescript-eslint/no-var-requires */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@elastic/eui",
3
3
  "description": "Elastic UI Component Library",
4
- "version": "85.1.0",
4
+ "version": "86.0.0",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "main": "lib",
7
7
  "module": "es",
@@ -32,7 +32,7 @@
32
32
  "lint-sass": "yarn stylelint \"**/*.scss\" --quiet-deprecation-warnings",
33
33
  "test": "yarn lint && yarn test-unit",
34
34
  "test-ci": "yarn test && yarn test-cypress",
35
- "test-unit": "cross-env NODE_ENV=test jest --config ./scripts/jest/config.json",
35
+ "test-unit": "cross-env NODE_ENV=test jest --config ./scripts/jest/config.js",
36
36
  "test-a11y": "node ./scripts/a11y-testing",
37
37
  "test-staged": "yarn lint && node scripts/test-staged.js",
38
38
  "test-cypress": "node ./scripts/cypress",
@@ -56,17 +56,18 @@
56
56
  },
57
57
  "resolutions": {
58
58
  "**/prismjs": "1.27.0",
59
- "**/react": "^17.0.0",
59
+ "**/react": "^18",
60
+ "**/@types/react": "^18",
60
61
  "react-focus-lock": "^2.9.5"
61
62
  },
62
63
  "pre-commit": [
63
64
  "test-staged"
64
65
  ],
65
66
  "dependencies": {
67
+ "@hello-pangea/dnd": "^16.2.0",
66
68
  "@types/chroma-js": "^2.0.0",
67
69
  "@types/lodash": "^4.14.194",
68
70
  "@types/numeral": "^0.0.28",
69
- "@types/react-beautiful-dnd": "^13.1.2",
70
71
  "@types/react-input-autosize": "^2.2.1",
71
72
  "@types/react-virtualized-auto-sizer": "^1.0.1",
72
73
  "@types/react-window": "^1.8.5",
@@ -79,7 +80,6 @@
79
80
  "mdast-util-to-hast": "^10.0.0",
80
81
  "numeral": "^2.0.6",
81
82
  "prop-types": "^15.6.0",
82
- "react-beautiful-dnd": "^13.1.0",
83
83
  "react-dropzone": "^11.5.3",
84
84
  "react-element-to-jsx-string": "^14.3.4",
85
85
  "react-focus-on": "^3.9.1",
@@ -116,8 +116,10 @@
116
116
  "@babel/preset-react": "^7.18.6",
117
117
  "@babel/preset-typescript": "^7.21.5",
118
118
  "@babel/template": "^7.21.9",
119
+ "@cfaester/enzyme-adapter-react-18": "^0.7.0",
119
120
  "@cypress/code-coverage": "^3.10.0",
120
- "@cypress/react": "^5.10.3",
121
+ "@cypress/react": "^7.0.3",
122
+ "@cypress/react18": "^2.0.0",
121
123
  "@cypress/webpack-dev-server": "^1.7.0",
122
124
  "@elastic/charts": "^53.1.1",
123
125
  "@elastic/datemath": "^5.0.3",
@@ -139,17 +141,18 @@
139
141
  "@svgr/core": "8.0.0",
140
142
  "@svgr/plugin-jsx": "^8.0.1",
141
143
  "@svgr/plugin-svgo": "^8.0.1",
142
- "@testing-library/dom": "^8.12.0",
143
144
  "@testing-library/jest-dom": "^5.16.3",
144
- "@testing-library/react": "^12.1.5",
145
+ "@testing-library/react": "^14.0.0",
146
+ "@testing-library/react-16-17": "npm:@testing-library/react@^12.1.5",
145
147
  "@testing-library/react-hooks": "^7.0.2",
146
148
  "@testing-library/user-event": "^13.5.0",
149
+ "@types/cheerio": "^0.22.31",
147
150
  "@types/classnames": "^2.2.10",
148
151
  "@types/enzyme": "^3.10.5",
149
152
  "@types/jest": "^24.0.6",
150
153
  "@types/node": "^10.17.5",
151
- "@types/react": "^17.0.38",
152
- "@types/react-dom": "^17.0.11",
154
+ "@types/react": "^18.2.14",
155
+ "@types/react-dom": "^18.2.6",
153
156
  "@types/react-is": "^17.0.3",
154
157
  "@types/react-router-dom": "^5.3.3",
155
158
  "@types/tabbable": "^3.1.2",
@@ -225,9 +228,13 @@
225
228
  "prop-types": "^15.6.0",
226
229
  "puppeteer": "^5.5.0",
227
230
  "raw-loader": "^4.0.1",
228
- "react": "^17.0.2",
231
+ "react": "^18.2.0",
232
+ "react-16": "npm:react@^16.14.0",
233
+ "react-17": "npm:react@^17.0.2",
229
234
  "react-docgen-typescript": "^2.2.2",
230
- "react-dom": "^17.0.2",
235
+ "react-dom": "^18.2.0",
236
+ "react-dom-16": "npm:react-dom@^16.14.0",
237
+ "react-dom-17": "npm:react-dom@^17.0.2",
231
238
  "react-helmet": "^6.1.0",
232
239
  "react-redux": "^7.2.1",
233
240
  "react-refresh": "^0.11.0",
@@ -261,12 +268,12 @@
261
268
  "@elastic/datemath": "^5.0.2",
262
269
  "@emotion/css": "11.x",
263
270
  "@emotion/react": "11.x",
264
- "@types/react": "^16.9 || ^17.0",
265
- "@types/react-dom": "^16.9 || ^17.0",
271
+ "@types/react": "^16.9 || ^17.0 || ^18.0",
272
+ "@types/react-dom": "^16.9 || ^17.0 || ^18.0",
266
273
  "moment": "^2.13.0",
267
274
  "prop-types": "^15.5.0",
268
- "react": "^16.12 || ^17.0",
269
- "react-dom": "^16.12 || ^17.0",
275
+ "react": "^16.12 || ^17.0 || ^18.0",
276
+ "react-dom": "^16.12 || ^17.0 || ^18.0",
270
277
  "typescript": "~4.5.3"
271
278
  },
272
279
  "files": [
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.EuiComboBoxTitle = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
- var _propTypes = _interopRequireDefault(require("prop-types"));
10
9
  var _react2 = require("@emotion/react");
11
10
  /*
12
11
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -22,5 +21,4 @@ var EuiComboBoxTitle = function EuiComboBoxTitle(_ref) {
22
21
  className: "euiComboBoxTitle"
23
22
  }, children);
24
23
  };
25
- exports.EuiComboBoxTitle = EuiComboBoxTitle;
26
- EuiComboBoxTitle.propTypes = {};
24
+ exports.EuiComboBoxTitle = EuiComboBoxTitle;