@elastic/eui 87.0.0 → 87.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/dist/eui_theme_dark.css +0 -234
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +0 -234
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/accordion/accordion.js +82 -35
  6. package/es/components/auto_sizer/index.js +1 -1
  7. package/es/components/breadcrumbs/breadcrumb.js +2 -3
  8. package/es/components/breadcrumbs/breadcrumbs.js +2 -3
  9. package/es/components/code/code_block_virtualized.js +25 -17
  10. package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +14 -1
  11. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +8 -7
  12. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +6 -6
  13. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +7 -7
  14. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -6
  15. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +9 -9
  16. package/es/components/color_picker/color_palette_picker/color_palette_picker.js +1 -1
  17. package/es/components/control_bar/control_bar.js +2 -3
  18. package/es/components/date_picker/date_picker_range.js +5 -2
  19. package/es/components/date_picker/super_date_picker/super_date_picker.js +2 -2
  20. package/es/components/date_picker/super_date_picker/super_update_button.js +1 -1
  21. package/es/components/empty_prompt/empty_prompt.js +0 -1
  22. package/es/components/flyout/flyout.js +9 -7
  23. package/es/components/flyout/flyout_body.js +15 -3
  24. package/es/components/form/range/dual_range.js +33 -6
  25. package/es/components/form/range/range.js +31 -6
  26. package/es/components/form/super_select/super_select.js +1 -1
  27. package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +2 -3
  28. package/es/components/header/header_links/header_links.js +2 -3
  29. package/es/components/page/page_header/page_header_content.js +2 -3
  30. package/es/components/page/page_sidebar/page_sidebar.js +2 -2
  31. package/es/components/page_template/page_template.js +14 -5
  32. package/es/components/popover/input_popover.js +24 -9
  33. package/es/components/popover/popover.js +4 -6
  34. package/es/components/resizable_container/index.js +2 -1
  35. package/es/components/resizable_container/resizable_button.js +81 -50
  36. package/es/components/resizable_container/resizable_button.styles.js +66 -0
  37. package/es/components/resizable_container/resizable_collapse_button.js +24 -14
  38. package/es/components/resizable_container/resizable_collapse_button.styles.js +85 -0
  39. package/es/components/selectable/selectable_list/selectable_list.js +97 -79
  40. package/es/components/steps/step.styles.js +5 -5
  41. package/es/components/tool_tip/icon_tip.js +1 -1
  42. package/es/components/tool_tip/tool_tip.js +4 -14
  43. package/es/components/tool_tip/tool_tip_anchor.js +5 -14
  44. package/es/components/tour/tour_step.js +2 -3
  45. package/es/services/accessibility/html_id_generator.js +19 -3
  46. package/es/themes/amsterdam/global_styling/mixins/shadow.js +0 -1
  47. package/eui.d.ts +198 -56
  48. package/i18ntokens.json +64 -46
  49. package/lib/components/accordion/accordion.js +82 -35
  50. package/lib/components/auto_sizer/index.js +11 -7
  51. package/lib/components/breadcrumbs/breadcrumb.js +2 -3
  52. package/lib/components/code/code_block_virtualized.js +25 -17
  53. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +14 -1
  54. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +8 -7
  55. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +6 -6
  56. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +7 -7
  57. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -6
  58. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +9 -9
  59. package/lib/components/color_picker/color_palette_picker/color_palette_picker.js +1 -1
  60. package/lib/components/date_picker/date_picker_range.js +5 -2
  61. package/lib/components/date_picker/super_date_picker/super_date_picker.js +2 -2
  62. package/lib/components/date_picker/super_date_picker/super_update_button.js +1 -1
  63. package/lib/components/empty_prompt/empty_prompt.js +0 -1
  64. package/lib/components/flyout/flyout.js +9 -7
  65. package/lib/components/flyout/flyout_body.js +15 -3
  66. package/lib/components/form/range/dual_range.js +33 -6
  67. package/lib/components/form/range/range.js +14 -6
  68. package/lib/components/form/super_select/super_select.js +1 -1
  69. package/lib/components/page/page_sidebar/page_sidebar.js +1 -1
  70. package/lib/components/page_template/page_template.js +14 -5
  71. package/lib/components/popover/input_popover.js +23 -8
  72. package/lib/components/popover/popover.js +4 -6
  73. package/lib/components/resizable_container/index.js +8 -1
  74. package/lib/components/resizable_container/resizable_button.js +83 -51
  75. package/lib/components/resizable_container/resizable_button.styles.js +71 -0
  76. package/lib/components/resizable_container/resizable_collapse_button.js +24 -14
  77. package/lib/components/resizable_container/resizable_collapse_button.styles.js +90 -0
  78. package/lib/components/selectable/selectable_list/selectable_list.js +97 -79
  79. package/lib/components/steps/step.styles.js +5 -5
  80. package/lib/components/tool_tip/icon_tip.js +1 -1
  81. package/lib/components/tool_tip/tool_tip.js +4 -14
  82. package/lib/components/tool_tip/tool_tip_anchor.js +5 -13
  83. package/lib/services/accessibility/html_id_generator.js +21 -2
  84. package/lib/themes/amsterdam/global_styling/mixins/shadow.js +0 -1
  85. package/optimize/es/components/accordion/accordion.js +82 -35
  86. package/optimize/es/components/auto_sizer/index.js +1 -1
  87. package/optimize/es/components/code/code_block_virtualized.js +25 -17
  88. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +5 -1
  89. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +2 -1
  90. package/optimize/es/components/date_picker/date_picker_range.js +5 -2
  91. package/optimize/es/components/flyout/flyout.js +9 -7
  92. package/optimize/es/components/flyout/flyout_body.js +4 -2
  93. package/optimize/es/components/form/range/dual_range.js +7 -4
  94. package/optimize/es/components/form/range/range.js +5 -4
  95. package/optimize/es/components/page/page_sidebar/page_sidebar.js +2 -2
  96. package/optimize/es/components/page_template/page_template.js +14 -5
  97. package/optimize/es/components/popover/input_popover.js +13 -8
  98. package/optimize/es/components/popover/popover.js +2 -3
  99. package/optimize/es/components/resizable_container/index.js +2 -1
  100. package/optimize/es/components/resizable_container/resizable_button.js +61 -44
  101. package/optimize/es/components/resizable_container/resizable_button.styles.js +66 -0
  102. package/optimize/es/components/resizable_container/resizable_collapse_button.js +19 -11
  103. package/optimize/es/components/resizable_container/resizable_collapse_button.styles.js +85 -0
  104. package/optimize/es/components/selectable/selectable_list/selectable_list.js +97 -79
  105. package/optimize/es/components/steps/step.styles.js +5 -5
  106. package/optimize/es/components/tool_tip/tool_tip.js +3 -13
  107. package/optimize/es/components/tool_tip/tool_tip_anchor.js +4 -8
  108. package/optimize/es/services/accessibility/html_id_generator.js +19 -3
  109. package/optimize/es/themes/amsterdam/global_styling/mixins/shadow.js +0 -1
  110. package/optimize/lib/components/accordion/accordion.js +82 -35
  111. package/optimize/lib/components/auto_sizer/index.js +11 -7
  112. package/optimize/lib/components/code/code_block_virtualized.js +25 -17
  113. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +5 -1
  114. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +2 -1
  115. package/optimize/lib/components/date_picker/date_picker_range.js +5 -2
  116. package/optimize/lib/components/flyout/flyout.js +9 -7
  117. package/optimize/lib/components/flyout/flyout_body.js +4 -2
  118. package/optimize/lib/components/form/range/dual_range.js +7 -4
  119. package/optimize/lib/components/form/range/range.js +5 -4
  120. package/optimize/lib/components/page/page_sidebar/page_sidebar.js +1 -1
  121. package/optimize/lib/components/page_template/page_template.js +14 -5
  122. package/optimize/lib/components/popover/input_popover.js +12 -7
  123. package/optimize/lib/components/popover/popover.js +2 -3
  124. package/optimize/lib/components/resizable_container/index.js +8 -1
  125. package/optimize/lib/components/resizable_container/resizable_button.js +63 -45
  126. package/optimize/lib/components/resizable_container/resizable_button.styles.js +71 -0
  127. package/optimize/lib/components/resizable_container/resizable_collapse_button.js +19 -11
  128. package/optimize/lib/components/resizable_container/resizable_collapse_button.styles.js +90 -0
  129. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +97 -79
  130. package/optimize/lib/components/steps/step.styles.js +5 -5
  131. package/optimize/lib/components/tool_tip/tool_tip.js +3 -13
  132. package/optimize/lib/components/tool_tip/tool_tip_anchor.js +4 -8
  133. package/optimize/lib/services/accessibility/html_id_generator.js +21 -2
  134. package/optimize/lib/themes/amsterdam/global_styling/mixins/shadow.js +0 -1
  135. package/package.json +19 -21
  136. package/src/components/index.scss +0 -1
  137. package/test-env/components/accordion/accordion.js +82 -35
  138. package/test-env/components/auto_sizer/index.js +11 -7
  139. package/test-env/components/breadcrumbs/breadcrumb.js +2 -3
  140. package/test-env/components/code/code_block_virtualized.js +25 -17
  141. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +14 -1
  142. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +8 -7
  143. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +6 -6
  144. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +7 -7
  145. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -6
  146. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +9 -9
  147. package/test-env/components/color_picker/color_palette_picker/color_palette_picker.js +1 -1
  148. package/test-env/components/date_picker/date_picker_range.js +5 -2
  149. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +2 -2
  150. package/test-env/components/date_picker/super_date_picker/super_update_button.js +1 -1
  151. package/test-env/components/empty_prompt/empty_prompt.js +0 -1
  152. package/test-env/components/flyout/flyout_body.js +15 -3
  153. package/test-env/components/form/range/dual_range.js +33 -6
  154. package/test-env/components/form/range/range.js +14 -6
  155. package/test-env/components/form/super_select/super_select.js +1 -1
  156. package/test-env/components/page/page_sidebar/page_sidebar.js +1 -1
  157. package/test-env/components/page_template/page_template.js +14 -5
  158. package/test-env/components/popover/input_popover.js +23 -8
  159. package/test-env/components/popover/popover.js +4 -6
  160. package/test-env/components/resizable_container/index.js +8 -1
  161. package/test-env/components/resizable_container/resizable_button.js +83 -51
  162. package/test-env/components/resizable_container/resizable_button.styles.js +71 -0
  163. package/test-env/components/resizable_container/resizable_collapse_button.js +19 -14
  164. package/test-env/components/resizable_container/resizable_collapse_button.styles.js +90 -0
  165. package/test-env/components/selectable/selectable_list/selectable_list.js +97 -79
  166. package/test-env/components/steps/step.styles.js +5 -5
  167. package/test-env/components/tool_tip/icon_tip.js +1 -1
  168. package/test-env/components/tool_tip/tool_tip.js +4 -14
  169. package/test-env/components/tool_tip/tool_tip_anchor.js +5 -11
  170. package/test-env/themes/amsterdam/global_styling/mixins/shadow.js +0 -1
  171. package/src/components/resizable_container/_index.scss +0 -3
  172. package/src/components/resizable_container/_resizable_button.scss +0 -129
  173. package/src/components/resizable_container/_resizable_collapse_button.scss +0 -145
  174. package/src/components/resizable_container/_variables.scss +0 -2
@@ -19,7 +19,7 @@ var _services = require("../../services");
19
19
  var _form = require("../form/form.styles");
20
20
  var _react2 = require("@emotion/react");
21
21
  var _global_styling = require("../../global_styling");
22
- var _excluded = ["children", "className", "disableFocusTrap", "focusTrapProps", "input", "fullWidth", "onPanelResize", "inputRef", "panelRef"];
22
+ var _excluded = ["children", "className", "disableFocusTrap", "focusTrapProps", "input", "fullWidth", "panelMinWidth", "onPanelResize", "inputRef", "panelRef"];
23
23
  /*
24
24
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
25
25
  * or more contributor license agreements. Licensed under the Elastic License
@@ -38,6 +38,8 @@ var EuiInputPopover = function EuiInputPopover(_ref) {
38
38
  input = _ref.input,
39
39
  _ref$fullWidth = _ref.fullWidth,
40
40
  fullWidth = _ref$fullWidth === void 0 ? false : _ref$fullWidth,
41
+ _ref$panelMinWidth = _ref.panelMinWidth,
42
+ panelMinWidth = _ref$panelMinWidth === void 0 ? 0 : _ref$panelMinWidth,
41
43
  onPanelResize = _ref.onPanelResize,
42
44
  _inputRef = _ref.inputRef,
43
45
  _panelRef = _ref.panelRef,
@@ -55,22 +57,24 @@ var EuiInputPopover = function EuiInputPopover(_ref) {
55
57
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
56
58
  panelEl = _useState6[0],
57
59
  setPanelEl = _useState6[1];
60
+ var popoverClassRef = (0, _react.useRef)(null);
58
61
  var inputRef = (0, _services.useCombinedRefs)([setInputEl, _inputRef]);
59
62
  var panelRef = (0, _services.useCombinedRefs)([setPanelEl, _panelRef]);
60
63
  var setPanelWidth = (0, _react.useCallback)(function (width) {
61
64
  if (panelEl && (!!inputElWidth || !!width)) {
62
65
  var newWidth = !!width ? width : inputElWidth;
63
- panelEl.style.width = "".concat(newWidth, "px");
64
- if (onPanelResize) {
65
- onPanelResize(newWidth);
66
- }
66
+ var widthToSet = newWidth && newWidth > panelMinWidth ? newWidth : panelMinWidth;
67
+ panelEl.style.width = "".concat(widthToSet, "px");
68
+ onPanelResize === null || onPanelResize === void 0 ? void 0 : onPanelResize(widthToSet);
67
69
  }
68
- }, [panelEl, inputElWidth, onPanelResize]);
70
+ }, [panelEl, inputElWidth, onPanelResize, panelMinWidth]);
69
71
  var onResize = (0, _react.useCallback)(function () {
70
72
  if (inputEl) {
73
+ var _popoverClassRef$curr;
71
74
  var _width = inputEl.getBoundingClientRect().width;
72
75
  setInputElWidth(_width);
73
76
  setPanelWidth(_width);
77
+ (_popoverClassRef$curr = popoverClassRef.current) === null || _popoverClassRef$curr === void 0 ? void 0 : _popoverClassRef$curr.positionPopoverFluid();
74
78
  }
75
79
  }, [inputEl, setPanelWidth]);
76
80
  (0, _react.useEffect)(function () {
@@ -105,7 +109,8 @@ var EuiInputPopover = function EuiInputPopover(_ref) {
105
109
  }),
106
110
  buttonRef: inputRef,
107
111
  panelRef: panelRef,
108
- className: classes
112
+ className: classes,
113
+ ref: popoverClassRef
109
114
  }, props), (0, _react2.jsx)(_focus_trap.EuiFocusTrap, (0, _extends2.default)({
110
115
  clickOutsideDisables: true,
111
116
  disabled: disableFocusTrap
@@ -216,8 +216,7 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
216
216
  top = _findPopoverPosition.top,
217
217
  left = _findPopoverPosition.left,
218
218
  foundPosition = _findPopoverPosition.position,
219
- arrow = _findPopoverPosition.arrow,
220
- anchorBoundingBox = _findPopoverPosition.anchorBoundingBox;
219
+ arrow = _findPopoverPosition.arrow;
221
220
 
222
221
  // the popover's z-index must inherit from the button
223
222
  // this keeps a button's popover under a flyout that would cover the button
@@ -226,7 +225,7 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
226
225
  var zIndex = zIndexProp == null ? (0, _popover.getElementZIndex)(_this.button, _this.panel) + 2000 : zIndexProp;
227
226
  var popoverStyles = _objectSpread(_objectSpread({}, _this.props.panelStyle), {}, {
228
227
  top: top,
229
- left: _this.props.attachToAnchor && anchorBoundingBox ? anchorBoundingBox.left : left,
228
+ left: left,
230
229
  zIndex: zIndex
231
230
  });
232
231
  var willRenderArrow = !_this.props.attachToAnchor && _this.props.hasArrow;
@@ -3,10 +3,17 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "EuiResizableButton", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _resizable_button.EuiResizableButton;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "EuiResizableContainer", {
7
13
  enumerable: true,
8
14
  get: function get() {
9
15
  return _resizable_container.EuiResizableContainer;
10
16
  }
11
17
  });
12
- var _resizable_container = require("./resizable_container");
18
+ var _resizable_container = require("./resizable_container");
19
+ var _resizable_button = require("./resizable_button");
@@ -5,8 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.EuiResizableButton = void 0;
9
- exports.euiResizableButtonWithControls = euiResizableButtonWithControls;
8
+ exports.euiResizableButtonWithControls = exports.EuiResizableButtonControlled = exports.EuiResizableButton = void 0;
10
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -15,8 +14,10 @@ var _classnames = _interopRequireDefault(require("classnames"));
15
14
  var _i18n = require("../i18n");
16
15
  var _services = require("../../services");
17
16
  var _context = require("./context");
17
+ var _resizable_button = require("./resizable_button.styles");
18
18
  var _react2 = require("@emotion/react");
19
- var _excluded = ["isHorizontal", "className", "id", "registration", "disabled", "onFocus", "onBlur"];
19
+ var _excluded = ["isHorizontal", "alignIndicator", "className"],
20
+ _excluded2 = ["registration", "id", "disabled", "onFocus"];
20
21
  /*
21
22
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
22
23
  * or more contributor license agreements. Licensed under the Elastic License
@@ -26,15 +27,50 @@ var _excluded = ["isHorizontal", "className", "id", "registration", "disabled",
26
27
  */
27
28
  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); }
28
29
  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
- var EuiResizableButton = function EuiResizableButton(_ref) {
30
+ /**
31
+ * A generic button for indicating/facilitating resizable content,
32
+ * usable outside of the EuiResizableContainer context
33
+ */
34
+ var EuiResizableButton = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
30
35
  var isHorizontal = _ref.isHorizontal,
36
+ _ref$alignIndicator = _ref.alignIndicator,
37
+ alignIndicator = _ref$alignIndicator === void 0 ? 'center' : _ref$alignIndicator,
31
38
  className = _ref.className,
32
- id = _ref.id,
33
- registration = _ref.registration,
34
- disabled = _ref.disabled,
35
- onFocus = _ref.onFocus,
36
- onBlur = _ref.onBlur,
37
39
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
40
+ var classes = (0, _classnames.default)('euiResizableButton', className);
41
+ var euiTheme = (0, _services.useEuiTheme)();
42
+ var styles = (0, _resizable_button.euiResizableButtonStyles)(euiTheme);
43
+ var cssStyles = [styles.euiResizableButton, isHorizontal ? styles.horizontal : styles.vertical, styles.alignIndicator[alignIndicator]];
44
+ return (0, _react2.jsx)(_i18n.EuiI18n, {
45
+ tokens: ['euiResizableButton.horizontalResizerAriaLabel', 'euiResizableButton.verticalResizerAriaLabel'],
46
+ defaults: ['Press the left or right arrow keys to adjust panels size', 'Press the up or down arrow keys to adjust panels size']
47
+ }, function (_ref2) {
48
+ var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
49
+ horizontalResizerAriaLabel = _ref3[0],
50
+ verticalResizerAriaLabel = _ref3[1];
51
+ return (0, _react2.jsx)("button", (0, _extends2.default)({
52
+ ref: ref,
53
+ "aria-label": isHorizontal ? horizontalResizerAriaLabel : verticalResizerAriaLabel,
54
+ className: classes,
55
+ css: cssStyles,
56
+ "data-test-subj": "euiResizableButton",
57
+ type: "button"
58
+ }, rest));
59
+ });
60
+ });
61
+ exports.EuiResizableButton = EuiResizableButton;
62
+ EuiResizableButton.displayName = 'EuiResizableButton';
63
+
64
+ /**
65
+ * Resizer button specific to controlled EuiResizableContainer usage
66
+ */
67
+
68
+ var EuiResizableButtonControlled = function EuiResizableButtonControlled(_ref4) {
69
+ var registration = _ref4.registration,
70
+ id = _ref4.id,
71
+ disabled = _ref4.disabled,
72
+ _onFocus = _ref4.onFocus,
73
+ rest = (0, _objectWithoutProperties2.default)(_ref4, _excluded2);
38
74
  var resizerId = (0, _services.useGeneratedHtmlId)({
39
75
  prefix: 'resizable-button',
40
76
  conditionalId: id
@@ -46,13 +82,9 @@ var EuiResizableButton = function EuiResizableButton(_ref) {
46
82
  } : _useEuiResizableConta2,
47
83
  resizers = _useEuiResizableConta3.resizers;
48
84
  var isDisabled = (0, _react.useMemo)(function () {
49
- return disabled || resizers[resizerId] && resizers[resizerId].isDisabled;
85
+ var _resizers$resizerId;
86
+ return disabled || ((_resizers$resizerId = resizers[resizerId]) === null || _resizers$resizerId === void 0 ? void 0 : _resizers$resizerId.isDisabled);
50
87
  }, [resizers, resizerId, disabled]);
51
- var classes = (0, _classnames.default)('euiResizableButton', {
52
- 'euiResizableButton--vertical': !isHorizontal,
53
- 'euiResizableButton--horizontal': isHorizontal,
54
- 'euiResizableButton--disabled': isDisabled
55
- }, className);
56
88
  var previousRef = (0, _react.useRef)();
57
89
  var onRef = (0, _react.useCallback)(function (ref) {
58
90
  if (!registration) return;
@@ -71,36 +103,22 @@ var EuiResizableButton = function EuiResizableButton(_ref) {
71
103
  }
72
104
  }
73
105
  }, [registration, resizerId, disabled]);
74
- var setFocus = function setFocus(e) {
75
- return e.currentTarget.focus();
76
- };
77
- var handleFocus = function handleFocus() {
78
- onFocus && onFocus(resizerId);
79
- };
80
- return (0, _react2.jsx)(_i18n.EuiI18n, {
81
- tokens: ['euiResizableButton.horizontalResizerAriaLabel', 'euiResizableButton.verticalResizerAriaLabel'],
82
- defaults: ['Press left or right to adjust panels size', 'Press up or down to adjust panels size']
83
- }, function (_ref2) {
84
- var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
85
- horizontalResizerAriaLabel = _ref3[0],
86
- verticalResizerAriaLabel = _ref3[1];
87
- return (0, _react2.jsx)("button", (0, _extends2.default)({
88
- id: resizerId,
89
- ref: onRef,
90
- "aria-label": isHorizontal ? horizontalResizerAriaLabel : verticalResizerAriaLabel,
91
- className: classes,
92
- "data-test-subj": "euiResizableButton",
93
- type: "button",
94
- onClick: setFocus,
95
- onFocus: handleFocus,
96
- onBlur: onBlur,
97
- disabled: isDisabled
98
- }, rest));
99
- });
106
+ return (0, _react2.jsx)(EuiResizableButton, (0, _extends2.default)({
107
+ id: resizerId,
108
+ ref: onRef,
109
+ disabled: isDisabled,
110
+ onClick: function onClick(e) {
111
+ return e.currentTarget.focus();
112
+ },
113
+ onFocus: function onFocus() {
114
+ return _onFocus === null || _onFocus === void 0 ? void 0 : _onFocus(resizerId);
115
+ }
116
+ }, rest));
100
117
  };
101
- exports.EuiResizableButton = EuiResizableButton;
102
- function euiResizableButtonWithControls(controls) {
118
+ exports.EuiResizableButtonControlled = EuiResizableButtonControlled;
119
+ var euiResizableButtonWithControls = function euiResizableButtonWithControls(controls) {
103
120
  return function (props) {
104
- return (0, _react2.jsx)(EuiResizableButton, (0, _extends2.default)({}, controls, props));
121
+ return (0, _react2.jsx)(EuiResizableButtonControlled, (0, _extends2.default)({}, controls, props));
105
122
  };
106
- }
123
+ };
124
+ exports.euiResizableButtonWithControls = euiResizableButtonWithControls;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiResizableButtonStyles = void 0;
7
+ var _react = require("@emotion/react");
8
+ var _services = require("../../services");
9
+ var _global_styling = require("../../global_styling");
10
+ 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)."; } /*
11
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
12
+ * or more contributor license agreements. Licensed under the Elastic License
13
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
14
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
15
+ * Side Public License, v 1.
16
+ */
17
+ var _ref = process.env.NODE_ENV === "production" ? {
18
+ name: "1fvu7sv-end",
19
+ styles: "align-items:flex-end;label:end;"
20
+ } : {
21
+ name: "1fvu7sv-end",
22
+ styles: "align-items:flex-end;label:end;",
23
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
24
+ };
25
+ var _ref2 = process.env.NODE_ENV === "production" ? {
26
+ name: "h0ntv8-start",
27
+ styles: "align-items:flex-start;label:start;"
28
+ } : {
29
+ name: "h0ntv8-start",
30
+ styles: "align-items:flex-start;label:start;",
31
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
32
+ };
33
+ var _ref3 = process.env.NODE_ENV === "production" ? {
34
+ name: "8391db-center",
35
+ styles: "align-items:center;label:center;"
36
+ } : {
37
+ name: "8391db-center",
38
+ styles: "align-items:center;label:center;",
39
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
40
+ };
41
+ var euiResizableButtonStyles = function euiResizableButtonStyles(euiThemeContext) {
42
+ var euiTheme = euiThemeContext.euiTheme;
43
+ var buttonSize = euiTheme.size.base;
44
+ var grabHandleWidth = euiTheme.size.m;
45
+ var grabHandleHeight = euiTheme.border.width.thin;
46
+ var transitionSpeed = euiTheme.animation.fast;
47
+ var transition = "".concat(transitionSpeed, " ease");
48
+ return {
49
+ // Mimics the "grab" icon with CSS psuedo-elements.
50
+ // 1. The "grab" icon transforms into a thicker straight line on :hover and :focus
51
+ // 2. Start/end aligned handles should have a slight margin offset that disappears on hover/focus
52
+ // 3. CSS hack to smooth out/anti-alias the 1px wide handles at various zoom levels
53
+ euiResizableButton: /*#__PURE__*/(0, _react.css)("z-index:1;flex-shrink:0;display:flex;justify-content:center;gap:", (0, _global_styling.mathWithUnits)(grabHandleHeight, function (x) {
54
+ return x * 2;
55
+ }), ";&:disabled{display:none;}&:hover,&:focus{gap:0;justify-content:center;}", _global_styling.euiCanAnimate, "{transition:gap ", transition, ",justify-content ", transition, ";}&::before,&::after{content:'';display:block;background-color:", euiTheme.colors.darkestShade, ";transform:translateZ(0);", _global_styling.euiCanAnimate, "{transition:width ", transition, ",height ", transition, ",margin ", transition, ",background-color ", transition, ";}}&:hover{&::before,&::after{background-color:", euiTheme.colors.mediumShade, ";", _global_styling.euiCanAnimate, "{transition-delay:", transitionSpeed, ";}}}&:focus,&:active{background-color:", (0, _services.transparentize)(euiTheme.colors.primary, 0.1), ";&::before,&::after{background-color:", euiTheme.colors.primary, ";", _global_styling.euiCanAnimate, "{transition:width ", transition, ",height ", transition, ";transition-delay:", (0, _global_styling.mathWithUnits)(transitionSpeed, function (x) {
56
+ return x / 2;
57
+ }), ";}}};label:euiResizableButton;"),
58
+ horizontal: /*#__PURE__*/(0, _react.css)("cursor:col-resize;", (0, _global_styling.logicalCSS)('height', '100%'), " ", (0, _global_styling.logicalCSS)('width', buttonSize), " margin-inline:", (0, _global_styling.mathWithUnits)(buttonSize, function (x) {
59
+ return x / -2;
60
+ }), ";&::before,&::after{", (0, _global_styling.logicalCSS)('width', grabHandleHeight), " ", (0, _global_styling.logicalCSS)('height', grabHandleWidth), " margin-block:", euiTheme.size.base, ";}&:hover,&:focus,&:active{&::before,&::after{", (0, _global_styling.logicalCSS)('height', '100%'), " margin-block:0;transform:none;}};label:horizontal;"),
61
+ vertical: /*#__PURE__*/(0, _react.css)("flex-direction:column;cursor:row-resize;", (0, _global_styling.logicalCSS)('width', '100%'), " ", (0, _global_styling.logicalCSS)('height', buttonSize), " margin-block:", (0, _global_styling.mathWithUnits)(buttonSize, function (x) {
62
+ return x / -2;
63
+ }), ";&::before,&::after{", (0, _global_styling.logicalCSS)('height', grabHandleHeight), " ", (0, _global_styling.logicalCSS)('width', grabHandleWidth), " margin-inline:", euiTheme.size.base, ";}&:hover,&:focus,&:active{&::before,&::after{", (0, _global_styling.logicalCSS)('width', '100%'), " margin-inline:0;transform:none;}};label:vertical;"),
64
+ alignIndicator: {
65
+ center: _ref3,
66
+ start: _ref2,
67
+ end: _ref
68
+ }
69
+ };
70
+ };
71
+ exports.euiResizableButtonStyles = euiResizableButtonStyles;
@@ -6,10 +6,14 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.EuiResizableCollapseButton = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
11
  var _react = _interopRequireDefault(require("react"));
11
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
+ var _services = require("../../services");
12
14
  var _button = require("../button");
15
+ var _screen_reader_only = require("../accessibility/screen_reader_only/screen_reader_only.styles");
16
+ var _resizable_collapse_button = require("./resizable_collapse_button.styles");
13
17
  var _react2 = require("@emotion/react");
14
18
  var _excluded = ["className", "externalPosition", "internalPosition", "direction", "isVisible", "isCollapsed"];
15
19
  /*
@@ -21,7 +25,8 @@ var _excluded = ["className", "externalPosition", "internalPosition", "direction
21
25
  */
22
26
  var EuiResizableCollapseButton = function EuiResizableCollapseButton(_ref) {
23
27
  var className = _ref.className,
24
- externalPosition = _ref.externalPosition,
28
+ _ref$externalPosition = _ref.externalPosition,
29
+ externalPosition = _ref$externalPosition === void 0 ? 'before' : _ref$externalPosition,
25
30
  _ref$internalPosition = _ref.internalPosition,
26
31
  internalPosition = _ref$internalPosition === void 0 ? 'middle' : _ref$internalPosition,
27
32
  _ref$direction = _ref.direction,
@@ -30,14 +35,15 @@ var EuiResizableCollapseButton = function EuiResizableCollapseButton(_ref) {
30
35
  isCollapsed = _ref.isCollapsed,
31
36
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
32
37
  var isHorizontal = direction === 'horizontal';
33
- var classes = (0, _classnames.default)('euiResizableToggleButton', "euiResizableToggleButton--".concat(direction), "euiResizableToggleButton--".concat(externalPosition), "euiResizableToggleButton--".concat(internalPosition), {
34
- 'euiResizableToggleButton-isVisible': isVisible,
35
- 'euiResizableToggleButton-isCollapsed': isCollapsed
36
- }, className);
37
-
38
- // Default to simiple grab icon in case there is no externalPosition specified
39
- var COLLAPSED_ICON = isHorizontal ? 'grab' : 'grabHorizontal';
40
- var NOT_COLLAPSED_ICON = isHorizontal ? 'grab' : 'grabHorizontal';
38
+ var showOnFocus = !isCollapsed && !isVisible;
39
+ var screenReaderOnlyStyles = (0, _screen_reader_only.euiScreenReaderOnlyStyles)(showOnFocus).euiScreenReaderOnly;
40
+ var euiTheme = (0, _services.useEuiTheme)();
41
+ var styles = (0, _resizable_collapse_button.euiResizableCollapseButtonStyles)(euiTheme);
42
+ var collapsedStyles = [styles.collapsed.collapsed, styles.collapsed[direction], styles.collapsed["".concat(direction, "Positions")][internalPosition]];
43
+ var collapsibleStyles = [styles.collapsible.collapsible, styles.collapsible[direction][externalPosition], styles.collapsible[direction][internalPosition]];
44
+ var cssStyles = [styles.euiResizableCollapseButton, showOnFocus && screenReaderOnlyStyles].concat((0, _toConsumableArray2.default)(isCollapsed ? collapsedStyles : collapsibleStyles));
45
+ var COLLAPSED_ICON = '';
46
+ var NOT_COLLAPSED_ICON = '';
41
47
  switch (externalPosition) {
42
48
  case 'before':
43
49
  COLLAPSED_ICON = isHorizontal ? 'menuLeft' : 'menuUp';
@@ -48,11 +54,13 @@ var EuiResizableCollapseButton = function EuiResizableCollapseButton(_ref) {
48
54
  NOT_COLLAPSED_ICON = isHorizontal ? 'menuLeft' : 'menuUp';
49
55
  break;
50
56
  }
57
+ var classes = (0, _classnames.default)('euiResizableCollapseButton', className);
51
58
  return (0, _react2.jsx)(_button.EuiButtonIcon, (0, _extends2.default)({
52
59
  display: isCollapsed ? 'empty' : 'base',
53
- color: "text"
54
- }, rest, {
60
+ color: "text",
55
61
  className: classes,
62
+ css: cssStyles
63
+ }, rest, {
56
64
  iconType: isCollapsed ? COLLAPSED_ICON : NOT_COLLAPSED_ICON
57
65
  }));
58
66
  };
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiResizableCollapseButtonStyles = void 0;
7
+ var _react = require("@emotion/react");
8
+ var _global_styling = require("../../global_styling");
9
+ var _amsterdam = require("../../themes/amsterdam");
10
+ 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)."; } /*
11
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
12
+ * or more contributor license agreements. Licensed under the Elastic License
13
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
14
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
15
+ * Side Public License, v 1.
16
+ */
17
+ var _ref = process.env.NODE_ENV === "production" ? {
18
+ name: "fuwsll-euiResizableCollapseButton",
19
+ styles: "z-index:2;position:absolute;&:focus{animation:none;};label:euiResizableCollapseButton;"
20
+ } : {
21
+ name: "fuwsll-euiResizableCollapseButton",
22
+ styles: "z-index:2;position:absolute;&:focus{animation:none;};label:euiResizableCollapseButton;",
23
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
24
+ };
25
+ var euiResizableCollapseButtonStyles = function euiResizableCollapseButtonStyles(euiThemeContext) {
26
+ var euiTheme = euiThemeContext.euiTheme;
27
+ var buttonSize = euiTheme.size.l;
28
+ var centeringOffset = (0, _global_styling.mathWithUnits)(buttonSize, function (x) {
29
+ return x / -2;
30
+ }); // Use negative margins instead of transforms to avoid having to override EuiButtonIcon's CSS
31
+ var buttonOffset = euiTheme.size.base;
32
+ return {
33
+ euiResizableCollapseButton: _ref,
34
+ collapsible: {
35
+ collapsible: /*#__PURE__*/(0, _react.css)("background:", euiTheme.colors.emptyShade, ";", (0, _amsterdam.euiShadowXSmall)(euiThemeContext), " &:focus{", (0, _amsterdam.euiSlightShadowHover)(euiThemeContext), ";};label:collapsible;"),
36
+ horizontal: {
37
+ after: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('right', 0), " ", (0, _global_styling.logicalCSS)('margin-right', centeringOffset), ";;label:after;"),
38
+ before: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('left', 0), " ", (0, _global_styling.logicalCSS)('margin-left', centeringOffset), ";;label:before;"),
39
+ middle: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('top', '50%'), " ", (0, _global_styling.logicalCSS)('margin-top', centeringOffset), ";;label:middle;"),
40
+ top: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('top', 0), " ", (0, _global_styling.logicalCSS)('margin-top', buttonOffset), ";;label:top;"),
41
+ bottom: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('bottom', 0), " ", (0, _global_styling.logicalCSS)('margin-bottom', buttonOffset), ";;label:bottom;"),
42
+ // `left/right` aren't valid positions for the horizontal direction,
43
+ // so we're using getters to fall back to the `middle` CSS
44
+ get left() {
45
+ return this.middle;
46
+ },
47
+ get right() {
48
+ return this.middle;
49
+ }
50
+ },
51
+ vertical: {
52
+ after: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('top', '100%'), " ", (0, _global_styling.logicalCSS)('margin-top', centeringOffset), ";;label:after;"),
53
+ before: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('bottom', '100%'), " ", (0, _global_styling.logicalCSS)('margin-bottom', centeringOffset), ";;label:before;"),
54
+ middle: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('left', '50%'), " ", (0, _global_styling.logicalCSS)('margin-left', centeringOffset), ";;label:middle;"),
55
+ left: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('left', 0), " ", (0, _global_styling.logicalCSS)('margin-left', buttonOffset), ";;label:left;"),
56
+ right: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('right', 0), " ", (0, _global_styling.logicalCSS)('margin-right', buttonOffset), ";;label:right;"),
57
+ // `top/bottom` aren't valid positions for the horizontal direction,
58
+ // so we're using getters to fall back to the `middle` CSS
59
+ get top() {
60
+ return this.middle;
61
+ },
62
+ get bottom() {
63
+ return this.middle;
64
+ }
65
+ }
66
+ },
67
+ collapsed: {
68
+ // When collapsed, the button itself is the full collapsed area
69
+ // and we use flex to align the icon within
70
+ collapsed: /*#__PURE__*/(0, _react.css)("border-radius:0;", (0, _global_styling.logicalCSS)('top', 0), ";;label:collapsed;"),
71
+ horizontal: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('height', '100%'), ";;label:horizontal;"),
72
+ vertical: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', '100%'), ";;label:vertical;"),
73
+ horizontalPositions: {
74
+ top: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-top', buttonOffset), " align-items:flex-start;;label:top;"),
75
+ bottom: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-bottom', buttonOffset), " align-items:flex-end;;label:bottom;"),
76
+ middle: /*#__PURE__*/(0, _react.css)(";label:middle;"),
77
+ left: /*#__PURE__*/(0, _react.css)(";label:left;"),
78
+ right: /*#__PURE__*/(0, _react.css)(";label:right;")
79
+ },
80
+ verticalPositions: {
81
+ left: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-left', buttonOffset), " justify-content:flex-start;;label:left;"),
82
+ right: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-right', buttonOffset), " justify-content:flex-end;;label:right;"),
83
+ middle: /*#__PURE__*/(0, _react.css)(";label:middle;"),
84
+ top: /*#__PURE__*/(0, _react.css)(";label:top;"),
85
+ bottom: /*#__PURE__*/(0, _react.css)(";label:bottom;")
86
+ }
87
+ }
88
+ };
89
+ };
90
+ exports.euiResizableCollapseButtonStyles = euiResizableCollapseButtonStyles;