@elastic/eui 70.2.3 → 70.3.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 (143) hide show
  1. package/dist/eui_theme_dark.css +0 -198
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +0 -198
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/accessibility/skip_link/skip_link.js +6 -5
  6. package/es/components/badge/beta_badge/beta_badge.js +11 -3
  7. package/es/components/badge/beta_badge/beta_badge.styles.js +25 -4
  8. package/es/components/card/card.js +6 -1
  9. package/es/components/card/card.styles.js +4 -4
  10. package/es/components/date_picker/super_date_picker/super_date_picker.a11y.js +109 -0
  11. package/es/components/flex/flex_group.styles.js +1 -1
  12. package/es/components/flyout/flyout.a11y.js +92 -0
  13. package/es/components/image/image_fullscreen_wrapper.styles.js +3 -11
  14. package/es/components/modal/confirm_modal.js +11 -0
  15. package/es/components/modal/modal.a11y.js +70 -0
  16. package/es/components/modal/modal.js +17 -27
  17. package/es/components/modal/modal.styles.js +23 -0
  18. package/es/components/modal/modal_body.js +8 -0
  19. package/es/components/modal/modal_body.styles.js +16 -0
  20. package/es/components/modal/modal_footer.js +6 -0
  21. package/es/components/modal/modal_footer.styles.js +15 -0
  22. package/es/components/modal/modal_header.js +6 -0
  23. package/es/components/modal/modal_header.styles.js +14 -0
  24. package/es/components/modal/modal_header_title.js +3 -1
  25. package/es/components/page_template/outer/page_outer.js +1 -1
  26. package/es/components/page_template/page_template.js +28 -6
  27. package/es/components/popover/popover.a11y.js +83 -0
  28. package/es/components/search_bar/query/default_syntax.js +2 -1
  29. package/es/components/tabs/tabs.a11y.js +97 -0
  30. package/es/components/tree_view/tree_view.a11y.js +74 -0
  31. package/es/global_styling/utility/animations.js +5 -2
  32. package/eui.d.ts +58 -7
  33. package/i18ntokens.json +2 -2
  34. package/lib/components/accessibility/skip_link/skip_link.js +6 -5
  35. package/lib/components/badge/beta_badge/beta_badge.js +13 -4
  36. package/lib/components/badge/beta_badge/beta_badge.styles.js +25 -4
  37. package/lib/components/card/card.js +6 -1
  38. package/lib/components/card/card.styles.js +4 -4
  39. package/lib/components/date_picker/super_date_picker/super_date_picker.a11y.js +111 -0
  40. package/lib/components/flex/flex_group.styles.js +1 -1
  41. package/lib/components/flyout/flyout.a11y.js +94 -0
  42. package/lib/components/image/image_fullscreen_wrapper.styles.js +9 -10
  43. package/lib/components/modal/confirm_modal.js +13 -0
  44. package/lib/components/modal/modal.a11y.js +73 -0
  45. package/lib/components/modal/modal.js +17 -32
  46. package/lib/components/modal/modal.styles.js +36 -0
  47. package/lib/components/modal/modal_body.js +10 -0
  48. package/lib/components/modal/modal_body.styles.js +27 -0
  49. package/lib/components/modal/modal_footer.js +8 -0
  50. package/lib/components/modal/modal_footer.styles.js +26 -0
  51. package/lib/components/modal/modal_header.js +8 -0
  52. package/lib/components/modal/modal_header.styles.js +24 -0
  53. package/lib/components/modal/modal_header_title.js +4 -1
  54. package/lib/components/page_template/outer/page_outer.js +1 -1
  55. package/lib/components/page_template/page_template.js +32 -10
  56. package/lib/components/popover/popover.a11y.js +86 -0
  57. package/lib/components/search_bar/query/default_syntax.js +2 -1
  58. package/lib/components/tabs/tabs.a11y.js +98 -0
  59. package/lib/components/tree_view/tree_view.a11y.js +80 -0
  60. package/lib/global_styling/utility/animations.js +9 -3
  61. package/optimize/es/components/accessibility/skip_link/skip_link.js +6 -5
  62. package/optimize/es/components/badge/beta_badge/beta_badge.js +5 -2
  63. package/optimize/es/components/badge/beta_badge/beta_badge.styles.js +25 -4
  64. package/optimize/es/components/card/card.styles.js +4 -4
  65. package/optimize/es/components/date_picker/super_date_picker/super_date_picker.a11y.js +98 -0
  66. package/optimize/es/components/flex/flex_group.styles.js +1 -1
  67. package/optimize/es/components/flyout/flyout.a11y.js +77 -0
  68. package/optimize/es/components/image/image_fullscreen_wrapper.styles.js +3 -11
  69. package/optimize/es/components/modal/confirm_modal.js +6 -0
  70. package/optimize/es/components/modal/modal.a11y.js +60 -0
  71. package/optimize/es/components/modal/modal.js +17 -27
  72. package/optimize/es/components/modal/modal.styles.js +23 -0
  73. package/optimize/es/components/modal/modal_body.js +8 -0
  74. package/optimize/es/components/modal/modal_body.styles.js +16 -0
  75. package/optimize/es/components/modal/modal_footer.js +6 -0
  76. package/optimize/es/components/modal/modal_footer.styles.js +15 -0
  77. package/optimize/es/components/modal/modal_header.js +6 -0
  78. package/optimize/es/components/modal/modal_header.styles.js +14 -0
  79. package/optimize/es/components/modal/modal_header_title.js +3 -1
  80. package/optimize/es/components/page_template/page_template.js +5 -3
  81. package/optimize/es/components/popover/popover.a11y.js +73 -0
  82. package/optimize/es/components/search_bar/query/default_syntax.js +2 -1
  83. package/optimize/es/components/tabs/tabs.a11y.js +97 -0
  84. package/optimize/es/components/tree_view/tree_view.a11y.js +74 -0
  85. package/optimize/es/global_styling/utility/animations.js +5 -2
  86. package/optimize/lib/components/accessibility/skip_link/skip_link.js +6 -5
  87. package/optimize/lib/components/badge/beta_badge/beta_badge.js +7 -3
  88. package/optimize/lib/components/badge/beta_badge/beta_badge.styles.js +25 -4
  89. package/optimize/lib/components/card/card.styles.js +4 -4
  90. package/optimize/lib/components/date_picker/super_date_picker/super_date_picker.a11y.js +111 -0
  91. package/optimize/lib/components/flex/flex_group.styles.js +1 -1
  92. package/optimize/lib/components/flyout/flyout.a11y.js +84 -0
  93. package/optimize/lib/components/image/image_fullscreen_wrapper.styles.js +9 -12
  94. package/optimize/lib/components/modal/confirm_modal.js +8 -0
  95. package/optimize/lib/components/modal/modal.a11y.js +73 -0
  96. package/optimize/lib/components/modal/modal.js +17 -31
  97. package/optimize/lib/components/modal/modal.styles.js +36 -0
  98. package/optimize/lib/components/modal/modal_body.js +10 -0
  99. package/optimize/lib/components/modal/modal_body.styles.js +27 -0
  100. package/optimize/lib/components/modal/modal_footer.js +8 -0
  101. package/optimize/lib/components/modal/modal_footer.styles.js +26 -0
  102. package/optimize/lib/components/modal/modal_header.js +8 -0
  103. package/optimize/lib/components/modal/modal_header.styles.js +24 -0
  104. package/optimize/lib/components/modal/modal_header_title.js +4 -1
  105. package/optimize/lib/components/page_template/page_template.js +5 -3
  106. package/optimize/lib/components/popover/popover.a11y.js +86 -0
  107. package/optimize/lib/components/search_bar/query/default_syntax.js +2 -1
  108. package/optimize/lib/components/tabs/tabs.a11y.js +98 -0
  109. package/optimize/lib/components/tree_view/tree_view.a11y.js +80 -0
  110. package/optimize/lib/global_styling/utility/animations.js +9 -3
  111. package/package.json +5 -4
  112. package/src/components/index.scss +0 -1
  113. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  114. package/test-env/components/accessibility/skip_link/skip_link.js +6 -5
  115. package/test-env/components/badge/beta_badge/beta_badge.js +13 -4
  116. package/test-env/components/badge/beta_badge/beta_badge.styles.js +25 -4
  117. package/test-env/components/card/card.js +6 -1
  118. package/test-env/components/card/card.styles.js +4 -4
  119. package/test-env/components/date_picker/super_date_picker/super_date_picker.a11y.js +111 -0
  120. package/test-env/components/flex/flex_group.styles.js +1 -1
  121. package/test-env/components/flyout/flyout.a11y.js +84 -0
  122. package/test-env/components/image/image_fullscreen_wrapper.styles.js +9 -12
  123. package/test-env/components/modal/confirm_modal.js +13 -0
  124. package/test-env/components/modal/modal.a11y.js +73 -0
  125. package/test-env/components/modal/modal.js +17 -31
  126. package/test-env/components/modal/modal.styles.js +36 -0
  127. package/test-env/components/modal/modal_body.js +10 -0
  128. package/test-env/components/modal/modal_body.styles.js +27 -0
  129. package/test-env/components/modal/modal_footer.js +8 -0
  130. package/test-env/components/modal/modal_footer.styles.js +26 -0
  131. package/test-env/components/modal/modal_header.js +8 -0
  132. package/test-env/components/modal/modal_header.styles.js +24 -0
  133. package/test-env/components/modal/modal_header_title.js +4 -1
  134. package/test-env/components/page_template/outer/page_outer.js +1 -1
  135. package/test-env/components/page_template/page_template.js +32 -10
  136. package/test-env/components/popover/popover.a11y.js +86 -0
  137. package/test-env/components/search_bar/query/default_syntax.js +2 -1
  138. package/test-env/components/tabs/tabs.a11y.js +98 -0
  139. package/test-env/components/tree_view/tree_view.a11y.js +80 -0
  140. package/test-env/global_styling/utility/animations.js +9 -3
  141. package/src/components/modal/_index.scss +0 -1
  142. package/src/components/modal/_modal.scss +0 -156
  143. package/src/themes/amsterdam/overrides/_modal.scss +0 -3
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ var _react = _interopRequireWildcard(require("react"));
6
+
7
+ var _index = require("./index");
8
+
9
+ var _button = require("../button");
10
+
11
+ var _react2 = require("@emotion/react");
12
+
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
+
15
+ 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; }
16
+
17
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
18
+
19
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
20
+
21
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
22
+
23
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
24
+
25
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
26
+
27
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
28
+
29
+ var Modal = function Modal() {
30
+ var _useState = (0, _react.useState)(false),
31
+ _useState2 = _slicedToArray(_useState, 2),
32
+ isModalVisible = _useState2[0],
33
+ setIsModalVisible = _useState2[1];
34
+
35
+ var closeModal = function closeModal() {
36
+ return setIsModalVisible(false);
37
+ };
38
+
39
+ var showModal = function showModal() {
40
+ return setIsModalVisible(true);
41
+ };
42
+
43
+ var modalProps = {
44
+ title: 'Do this thing',
45
+ onClose: closeModal,
46
+ children: _react.default
47
+ };
48
+ return (0, _react2.jsx)("div", null, (0, _react2.jsx)(_button.EuiButton, {
49
+ onClick: showModal
50
+ }, "Show confirm modal"), isModalVisible && (0, _react2.jsx)(_index.EuiModal, modalProps, (0, _react2.jsx)(_index.EuiModalHeader, null, (0, _react2.jsx)(_index.EuiModalHeaderTitle, null, (0, _react2.jsx)("h1", null, "Title of modal"))), (0, _react2.jsx)(_index.EuiModalBody, null, (0, _react2.jsx)("p", null, "This is a simple modal body")), (0, _react2.jsx)(_index.EuiModalFooter, null, (0, _react2.jsx)(_button.EuiButton, {
51
+ onClick: closeModal,
52
+ fill: true
53
+ }, "Close"))));
54
+ };
55
+
56
+ beforeEach(function () {
57
+ cy.mount((0, _react2.jsx)(Modal, null));
58
+ cy.get('div.euiModal').should('not.exist');
59
+ cy.get('button.euiButton').click();
60
+ cy.get('div.euiModal').should('exist');
61
+ });
62
+ describe('EuiModal', function () {
63
+ describe('Automated accessibility check', function () {
64
+ it('has zero violations when modal is open', function () {
65
+ cy.checkAxe();
66
+ });
67
+ it('has zero violations when modal is closed', function () {
68
+ cy.get('div.euiModalFooter button.euiButton').click();
69
+ cy.get('div.euiModal').should('not.exist');
70
+ cy.checkAxe();
71
+ });
72
+ });
73
+ });
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports.EuiModal = void 0;
9
7
 
10
- var _react = _interopRequireWildcard(require("react"));
8
+ var _react = _interopRequireDefault(require("react"));
11
9
 
12
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
11
 
@@ -23,16 +21,14 @@ var _overlay_mask = require("../overlay_mask");
23
21
 
24
22
  var _i18n = require("../i18n");
25
23
 
24
+ var _modal = require("./modal.styles");
25
+
26
26
  var _react2 = require("@emotion/react");
27
27
 
28
28
  var _excluded = ["className", "children", "initialFocus", "onClose", "maxWidth", "style"];
29
29
 
30
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
31
 
32
- 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); }
33
-
34
- 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; }
35
-
36
32
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
37
33
 
38
34
  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; }
@@ -55,19 +51,6 @@ var EuiModal = function EuiModal(_ref) {
55
51
  style = _ref.style,
56
52
  rest = _objectWithoutProperties(_ref, _excluded);
57
53
 
58
- // TODO: Remove this onFocus scroll workaround after react-focus-on supports focusOptions
59
- // @see https://github.com/elastic/eui/issues/6304
60
- var bodyScrollTop = (0, _react.useRef)(typeof window === 'undefined' ? undefined : window.scrollY // Account for SSR
61
- );
62
- var onFocus = (0, _react.useCallback)(function () {
63
- if (bodyScrollTop.current != null) {
64
- window.scrollTo({
65
- top: bodyScrollTop.current
66
- });
67
- bodyScrollTop.current = undefined; // Unset after first auto focus
68
- }
69
- }, []);
70
-
71
54
  var onKeyDown = function onKeyDown(event) {
72
55
  if (event.key === _services.keys.ESCAPE) {
73
56
  event.preventDefault();
@@ -76,28 +59,29 @@ var EuiModal = function EuiModal(_ref) {
76
59
  }
77
60
  };
78
61
 
79
- var newStyle;
80
- var widthClassName;
62
+ var newStyle = style;
81
63
 
82
- if (maxWidth === true) {
83
- widthClassName = 'euiModal--maxWidth-default';
84
- } else if (maxWidth !== false) {
85
- var value = typeof maxWidth === 'number' ? "".concat(maxWidth, "px") : maxWidth;
86
- newStyle = _objectSpread(_objectSpread({}, style), {}, {
87
- maxWidth: value
64
+ if (typeof maxWidth !== 'boolean') {
65
+ newStyle = _objectSpread(_objectSpread({}, newStyle), {}, {
66
+ maxInlineSize: maxWidth
88
67
  });
89
68
  }
90
69
 
91
- var classes = (0, _classnames.default)('euiModal', widthClassName, className);
70
+ var classes = (0, _classnames.default)('euiModal', className);
71
+ var euiTheme = (0, _services.useEuiTheme)();
72
+ var styles = (0, _modal.euiModalStyles)(euiTheme);
73
+ var cssStyles = [styles.euiModal, maxWidth === true && styles.defaultMaxWidth];
74
+ var cssCloseIconStyles = [styles.euiModal__closeIcon];
92
75
  return (0, _react2.jsx)(_overlay_mask.EuiOverlayMask, null, (0, _react2.jsx)(_focus_trap.EuiFocusTrap, {
93
76
  initialFocus: initialFocus,
94
- scrollLock: true
77
+ scrollLock: true,
78
+ preventScrollOnFocus: true
95
79
  }, (0, _react2.jsx)("div", _extends({
80
+ css: cssStyles,
96
81
  className: classes,
97
82
  onKeyDown: onKeyDown,
98
83
  tabIndex: 0,
99
- onFocus: onFocus,
100
- style: newStyle || style
84
+ style: newStyle
101
85
  }, rest), (0, _react2.jsx)(_i18n.EuiI18n, {
102
86
  token: "euiModal.closeModal",
103
87
  default: "Closes this modal window"
@@ -105,6 +89,7 @@ var EuiModal = function EuiModal(_ref) {
105
89
  return (0, _react2.jsx)(_button.EuiButtonIcon, {
106
90
  iconType: "cross",
107
91
  onClick: onClose,
92
+ css: cssCloseIconStyles,
108
93
  className: "euiModal__closeIcon",
109
94
  color: "text",
110
95
  "aria-label": closeModal
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiModalStyles = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _mixins = require("../../themes/amsterdam/global_styling/mixins");
11
+
12
+ var _global_styling = require("../../global_styling");
13
+
14
+ var _form = require("../form/form.styles");
15
+
16
+ /*
17
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
18
+ * or more contributor license agreements. Licensed under the Elastic License
19
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
20
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
21
+ * Side Public License, v 1.
22
+ */
23
+ var euiModalStyles = function euiModalStyles(euiThemeContext) {
24
+ var euiTheme = euiThemeContext.euiTheme;
25
+ return {
26
+ euiModal: /*#__PURE__*/(0, _react.css)((0, _mixins.euiShadowXLarge)(euiThemeContext), " display:flex;flex-direction:column;max-block-size:75vh;position:relative;background-color:", euiTheme.colors.emptyShade, ";border-radius:", euiTheme.border.radius.medium, ";z-index:", euiTheme.levels.modal, ";min-inline-size:", (0, _form.euiFormVariables)(euiThemeContext).maxWidth, ";max-inline-size:calc(100vw - ", euiTheme.size.base, ");", _global_styling.euiCanAnimate, "{animation:", (0, _global_styling.euiAnimSlideInUp)(euiTheme.size.xxl), " ", euiTheme.animation.slow, " ", euiTheme.animation.bounce, ";}", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs', 's']), "{position:fixed;inset:0;border-radius:0;inline-size:100vw!important;min-inline-size:0!important;max-inline-size:none!important;max-block-size:100vh!important;}&:focus{outline:none;};label:euiModal;"),
27
+ // Variants
28
+ defaultMaxWidth: /*#__PURE__*/(0, _react.css)("max-inline-size:min(\n ", euiTheme.breakpoint.m, "px,\n calc(100vw - ", euiTheme.size.base, ")\n );;label:defaultMaxWidth;"),
29
+ confirmation: /*#__PURE__*/(0, _react.css)("min-inline-size:", (0, _form.euiFormVariables)(euiThemeContext).maxWidth, ";", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs', 's']), "{", (0, _mixins.euiShadowXLarge)(euiThemeContext, {
30
+ reverse: true
31
+ }), " inset-block-start:auto;};label:confirmation;"),
32
+ euiModal__closeIcon: /*#__PURE__*/(0, _react.css)("position:absolute;inset-inline-end:", euiTheme.size.xs, ";inset-block-start:", euiTheme.size.xs, ";z-index:3;;label:euiModal__closeIcon;")
33
+ };
34
+ };
35
+
36
+ exports.euiModalStyles = euiModalStyles;
@@ -11,6 +11,10 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
14
+ var _services = require("../../services");
15
+
16
+ var _modal_body = require("./modal_body.styles");
17
+
14
18
  var _react2 = require("@emotion/react");
15
19
 
16
20
  var _excluded = ["className", "children"];
@@ -29,9 +33,15 @@ var EuiModalBody = function EuiModalBody(_ref) {
29
33
  rest = _objectWithoutProperties(_ref, _excluded);
30
34
 
31
35
  var classes = (0, _classnames.default)('euiModalBody', className);
36
+ var euiTheme = (0, _services.useEuiTheme)();
37
+ var styles = (0, _modal_body.euiModalBodyStyles)(euiTheme);
38
+ var cssStyles = [styles.euiModalBody];
39
+ var cssOverflowStyles = [styles.euiModalBody__overflow];
32
40
  return (0, _react2.jsx)("div", _extends({
41
+ css: cssStyles,
33
42
  className: classes
34
43
  }, rest), (0, _react2.jsx)("div", {
44
+ css: cssOverflowStyles,
35
45
  className: "euiModalBody__overflow"
36
46
  }, children));
37
47
  };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiModalBodyStyles = 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 euiModalBodyStyles = function euiModalBodyStyles(euiThemeContext) {
20
+ var euiTheme = euiThemeContext.euiTheme;
21
+ return {
22
+ euiModalBody: /*#__PURE__*/(0, _react.css)("flex-grow:1;overflow:hidden;display:flex;flex-direction:column;&:last-of-type .euiModalBody__overflow{padding-block-end:", euiTheme.size.l, ";};label:euiModalBody;"),
23
+ euiModalBody__overflow: /*#__PURE__*/(0, _react.css)((0, _global_styling.euiYScrollWithShadows)(euiThemeContext), ";padding-inline:", euiTheme.size.l, ";padding-block:", euiTheme.size.s, ";", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs', 's']), "{padding-block-end:", euiTheme.size.l, ";};label:euiModalBody__overflow;")
24
+ };
25
+ };
26
+
27
+ exports.euiModalBodyStyles = euiModalBodyStyles;
@@ -11,6 +11,10 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
14
+ var _services = require("../../services");
15
+
16
+ var _modal_footer = require("./modal_footer.styles");
17
+
14
18
  var _react2 = require("@emotion/react");
15
19
 
16
20
  var _excluded = ["className", "children"];
@@ -29,7 +33,11 @@ var EuiModalFooter = function EuiModalFooter(_ref) {
29
33
  rest = _objectWithoutProperties(_ref, _excluded);
30
34
 
31
35
  var classes = (0, _classnames.default)('euiModalFooter', className);
36
+ var euiTheme = (0, _services.useEuiTheme)();
37
+ var styles = (0, _modal_footer.euiModalFooterStyles)(euiTheme);
38
+ var cssStyles = [styles.euiModalFooter];
32
39
  return (0, _react2.jsx)("div", _extends({
40
+ css: cssStyles,
33
41
  className: classes
34
42
  }, rest), children);
35
43
  };
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiModalFooterStyles = 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 euiModalFooterStyles = function euiModalFooterStyles(euiThemeContext) {
20
+ var euiTheme = euiThemeContext.euiTheme;
21
+ return {
22
+ euiModalFooter: /*#__PURE__*/(0, _react.css)("display:flex;justify-content:flex-end;padding-block:", euiTheme.size.base, " ", euiTheme.size.l, ";padding-inline:", euiTheme.size.l, ";flex-grow:0;flex-shrink:0;gap:", euiTheme.size.base, ";", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs', 's']), "{background:", euiTheme.colors.lightestShade, ";padding-block:", euiTheme.size.m, ";padding-inline:", euiTheme.size.l, ";justify-content:stretch;gap:", euiTheme.size.s, ";>*{flex:1;}};label:euiModalFooter;")
23
+ };
24
+ };
25
+
26
+ exports.euiModalFooterStyles = euiModalFooterStyles;
@@ -11,6 +11,10 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
14
+ var _services = require("../../services");
15
+
16
+ var _modal_header = require("./modal_header.styles");
17
+
14
18
  var _react2 = require("@emotion/react");
15
19
 
16
20
  var _excluded = ["className", "children"];
@@ -29,7 +33,11 @@ var EuiModalHeader = function EuiModalHeader(_ref) {
29
33
  rest = _objectWithoutProperties(_ref, _excluded);
30
34
 
31
35
  var classes = (0, _classnames.default)('euiModalHeader', className);
36
+ var euiTheme = (0, _services.useEuiTheme)();
37
+ var styles = (0, _modal_header.euiModalHeaderStyles)(euiTheme);
38
+ var cssStyles = [styles.euiModalHeader];
32
39
  return (0, _react2.jsx)("div", _extends({
40
+ css: cssStyles,
33
41
  className: classes
34
42
  }, rest), children);
35
43
  };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiModalHeaderStyles = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ /*
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 euiModalHeaderStyles = function euiModalHeaderStyles(euiThemeContext) {
18
+ var euiTheme = euiThemeContext.euiTheme;
19
+ return {
20
+ euiModalHeader: /*#__PURE__*/(0, _react.css)("display:flex;justify-content:space-between;align-items:center;padding-inline:", euiTheme.size.l, " ", euiTheme.size.xxl, ";padding-block:", euiTheme.size.l, " ", euiTheme.size.base, ";flex-grow:0;flex-shrink:0;&+.euiModalFooter{padding-block-start:", euiTheme.size.s, ";};label:euiModalHeader;")
21
+ };
22
+ };
23
+
24
+ exports.euiModalHeaderStyles = euiModalHeaderStyles;
@@ -11,6 +11,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
14
+ var _title = require("../title");
15
+
14
16
  var _react2 = require("@emotion/react");
15
17
 
16
18
  var _excluded = ["className", "children"];
@@ -29,7 +31,8 @@ var EuiModalHeaderTitle = function EuiModalHeaderTitle(_ref) {
29
31
  rest = _objectWithoutProperties(_ref, _excluded);
30
32
 
31
33
  var classes = (0, _classnames.default)('euiModalHeader__title', className);
32
- return (0, _react2.jsx)("div", _extends({
34
+ return (0, _react2.jsx)(_title.EuiTitle, _extends({
35
+ size: "m",
33
36
  className: classes
34
37
  }, rest), /*#__PURE__*/_react.default.isValidElement(children) ? children : (0, _react2.jsx)("h1", null, children));
35
38
  };
@@ -59,7 +59,7 @@ _EuiPageOuter.propTypes = {
59
59
  direction: _propTypes.default.oneOf(["row", "column"]),
60
60
 
61
61
  /**
62
- * When direction is `row`, it will flip to `column` when within these breakpoints
62
+ * When direction is `row`, it will flip to `column` when within these breakpoints.
63
63
  */
64
64
  responsive: _propTypes.default.arrayOf(_propTypes.default.any.isRequired),
65
65
  className: _propTypes.default.string,
@@ -29,7 +29,7 @@ var _global_styling = require("../../global_styling");
29
29
 
30
30
  var _react2 = require("@emotion/react");
31
31
 
32
- var _excluded = ["children", "restrictWidth", "paddingSize", "grow", "bottomBorder", "offset", "panelled", "contentBorder", "mainProps", "className", "minHeight", "responsive"];
32
+ var _excluded = ["children", "responsive", "restrictWidth", "paddingSize", "grow", "bottomBorder", "offset", "panelled", "contentBorder", "component", "mainProps", "className", "minHeight"];
33
33
 
34
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
35
 
@@ -75,6 +75,8 @@ exports.TemplateContext = TemplateContext;
75
75
  */
76
76
  var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
77
77
  var children = _ref.children,
78
+ _ref$responsive = _ref.responsive,
79
+ responsive = _ref$responsive === void 0 ? ['xs', 's'] : _ref$responsive,
78
80
  _ref$restrictWidth = _ref.restrictWidth,
79
81
  restrictWidth = _ref$restrictWidth === void 0 ? true : _ref$restrictWidth,
80
82
  _ref$paddingSize = _ref.paddingSize,
@@ -85,12 +87,11 @@ var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
85
87
  _offset = _ref.offset,
86
88
  panelled = _ref.panelled,
87
89
  contentBorder = _ref.contentBorder,
90
+ component = _ref.component,
88
91
  mainProps = _ref.mainProps,
89
92
  className = _ref.className,
90
93
  _ref$minHeight = _ref.minHeight,
91
94
  minHeight = _ref$minHeight === void 0 ? '460px' : _ref$minHeight,
92
- _ref$responsive = _ref.responsive,
93
- responsive = _ref$responsive === void 0 ? ['xs', 's'] : _ref$responsive,
94
95
  rest = _objectWithoutProperties(_ref, _excluded);
95
96
 
96
97
  var _useEuiTheme = (0, _services.useEuiTheme)(),
@@ -198,6 +199,7 @@ var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
198
199
  style: pageStyle,
199
200
  className: classes
200
201
  }), sidebar, (0, _react2.jsx)(_inner._EuiPageInner, _extends({}, mainProps, {
202
+ component: component,
201
203
  id: pageInnerId,
202
204
  border: innerBordered(),
203
205
  panelled: innerPanelled(),
@@ -220,13 +222,27 @@ _EuiPageTemplate.propTypes = {
220
222
  direction: _propTypes.default.oneOf(["row", "column"]),
221
223
 
222
224
  /**
223
- * When direction is `row`, it will flip to `column` when within these breakpoints
225
+ * Decides at which point the main content wrapper will be 100vw.
226
+ */
227
+
228
+ /**
229
+ * When direction is `row`, it will flip to `column` when within these breakpoints.
224
230
  */
225
231
  responsive: _propTypes.default.arrayOf(_propTypes.default.any.isRequired),
226
- className: _propTypes.default.string,
227
- "aria-label": _propTypes.default.string,
228
- "data-test-subj": _propTypes.default.string,
229
- css: _propTypes.default.any,
232
+ className: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.string]),
233
+ "aria-label": _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.string]),
234
+ "data-test-subj": _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.string]),
235
+ css: _propTypes.default.oneOfType([_propTypes.default.any, _propTypes.default.any]),
236
+
237
+ /**
238
+ * Adds a white background and shadow to define the area.
239
+ */
240
+ panelled: _propTypes.default.bool,
241
+
242
+ /**
243
+ * Adjust the overall padding.
244
+ */
245
+ paddingSize: _propTypes.default.any,
230
246
 
231
247
  /**
232
248
  * Sets the max-width of the page,
@@ -247,7 +263,7 @@ _EuiPageTemplate.propTypes = {
247
263
  * Applies a top or left border to the inner contents
248
264
  * to add separation between content and sidebar when a sidebar exists.
249
265
  */
250
- contentBorder: _propTypes.default.bool,
266
+ contentBorder: _propTypes.default.any,
251
267
 
252
268
  /**
253
269
  * Minimum height in which to enforce scrolling
@@ -269,7 +285,13 @@ _EuiPageTemplate.propTypes = {
269
285
  "aria-label": _propTypes.default.string,
270
286
  "data-test-subj": _propTypes.default.string,
271
287
  css: _propTypes.default.any
272
- })
288
+ }),
289
+
290
+ /**
291
+ * Sets which HTML element to render for the `main` content wrapper
292
+ * @default main
293
+ */
294
+ component: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.elementType.isRequired])
273
295
  };
274
296
 
275
297
  var _EuiPageSection = function _EuiPageSection(props) {
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ var _react = _interopRequireWildcard(require("react"));
6
+
7
+ var _popover = require("./popover");
8
+
9
+ var _button = require("../button");
10
+
11
+ var _text = require("../text");
12
+
13
+ var _react2 = require("@emotion/react");
14
+
15
+ 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); }
16
+
17
+ 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; }
18
+
19
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
20
+
21
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
22
+
23
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
24
+
25
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
26
+
27
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
28
+
29
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
30
+
31
+ var Popover = function Popover() {
32
+ var _useState = (0, _react.useState)(false),
33
+ _useState2 = _slicedToArray(_useState, 2),
34
+ isPopoverOpen = _useState2[0],
35
+ setIsPopoverOpen = _useState2[1];
36
+
37
+ var onButtonClick = function onButtonClick() {
38
+ return setIsPopoverOpen(function (isPopoverOpen) {
39
+ return !isPopoverOpen;
40
+ });
41
+ };
42
+
43
+ var closePopover = function closePopover() {
44
+ return setIsPopoverOpen(false);
45
+ };
46
+
47
+ var button = (0, _react2.jsx)(_button.EuiButtonEmpty, {
48
+ iconType: "documentation",
49
+ iconSide: "right",
50
+ onClick: onButtonClick
51
+ }, "How it works");
52
+ var popoverProps = {
53
+ button: button,
54
+ isOpen: isPopoverOpen,
55
+ closePopover: closePopover
56
+ };
57
+ return (0, _react2.jsx)(_popover.EuiPopover, popoverProps, (0, _react2.jsx)(_text.EuiText, {
58
+ style: {
59
+ width: 300
60
+ }
61
+ }, (0, _react2.jsx)("p", null, "Popover content that\u2019s wider than the default width")));
62
+ };
63
+
64
+ beforeEach(function () {
65
+ cy.mount((0, _react2.jsx)(Popover, null));
66
+ cy.get('div.euiPopover__panel').should('not.exist');
67
+ });
68
+ describe('EuiPopover', function () {
69
+ describe('Automated accessibility check', function () {
70
+ it('has zero violations on render', function () {
71
+ cy.checkAxe();
72
+ });
73
+ it('has zero violations when popover is opened', function () {
74
+ cy.get('button.euiButtonEmpty').click();
75
+ cy.get('div.euiPopover__panel').should('exist');
76
+ cy.checkAxe();
77
+ });
78
+ it('has zero violations when popover is closed', function () {
79
+ cy.get('button.euiButtonEmpty').click();
80
+ cy.get('div.euiPopover__panel').should('exist');
81
+ cy.get('button.euiButtonEmpty').click();
82
+ cy.get('div.euiPopover__panel').should('not.exist');
83
+ cy.checkAxe();
84
+ });
85
+ });
86
+ });
@@ -3514,7 +3514,8 @@ var printValue = function printValue(value, options) {
3514
3514
  return value.toString();
3515
3515
  }
3516
3516
 
3517
- if (value.length === 0 || value.match(/\s/) || value.toLowerCase() === 'or') {
3517
+ if (value.length === 0 || value.match(/[^\w\-_*:()"/\\]/) || // Escape spaces and special characters not used as syntax identifiers
3518
+ value.toLowerCase() === 'or') {
3518
3519
  return "\"".concat(escapePhraseValue(value), "\"");
3519
3520
  }
3520
3521