@elastic/eui 88.1.0 → 88.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 (111) hide show
  1. package/dist/eui_charts_theme.js.map +1 -1
  2. package/dist/eui_theme_dark.css +9 -36
  3. package/dist/eui_theme_dark.min.css +1 -1
  4. package/dist/eui_theme_light.css +9 -36
  5. package/dist/eui_theme_light.min.css +1 -1
  6. package/es/components/accordion/accordion.js +34 -9
  7. package/es/components/accordion/accordion.styles.js +29 -9
  8. package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +10 -2
  9. package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +2 -25
  10. package/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +10 -1
  11. package/es/components/flyout/flyout.styles.js +1 -1
  12. package/es/components/header/header.js +120 -25
  13. package/es/components/header/header.styles.js +1 -1
  14. package/es/components/index.js +1 -0
  15. package/es/components/overlay_mask/overlay_mask.styles.js +1 -1
  16. package/es/components/page/page_sidebar/page_sidebar.js +2 -4
  17. package/es/components/page_template/page_template.js +4 -31
  18. package/es/components/text_truncate/index.js +10 -0
  19. package/es/components/text_truncate/text_truncate.js +232 -0
  20. package/es/components/text_truncate/text_truncate.styles.js +49 -0
  21. package/es/components/text_truncate/utils.js +348 -0
  22. package/es/services/theme/context.js +3 -1
  23. package/es/services/theme/hooks.js +19 -1
  24. package/es/services/theme/index.js +1 -1
  25. package/es/services/theme/provider.js +37 -8
  26. package/eui.d.ts +246 -17
  27. package/i18ntokens.json +8 -8
  28. package/lib/components/accordion/accordion.js +33 -8
  29. package/lib/components/accordion/accordion.styles.js +31 -10
  30. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +10 -2
  31. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +2 -25
  32. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +10 -1
  33. package/lib/components/flyout/flyout.styles.js +1 -1
  34. package/lib/components/header/header.js +120 -23
  35. package/lib/components/header/header.styles.js +1 -1
  36. package/lib/components/index.js +11 -0
  37. package/lib/components/overlay_mask/overlay_mask.styles.js +1 -1
  38. package/lib/components/page/page_sidebar/page_sidebar.js +2 -4
  39. package/lib/components/page_template/page_template.js +2 -29
  40. package/lib/components/text_truncate/index.js +25 -0
  41. package/lib/components/text_truncate/text_truncate.js +242 -0
  42. package/lib/components/text_truncate/text_truncate.styles.js +54 -0
  43. package/lib/components/text_truncate/utils.js +352 -0
  44. package/lib/services/theme/context.js +3 -1
  45. package/lib/services/theme/hooks.js +21 -2
  46. package/lib/services/theme/index.js +6 -0
  47. package/lib/services/theme/provider.js +62 -35
  48. package/optimize/es/components/accordion/accordion.js +19 -7
  49. package/optimize/es/components/accordion/accordion.styles.js +29 -9
  50. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +2 -25
  51. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +10 -1
  52. package/optimize/es/components/flyout/flyout.styles.js +1 -1
  53. package/optimize/es/components/header/header.js +75 -25
  54. package/optimize/es/components/header/header.styles.js +1 -1
  55. package/optimize/es/components/index.js +1 -0
  56. package/optimize/es/components/overlay_mask/overlay_mask.styles.js +1 -1
  57. package/optimize/es/components/page/page_sidebar/page_sidebar.js +2 -4
  58. package/optimize/es/components/page_template/page_template.js +4 -26
  59. package/optimize/es/components/text_truncate/index.js +10 -0
  60. package/optimize/es/components/text_truncate/text_truncate.js +148 -0
  61. package/optimize/es/components/text_truncate/text_truncate.styles.js +49 -0
  62. package/optimize/es/components/text_truncate/utils.js +337 -0
  63. package/optimize/es/services/theme/context.js +3 -1
  64. package/optimize/es/services/theme/hooks.js +19 -1
  65. package/optimize/es/services/theme/index.js +1 -1
  66. package/optimize/es/services/theme/provider.js +37 -8
  67. package/optimize/lib/components/accordion/accordion.js +18 -6
  68. package/optimize/lib/components/accordion/accordion.styles.js +31 -10
  69. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +2 -25
  70. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +10 -1
  71. package/optimize/lib/components/flyout/flyout.styles.js +1 -1
  72. package/optimize/lib/components/header/header.js +77 -24
  73. package/optimize/lib/components/header/header.styles.js +1 -1
  74. package/optimize/lib/components/index.js +11 -0
  75. package/optimize/lib/components/overlay_mask/overlay_mask.styles.js +1 -1
  76. package/optimize/lib/components/page/page_sidebar/page_sidebar.js +2 -4
  77. package/optimize/lib/components/page_template/page_template.js +2 -24
  78. package/optimize/lib/components/text_truncate/index.js +25 -0
  79. package/optimize/lib/components/text_truncate/text_truncate.js +158 -0
  80. package/optimize/lib/components/text_truncate/text_truncate.styles.js +54 -0
  81. package/optimize/lib/components/text_truncate/utils.js +342 -0
  82. package/optimize/lib/services/theme/context.js +3 -1
  83. package/optimize/lib/services/theme/hooks.js +21 -2
  84. package/optimize/lib/services/theme/index.js +6 -0
  85. package/optimize/lib/services/theme/provider.js +62 -35
  86. package/package.json +1 -1
  87. package/src/components/datagrid/_data_grid.scss +13 -2
  88. package/src/components/index.scss +0 -1
  89. package/src/global_styling/mixins/_header.scss +2 -0
  90. package/test-env/components/accordion/accordion.js +28 -8
  91. package/test-env/components/accordion/accordion.styles.js +31 -10
  92. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +10 -2
  93. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +2 -25
  94. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +10 -1
  95. package/test-env/components/flyout/flyout.styles.js +1 -1
  96. package/test-env/components/header/header.js +113 -23
  97. package/test-env/components/header/header.styles.js +1 -1
  98. package/test-env/components/index.js +11 -0
  99. package/test-env/components/overlay_mask/overlay_mask.styles.js +1 -1
  100. package/test-env/components/page/page_sidebar/page_sidebar.js +2 -4
  101. package/test-env/components/page_template/page_template.js +2 -24
  102. package/test-env/components/text_truncate/index.js +25 -0
  103. package/test-env/components/text_truncate/text_truncate.js +236 -0
  104. package/test-env/components/text_truncate/text_truncate.styles.js +54 -0
  105. package/test-env/components/text_truncate/utils.js +342 -0
  106. package/test-env/services/theme/context.js +3 -1
  107. package/test-env/services/theme/hooks.js +21 -2
  108. package/test-env/services/theme/index.js +6 -0
  109. package/test-env/services/theme/provider.js +62 -35
  110. package/src/components/accordion/_accordion_form.scss +0 -40
  111. package/src/components/accordion/_index.scss +0 -1
@@ -4,7 +4,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.withEuiTheme = exports.useEuiTheme = exports.RenderWithEuiTheme = void 0;
7
+ exports.withEuiTheme = exports.useEuiThemeCSSVariables = exports.useEuiTheme = exports.RenderWithEuiTheme = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _context = require("./context");
10
10
  var _warning = require("./warning");
@@ -72,4 +72,23 @@ var RenderWithEuiTheme = function RenderWithEuiTheme(_ref) {
72
72
  var theme = useEuiTheme();
73
73
  return children(theme);
74
74
  };
75
- exports.RenderWithEuiTheme = RenderWithEuiTheme;
75
+
76
+ /**
77
+ * Minor syntactical sugar hook for theme CSS variables.
78
+ * Primarily meant for internal EUI usage.
79
+ */
80
+ exports.RenderWithEuiTheme = RenderWithEuiTheme;
81
+ var useEuiThemeCSSVariables = function useEuiThemeCSSVariables() {
82
+ var _useContext = (0, _react.useContext)(_context.EuiNestedThemeContext),
83
+ setGlobalCSSVariables = _useContext.setGlobalCSSVariables,
84
+ globalCSSVariables = _useContext.globalCSSVariables,
85
+ setNearestThemeCSSVariables = _useContext.setNearestThemeCSSVariables,
86
+ themeCSSVariables = _useContext.themeCSSVariables;
87
+ return {
88
+ setGlobalCSSVariables: setGlobalCSSVariables,
89
+ globalCSSVariables: globalCSSVariables,
90
+ setNearestThemeCSSVariables: setNearestThemeCSSVariables,
91
+ themeCSSVariables: themeCSSVariables
92
+ };
93
+ };
94
+ exports.useEuiThemeCSSVariables = useEuiThemeCSSVariables;
@@ -123,6 +123,12 @@ Object.defineProperty(exports, "useEuiTheme", {
123
123
  return _hooks.useEuiTheme;
124
124
  }
125
125
  });
126
+ Object.defineProperty(exports, "useEuiThemeCSSVariables", {
127
+ enumerable: true,
128
+ get: function get() {
129
+ return _hooks.useEuiThemeCSSVariables;
130
+ }
131
+ });
126
132
  Object.defineProperty(exports, "withEuiTheme", {
127
133
  enumerable: true,
128
134
  get: function get() {
@@ -5,14 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.EuiThemeProvider = void 0;
8
- var _react = _interopRequireWildcard(require("react"));
8
+ var _react = require("@emotion/react");
9
+ var _react2 = _interopRequireWildcard(require("react"));
9
10
  var _classnames = _interopRequireDefault(require("classnames"));
10
- var _css = require("@emotion/css");
11
+ var _css2 = require("@emotion/css");
11
12
  var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
13
+ var _emotion = require("../emotion");
12
14
  var _context = require("./context");
13
- var _emotion = require("./emotion");
15
+ var _emotion2 = require("./emotion");
14
16
  var _utils = require("./utils");
15
- var _react2 = require("@emotion/react");
16
17
  var _excluded = ["cloneElement", "className"];
17
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
19
  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); }
@@ -43,35 +44,37 @@ var EuiThemeProvider = function EuiThemeProvider(_ref) {
43
44
  _modifications = _ref.modify,
44
45
  children = _ref.children,
45
46
  wrapperProps = _ref.wrapperProps;
46
- var _useContext = (0, _react.useContext)(_context.EuiNestedThemeContext),
47
+ var _useContext = (0, _react2.useContext)(_context.EuiNestedThemeContext),
47
48
  isGlobalTheme = _useContext.isGlobalTheme,
48
- bodyColor = _useContext.bodyColor;
49
- var parentSystem = (0, _react.useContext)(_context.EuiSystemContext);
50
- var parentModifications = (0, _react.useContext)(_context.EuiModificationsContext);
51
- var parentColorMode = (0, _react.useContext)(_context.EuiColorModeContext);
52
- var parentTheme = (0, _react.useContext)(_context.EuiThemeContext);
53
- var _useState = (0, _react.useState)(_system || parentSystem),
49
+ bodyColor = _useContext.bodyColor,
50
+ globalCSSVariables = _useContext.globalCSSVariables,
51
+ setGlobalCSSVariables = _useContext.setGlobalCSSVariables;
52
+ var parentSystem = (0, _react2.useContext)(_context.EuiSystemContext);
53
+ var parentModifications = (0, _react2.useContext)(_context.EuiModificationsContext);
54
+ var parentColorMode = (0, _react2.useContext)(_context.EuiColorModeContext);
55
+ var parentTheme = (0, _react2.useContext)(_context.EuiThemeContext);
56
+ var _useState = (0, _react2.useState)(_system || parentSystem),
54
57
  _useState2 = _slicedToArray(_useState, 2),
55
58
  system = _useState2[0],
56
59
  setSystem = _useState2[1];
57
- var prevSystemKey = (0, _react.useRef)(system.key);
58
- var _useState3 = (0, _react.useState)((0, _utils.mergeDeep)(parentModifications, _modifications)),
60
+ var prevSystemKey = (0, _react2.useRef)(system.key);
61
+ var _useState3 = (0, _react2.useState)((0, _utils.mergeDeep)(parentModifications, _modifications)),
59
62
  _useState4 = _slicedToArray(_useState3, 2),
60
63
  modifications = _useState4[0],
61
64
  setModifications = _useState4[1];
62
- var prevModifications = (0, _react.useRef)(modifications);
63
- var _useState5 = (0, _react.useState)((0, _utils.getColorMode)(_colorMode, parentColorMode)),
65
+ var prevModifications = (0, _react2.useRef)(modifications);
66
+ var _useState5 = (0, _react2.useState)((0, _utils.getColorMode)(_colorMode, parentColorMode)),
64
67
  _useState6 = _slicedToArray(_useState5, 2),
65
68
  colorMode = _useState6[0],
66
69
  setColorMode = _useState6[1];
67
- var prevColorMode = (0, _react.useRef)(colorMode);
68
- var isParentTheme = (0, _react.useRef)(prevSystemKey.current === parentSystem.key && colorMode === parentColorMode && (0, _isEqual.default)(parentModifications, modifications));
69
- var _useState7 = (0, _react.useState)(isParentTheme.current && Object.keys(parentTheme).length ? _objectSpread({}, parentTheme) // Intentionally create a new object to break referential equality
70
+ var prevColorMode = (0, _react2.useRef)(colorMode);
71
+ var isParentTheme = (0, _react2.useRef)(prevSystemKey.current === parentSystem.key && colorMode === parentColorMode && (0, _isEqual.default)(parentModifications, modifications));
72
+ var _useState7 = (0, _react2.useState)(isParentTheme.current && Object.keys(parentTheme).length ? _objectSpread({}, parentTheme) // Intentionally create a new object to break referential equality
70
73
  : (0, _utils.getComputed)(system, (0, _utils.buildTheme)(modifications, "_".concat(system.key)), colorMode)),
71
74
  _useState8 = _slicedToArray(_useState7, 2),
72
75
  theme = _useState8[0],
73
76
  setTheme = _useState8[1];
74
- (0, _react.useEffect)(function () {
77
+ (0, _react2.useEffect)(function () {
75
78
  var newSystem = _system || parentSystem;
76
79
  if (prevSystemKey.current !== newSystem.key) {
77
80
  setSystem(newSystem);
@@ -79,7 +82,7 @@ var EuiThemeProvider = function EuiThemeProvider(_ref) {
79
82
  isParentTheme.current = false;
80
83
  }
81
84
  }, [_system, parentSystem]);
82
- (0, _react.useEffect)(function () {
85
+ (0, _react2.useEffect)(function () {
83
86
  var newModifications = (0, _utils.mergeDeep)(parentModifications, _modifications);
84
87
  if (!(0, _isEqual.default)(prevModifications.current, newModifications)) {
85
88
  setModifications(newModifications);
@@ -87,7 +90,7 @@ var EuiThemeProvider = function EuiThemeProvider(_ref) {
87
90
  isParentTheme.current = false;
88
91
  }
89
92
  }, [_modifications, parentModifications]);
90
- (0, _react.useEffect)(function () {
93
+ (0, _react2.useEffect)(function () {
91
94
  var newColorMode = (0, _utils.getColorMode)(_colorMode, parentColorMode);
92
95
  if (!(0, _isEqual.default)(newColorMode, prevColorMode.current)) {
93
96
  setColorMode(newColorMode);
@@ -95,21 +98,34 @@ var EuiThemeProvider = function EuiThemeProvider(_ref) {
95
98
  isParentTheme.current = false;
96
99
  }
97
100
  }, [_colorMode, parentColorMode]);
98
- (0, _react.useEffect)(function () {
101
+ (0, _react2.useEffect)(function () {
99
102
  if (!isParentTheme.current) {
100
103
  setTheme((0, _utils.getComputed)(system, (0, _utils.buildTheme)(modifications, "_".concat(system.key)), colorMode));
101
104
  }
102
105
  }, [colorMode, system, modifications]);
103
- var nestedThemeContext = (0, _react.useMemo)(function () {
106
+ var _useState9 = (0, _react2.useState)(),
107
+ _useState10 = _slicedToArray(_useState9, 2),
108
+ themeCSSVariables = _useState10[0],
109
+ _setThemeCSSVariables = _useState10[1];
110
+ var setThemeCSSVariables = (0, _react2.useCallback)(function (variables) {
111
+ return _setThemeCSSVariables(function (previous) {
112
+ return _objectSpread(_objectSpread({}, previous), variables);
113
+ });
114
+ }, []);
115
+ var nestedThemeContext = (0, _react2.useMemo)(function () {
104
116
  return {
105
117
  isGlobalTheme: false,
106
118
  // The theme that determines the global body styles
107
119
  bodyColor: isGlobalTheme ? theme.colors.text : bodyColor,
108
120
  hasDifferentColorFromGlobalTheme: isGlobalTheme ? false : bodyColor !== theme.colors.text,
109
- colorClassName: /*#__PURE__*/(0, _css.css)("label:euiColorMode-", _colorMode, ";color:", theme.colors.text, ";;label:colorClassName;")
121
+ colorClassName: /*#__PURE__*/(0, _css2.css)("label:euiColorMode-", _colorMode, ";color:", theme.colors.text, ";;label:colorClassName;"),
122
+ setGlobalCSSVariables: isGlobalTheme ? setThemeCSSVariables : setGlobalCSSVariables,
123
+ globalCSSVariables: isGlobalTheme ? themeCSSVariables : globalCSSVariables,
124
+ setNearestThemeCSSVariables: setThemeCSSVariables,
125
+ themeCSSVariables: themeCSSVariables
110
126
  };
111
- }, [theme, isGlobalTheme, bodyColor, _colorMode]);
112
- var renderedChildren = (0, _react.useMemo)(function () {
127
+ }, [theme, isGlobalTheme, bodyColor, _colorMode, setGlobalCSSVariables, globalCSSVariables, setThemeCSSVariables, themeCSSVariables]);
128
+ var renderedChildren = (0, _react2.useMemo)(function () {
113
129
  if (isGlobalTheme) {
114
130
  return children; // No wrapper
115
131
  }
@@ -121,26 +137,37 @@ var EuiThemeProvider = function EuiThemeProvider(_ref) {
121
137
  var props = _objectSpread(_objectSpread({}, rest), {}, {
122
138
  className: (0, _classnames.default)(className, nestedThemeContext.colorClassName)
123
139
  });
140
+ // Condition avoids rendering an empty Emotion selector if no
141
+ // theme-specific CSS variables have been set by child components
142
+ if (themeCSSVariables) {
143
+ props.css = _objectSpread({
144
+ label: 'euiCSSVariables'
145
+ }, themeCSSVariables);
146
+ }
124
147
  if (cloneElement) {
125
- return /*#__PURE__*/_react.default.cloneElement(children, _objectSpread(_objectSpread({}, props), {}, {
148
+ return (0, _emotion.cloneElementWithCss)(children, _objectSpread(_objectSpread({}, props), {}, {
126
149
  className: (0, _classnames.default)(children.props.className, props.className)
127
150
  }));
128
151
  } else {
129
- return (0, _react2.jsx)("span", _extends({}, props, {
152
+ return (0, _react.jsx)("span", _extends({}, props, {
130
153
  className: (0, _classnames.default)('euiThemeProvider', props.className)
131
154
  }), children);
132
155
  }
133
- }, [isGlobalTheme, nestedThemeContext, wrapperProps, children]);
134
- return (0, _react2.jsx)(_context.EuiColorModeContext.Provider, {
156
+ }, [isGlobalTheme, themeCSSVariables, nestedThemeContext, wrapperProps, children]);
157
+ return (0, _react.jsx)(_react2.default.Fragment, null, isGlobalTheme && themeCSSVariables && (0, _react.jsx)(_react.Global, {
158
+ styles: /*#__PURE__*/(0, _react.css)({
159
+ ':root': themeCSSVariables
160
+ }, ";label:EuiThemeProvider;")
161
+ }), (0, _react.jsx)(_context.EuiColorModeContext.Provider, {
135
162
  value: colorMode
136
- }, (0, _react2.jsx)(_context.EuiSystemContext.Provider, {
163
+ }, (0, _react.jsx)(_context.EuiSystemContext.Provider, {
137
164
  value: system
138
- }, (0, _react2.jsx)(_context.EuiModificationsContext.Provider, {
165
+ }, (0, _react.jsx)(_context.EuiModificationsContext.Provider, {
139
166
  value: modifications
140
- }, (0, _react2.jsx)(_context.EuiThemeContext.Provider, {
167
+ }, (0, _react.jsx)(_context.EuiThemeContext.Provider, {
141
168
  value: theme
142
- }, (0, _react2.jsx)(_context.EuiNestedThemeContext.Provider, {
169
+ }, (0, _react.jsx)(_context.EuiNestedThemeContext.Provider, {
143
170
  value: nestedThemeContext
144
- }, (0, _react2.jsx)(_emotion.EuiEmotionThemeProvider, null, renderedChildren))))));
171
+ }, (0, _react.jsx)(_emotion2.EuiEmotionThemeProvider, null, renderedChildren)))))));
145
172
  };
146
173
  exports.EuiThemeProvider = EuiThemeProvider;
@@ -1,4 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
4
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
4
5
  import _createClass from "@babel/runtime/helpers/createClass";
@@ -7,7 +8,8 @@ import _inherits from "@babel/runtime/helpers/inherits";
7
8
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
8
9
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
9
10
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
- var _excluded = ["children", "buttonContent", "className", "id", "element", "buttonClassName", "buttonContentClassName", "extraAction", "paddingSize", "initialIsOpen", "arrowDisplay", "forceState", "isLoading", "isLoadingMessage", "isDisabled", "buttonProps", "buttonElement", "arrowProps", "theme"];
11
+ var _excluded = ["children", "buttonContent", "className", "id", "element", "buttonClassName", "buttonContentClassName", "extraAction", "paddingSize", "borders", "initialIsOpen", "arrowDisplay", "forceState", "isLoading", "isLoadingMessage", "isDisabled", "buttonProps", "buttonElement", "arrowProps", "theme"],
12
+ _excluded2 = ["paddingSize", "className", "css"];
11
13
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
12
14
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
13
15
  /*
@@ -27,7 +29,7 @@ import { EuiText } from '../text';
27
29
  import { EuiI18n } from '../i18n';
28
30
  import { htmlIdGenerator, withEuiTheme } from '../../services';
29
31
  import { EuiButtonIcon } from '../button';
30
- import { euiAccordionButtonStyles, euiAccordionChildrenStyles, euiAccordionChildWrapperStyles, euiAccordionIconButtonStyles, euiAccordionOptionalActionStyles, euiAccordionSpinnerStyles, euiAccordionTriggerWrapperStyles } from './accordion.styles';
32
+ import { euiAccordionStyles, euiAccordionButtonStyles, euiAccordionChildrenStyles, euiAccordionChildWrapperStyles, euiAccordionIconButtonStyles, euiAccordionOptionalActionStyles, euiAccordionSpinnerStyles, euiAccordionTriggerWrapperStyles } from './accordion.styles';
31
33
  import { logicalCSS } from '../../global_styling';
32
34
  import { jsx as ___EmotionJSX } from "@emotion/react";
33
35
  export var PADDING_SIZES = ['none', 'xs', 's', 'm', 'l', 'xl'];
@@ -156,18 +158,24 @@ export var EuiAccordionClass = /*#__PURE__*/function (_Component) {
156
158
  buttonContentClassName = _this$props3.buttonContentClassName,
157
159
  extraAction = _this$props3.extraAction,
158
160
  paddingSize = _this$props3.paddingSize,
161
+ borders = _this$props3.borders,
159
162
  initialIsOpen = _this$props3.initialIsOpen,
160
163
  arrowDisplay = _this$props3.arrowDisplay,
161
164
  forceState = _this$props3.forceState,
162
165
  isLoading = _this$props3.isLoading,
163
166
  isLoadingMessage = _this$props3.isLoadingMessage,
164
167
  isDisabled = _this$props3.isDisabled,
165
- buttonProps = _this$props3.buttonProps,
168
+ _buttonProps = _this$props3.buttonProps,
166
169
  _this$props3$buttonEl = _this$props3.buttonElement,
167
170
  _ButtonElement = _this$props3$buttonEl === void 0 ? 'button' : _this$props3$buttonEl,
168
171
  arrowProps = _this$props3.arrowProps,
169
172
  theme = _this$props3.theme,
170
173
  rest = _objectWithoutProperties(_this$props3, _excluded);
174
+ var _ref = _buttonProps || {},
175
+ buttonPaddingSize = _ref.paddingSize,
176
+ buttonPropsClassName = _ref.className,
177
+ buttonPropsCss = _ref.css,
178
+ buttonProps = _objectWithoutProperties(_ref, _excluded2);
171
179
 
172
180
  // Force button element to be a legend if the element is a fieldset
173
181
  var ButtonElement = Element === 'fieldset' ? 'legend' : _ButtonElement;
@@ -178,10 +186,12 @@ export var EuiAccordionClass = /*#__PURE__*/function (_Component) {
178
186
  var classes = classNames('euiAccordion', {
179
187
  'euiAccordion-isOpen': this.isOpen
180
188
  }, className);
189
+ var styles = euiAccordionStyles(theme);
190
+ var cssStyles = [styles.euiAccordion, borders !== 'none' && styles.borders.borders, borders !== 'none' && styles.borders[borders]];
181
191
  var childrenClasses = classNames('euiAccordion__children', {
182
192
  'euiAccordion__children-isLoading': isLoading
183
193
  });
184
- var buttonClasses = classNames('euiAccordion__button', buttonClassName, buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.className);
194
+ var buttonClasses = classNames('euiAccordion__button', buttonClassName, buttonPropsClassName);
185
195
  var buttonContentClasses = classNames('euiAccordion__buttonContent', buttonContentClassName);
186
196
  var iconButtonClasses = classNames('euiAccordion__iconButton', {
187
197
  'euiAccordion__iconButton-isOpen': this.isOpen,
@@ -190,7 +200,7 @@ export var EuiAccordionClass = /*#__PURE__*/function (_Component) {
190
200
 
191
201
  // Emotion styles
192
202
  var buttonStyles = euiAccordionButtonStyles(theme);
193
- var cssButtonStyles = [buttonStyles.euiAccordion__button, isDisabled && buttonStyles.disabled, buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.css];
203
+ var cssButtonStyles = [buttonStyles.euiAccordion__button, isDisabled && buttonStyles.disabled].concat(_toConsumableArray(buttonPaddingSize ? [buttonStyles[buttonPaddingSize], arrowDisplay === 'left' && buttonStyles.arrowLeft, arrowDisplay === 'right' && buttonStyles.arrowRight] : []), [buttonPropsCss]);
194
204
  var childrenStyles = euiAccordionChildrenStyles(theme);
195
205
  var cssChildrenStyles = [childrenStyles.euiAccordion__children, isLoading && childrenStyles.isLoading, paddingSize && paddingSize !== 'none' && childrenStyles[paddingSize]];
196
206
  var childWrapperStyles = euiAccordionChildWrapperStyles(theme);
@@ -204,7 +214,7 @@ export var EuiAccordionClass = /*#__PURE__*/function (_Component) {
204
214
  var triggerWrapperStyles = euiAccordionTriggerWrapperStyles();
205
215
  var cssTriggerWrapperStyles = [triggerWrapperStyles.euiAccordion__triggerWrapper];
206
216
  var iconButton;
207
- var buttonId = (_buttonProps$id = buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.id) !== null && _buttonProps$id !== void 0 ? _buttonProps$id : this.generatedId;
217
+ var buttonId = (_buttonProps$id = buttonProps.id) !== null && _buttonProps$id !== void 0 ? _buttonProps$id : this.generatedId;
208
218
  if (_arrowDisplay !== 'none') {
209
219
  iconButton = ___EmotionJSX(EuiButtonIcon, _extends({
210
220
  color: "text"
@@ -256,7 +266,8 @@ export var EuiAccordionClass = /*#__PURE__*/function (_Component) {
256
266
  className: buttonContentClasses
257
267
  }, buttonContent));
258
268
  return ___EmotionJSX(Element, _extends({
259
- className: classes
269
+ className: classes,
270
+ css: cssStyles
260
271
  }, rest), ___EmotionJSX("div", {
261
272
  className: "euiAccordion__triggerWrapper",
262
273
  css: cssTriggerWrapperStyles
@@ -287,6 +298,7 @@ export var EuiAccordionClass = /*#__PURE__*/function (_Component) {
287
298
  }(Component);
288
299
  _defineProperty(EuiAccordionClass, "defaultProps", {
289
300
  initialIsOpen: false,
301
+ borders: 'none',
290
302
  paddingSize: 'none',
291
303
  arrowDisplay: 'left',
292
304
  isLoading: false,
@@ -9,13 +9,33 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
9
9
 
10
10
  import { css } from '@emotion/react';
11
11
  import { euiFontSize, logicals, logicalCSS, logicalTextAlignCSS } from '../../global_styling';
12
+ export var euiAccordionStyles = function euiAccordionStyles(_ref5) {
13
+ var euiTheme = _ref5.euiTheme;
14
+ return {
15
+ euiAccordion: /*#__PURE__*/css(";label:euiAccordion;"),
16
+ // Borders
17
+ borders: {
18
+ // Prevent border repeats
19
+ borders: /*#__PURE__*/css("&+[class*='euiAccordion-borders']{", logicalCSS('border-top', 'none'), ";};label:borders;"),
20
+ horizontal: /*#__PURE__*/css("border-block:", euiTheme.border.thin, ";;label:horizontal;"),
21
+ all: /*#__PURE__*/css("border:", euiTheme.border.thin, ";;label:all;")
22
+ }
23
+ };
24
+ };
12
25
  export var euiAccordionButtonStyles = function euiAccordionButtonStyles(euiThemeContext) {
13
26
  var euiTheme = euiThemeContext.euiTheme;
14
27
  return {
15
28
  euiAccordion__button: /*#__PURE__*/css(euiFontSize(euiThemeContext, 's'), " align-items:center;display:flex;flex-grow:1;line-height:", euiTheme.size.l, ";", logicalTextAlignCSS('left'), " ", logicalCSS('width', '100%'), " &:hover,&:focus{cursor:pointer;text-decoration:underline;};label:euiAccordion__button;"),
16
29
  // Triggering button needs separate `disabled` key because the element that renders may not support `:disabled`;
17
30
  // Hover pseudo selector for specificity
18
- disabled: /*#__PURE__*/css("&,&:hover{cursor:not-allowed;color:", euiTheme.colors.disabledText, ";text-decoration:none;};label:disabled;")
31
+ disabled: /*#__PURE__*/css("&,&:hover{cursor:not-allowed;color:", euiTheme.colors.disabledText, ";text-decoration:none;};label:disabled;"),
32
+ // Optional padding sizes
33
+ s: /*#__PURE__*/css("padding:", euiTheme.size.s, ";;label:s;"),
34
+ m: /*#__PURE__*/css("padding:", euiTheme.size.base, ";;label:m;"),
35
+ l: /*#__PURE__*/css("padding:", euiTheme.size.l, ";;label:l;"),
36
+ // Remove padding from the accordion button on the side that the arrow is on
37
+ arrowLeft: /*#__PURE__*/css(logicalCSS('padding-left', 0), ";;label:arrowLeft;"),
38
+ arrowRight: /*#__PURE__*/css(logicalCSS('padding-left', 0), ";;label:arrowRight;")
19
39
  };
20
40
  };
21
41
  var _ref4 = process.env.NODE_ENV === "production" ? {
@@ -26,8 +46,8 @@ var _ref4 = process.env.NODE_ENV === "production" ? {
26
46
  styles: "align-items:center;display:flex;label:isLoading;",
27
47
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
28
48
  };
29
- export var euiAccordionChildrenStyles = function euiAccordionChildrenStyles(_ref5) {
30
- var euiTheme = _ref5.euiTheme;
49
+ export var euiAccordionChildrenStyles = function euiAccordionChildrenStyles(_ref6) {
50
+ var euiTheme = _ref6.euiTheme;
31
51
  return {
32
52
  euiAccordion__children: /*#__PURE__*/css(";label:euiAccordion__children;"),
33
53
  isLoading: _ref4,
@@ -38,8 +58,8 @@ export var euiAccordionChildrenStyles = function euiAccordionChildrenStyles(_ref
38
58
  xl: /*#__PURE__*/css("padding:", euiTheme.size.xl, ";;label:xl;")
39
59
  };
40
60
  };
41
- export var euiAccordionChildWrapperStyles = function euiAccordionChildWrapperStyles(_ref6) {
42
- var euiTheme = _ref6.euiTheme;
61
+ export var euiAccordionChildWrapperStyles = function euiAccordionChildWrapperStyles(_ref7) {
62
+ var euiTheme = _ref7.euiTheme;
43
63
  return {
44
64
  euiAccordion__childWrapper: /*#__PURE__*/css(logicalCSS('height', 0), " opacity:0;overflow:hidden;transition:", logicals.height, " ", euiTheme.animation.normal, " ", euiTheme.animation.resistance, ",opacity ", euiTheme.animation.normal, " ", euiTheme.animation.resistance, ";visibility:hidden;&:focus{outline:none;};label:euiAccordion__childWrapper;"),
45
65
  isOpen: /*#__PURE__*/css(logicalCSS('height', 'auto'), " opacity:1;visibility:visible;;label:isOpen;")
@@ -53,8 +73,8 @@ var _ref3 = process.env.NODE_ENV === "production" ? {
53
73
  styles: "transform:rotate(\n 90deg\n )!important;label:isOpen;",
54
74
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
55
75
  };
56
- export var euiAccordionIconButtonStyles = function euiAccordionIconButtonStyles(_ref7) {
57
- var euiTheme = _ref7.euiTheme;
76
+ export var euiAccordionIconButtonStyles = function euiAccordionIconButtonStyles(_ref8) {
77
+ var euiTheme = _ref8.euiTheme;
58
78
  return {
59
79
  euiAccordion__iconButton: /*#__PURE__*/css("flex-shrink:0;", logicalCSS('margin-right', euiTheme.size.xs), " transform:rotate(\n 0deg\n )!important;;label:euiAccordion__iconButton;"),
60
80
  isOpen: _ref3,
@@ -74,8 +94,8 @@ export var euiAccordionOptionalActionStyles = function euiAccordionOptionalActio
74
94
  euiAccordion__optionalAction: _ref2
75
95
  };
76
96
  };
77
- export var euiAccordionSpinnerStyles = function euiAccordionSpinnerStyles(_ref8) {
78
- var euiTheme = _ref8.euiTheme;
97
+ export var euiAccordionSpinnerStyles = function euiAccordionSpinnerStyles(_ref9) {
98
+ var euiTheme = _ref9.euiTheme;
79
99
  return {
80
100
  euiAccordion__spinner: /*#__PURE__*/css(logicalCSS('margin-right', euiTheme.size.xs), ";;label:euiAccordion__spinner;")
81
101
  };
@@ -3,7 +3,7 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
4
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
5
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
6
- var _excluded = ["id", "children", "className", "style", "initialIsCollapsed", "onCollapseToggle", "width", "side", "focusTrapProps"];
6
+ var _excluded = ["id", "children", "className", "initialIsCollapsed", "onCollapseToggle", "width", "side", "focusTrapProps"];
7
7
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8
8
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
9
  /*
@@ -17,7 +17,6 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
17
17
  import React, { useRef, useMemo, useState, useEffect, useCallback } from 'react';
18
18
  import classNames from 'classnames';
19
19
  import { useEuiTheme, useGeneratedHtmlId, throttle } from '../../services';
20
- import { mathWithUnits, logicalStyle } from '../../global_styling';
21
20
  import { EuiFlyout } from '../flyout';
22
21
  import { useEuiI18n } from '../i18n';
23
22
  import { euiHeaderVariables } from '../header/header.styles';
@@ -29,7 +28,6 @@ export var EuiCollapsibleNavBeta = function EuiCollapsibleNavBeta(_ref) {
29
28
  var id = _ref.id,
30
29
  children = _ref.children,
31
30
  className = _ref.className,
32
- style = _ref.style,
33
31
  _ref$initialIsCollaps = _ref.initialIsCollapsed,
34
32
  initialIsCollapsed = _ref$initialIsCollaps === void 0 ? false : _ref$initialIsCollaps,
35
33
  onCollapseToggle = _ref.onCollapseToggle,
@@ -100,24 +98,6 @@ export var EuiCollapsibleNavBeta = function EuiCollapsibleNavBeta(_ref) {
100
98
  return _width;
101
99
  }, [_width, isOverlayFullWidth, isPush, isCollapsed, headerHeight]);
102
100
 
103
- /**
104
- * Header affordance
105
- */
106
- var _useState7 = useState(false),
107
- _useState8 = _slicedToArray(_useState7, 2),
108
- fixedHeadersCount = _useState8[0],
109
- setFixedHeadersCount = _useState8[1];
110
- useEffect(function () {
111
- setFixedHeadersCount(document.querySelectorAll('.euiHeader[data-fixed-header]').length);
112
- }, []);
113
- var stylesWithHeaderOffset = useMemo(function () {
114
- if (!fixedHeadersCount) return style;
115
- var headersOffset = mathWithUnits(headerHeight, function (x) {
116
- return x * fixedHeadersCount;
117
- });
118
- return _objectSpread(_objectSpread(_objectSpread({}, style), logicalStyle('top', headersOffset)), logicalStyle('height', "calc(100% - ".concat(headersOffset, ")")));
119
- }, [fixedHeadersCount, style, headerHeight]);
120
-
121
101
  /**
122
102
  * Prop setup
123
103
  */
@@ -135,16 +115,13 @@ export var EuiCollapsibleNavBeta = function EuiCollapsibleNavBeta(_ref) {
135
115
  var classes = classNames('euiCollapsibleNav', 'euiCollapsibleNavBeta', className);
136
116
  var styles = euiCollapsibleNavBetaStyles(euiTheme);
137
117
  var cssStyles = [styles.euiCollapsibleNavBeta, styles[side], isPush && styles.isPush, isPush && isCollapsed && styles.isPushCollapsed, isOverlayFullWidth && styles.isOverlayFullWidth];
138
-
139
- // Wait for any fixed headers to be queried before rendering (prevents position jumping)
140
- var flyout = fixedHeadersCount !== false && ___EmotionJSX(EuiFlyout, _extends({
118
+ var flyout = ___EmotionJSX(EuiFlyout, _extends({
141
119
  "aria-label": defaultAriaLabel
142
120
  }, rest, {
143
121
  // EuiCollapsibleNav is significantly less permissive than EuiFlyout
144
122
  id: flyoutID,
145
123
  css: cssStyles,
146
124
  className: classes,
147
- style: stylesWithHeaderOffset,
148
125
  size: width,
149
126
  side: side,
150
127
  focusTrapProps: focusTrapProps,
@@ -10,6 +10,7 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
10
10
  import { css } from '@emotion/react';
11
11
  import { logicalCSS, euiYScroll } from '../../global_styling';
12
12
  import { euiShadowFlat } from '../../themes';
13
+ import { euiHeaderVariables } from '../header/header.styles';
13
14
  var _ref = process.env.NODE_ENV === "production" ? {
14
15
  name: "1adm1dw-isPushCollapsed",
15
16
  styles: "&,.euiFlyoutBody__overflow{scrollbar-width:none;&::-webkit-scrollbar{display:none;}};label:isPushCollapsed;"
@@ -20,8 +21,16 @@ var _ref = process.env.NODE_ENV === "production" ? {
20
21
  };
21
22
  export var euiCollapsibleNavBetaStyles = function euiCollapsibleNavBetaStyles(euiThemeContext) {
22
23
  var euiTheme = euiThemeContext.euiTheme;
24
+
25
+ // At least for serverless, EuiCollapsibleNav is only going to be used with 1
26
+ // fixed header. For those scenarios, we can prevent a minor layout jump on
27
+ // page load by setting the CSS var fallback to the height of a single header
28
+ var defaultHeaderHeight = euiHeaderVariables(euiThemeContext).height;
29
+ var fixedHeaderOffset = "var(--euiFixedHeadersOffset, ".concat(defaultHeaderHeight, ")");
23
30
  return {
24
- euiCollapsibleNavBeta: /*#__PURE__*/css(logicalCSS('padding-bottom', euiTheme.size.xs), euiYScroll(euiThemeContext), ".euiFlyoutBody{", logicalCSS('min-height', '50%'), ";}.euiFlyoutFooter{background-color:", euiTheme.colors.emptyShade, ";", logicalCSS('border-top', euiTheme.border.thin), ";};label:euiCollapsibleNavBeta;"),
31
+ euiCollapsibleNavBeta: /*#__PURE__*/css(logicalCSS('top', fixedHeaderOffset), euiYScroll(euiThemeContext, {
32
+ height: 'inherit'
33
+ }), logicalCSS('padding-bottom', euiTheme.size.xs), ".euiFlyoutBody{", logicalCSS('min-height', '50%'), ";}.euiFlyoutFooter{background-color:", euiTheme.colors.emptyShade, ";", logicalCSS('border-top', euiTheme.border.thin), ";};label:euiCollapsibleNavBeta;"),
25
34
  left: /*#__PURE__*/css(logicalCSS('border-right', euiTheme.border.thin), ";;label:left;"),
26
35
  right: /*#__PURE__*/css(logicalCSS('border-left', euiTheme.border.thin), ";;label:right;"),
27
36
  isPush: /*#__PURE__*/css(euiShadowFlat(euiThemeContext), ";;label:isPush;"),
@@ -32,7 +32,7 @@ export var euiFlyoutCloseButtonStyles = function euiFlyoutCloseButtonStyles(euiT
32
32
  export var euiFlyoutStyles = function euiFlyoutStyles(euiThemeContext) {
33
33
  var euiTheme = euiThemeContext.euiTheme;
34
34
  return {
35
- euiFlyout: /*#__PURE__*/css("position:fixed;", logicalCSS('top', 0), " ", logicalCSS('bottom', 0), " ", logicalCSS('height', '100%'), " z-index:", euiTheme.levels.flyout, ";background:", euiTheme.colors.emptyShade, ";display:flex;flex-direction:column;align-items:stretch;&:focus{outline:none;}", euiMaxBreakpoint(euiThemeContext, 'm'), "{", logicalCSS('max-width', '90vw !important'), ";};label:euiFlyout;"),
35
+ euiFlyout: /*#__PURE__*/css("position:fixed;", logicalCSS('bottom', 0), " ", logicalCSS('top', 'var(--euiFixedHeadersOffset, 0)'), " ", logicalCSS('height', 'inherit'), " z-index:", euiTheme.levels.flyout, ";background:", euiTheme.colors.emptyShade, ";display:flex;flex-direction:column;align-items:stretch;&:focus{outline:none;}", euiMaxBreakpoint(euiThemeContext, 'm'), "{", logicalCSS('max-width', '90vw !important'), ";};label:euiFlyout;"),
36
36
  // Flyout sizes
37
37
  s: /*#__PURE__*/css(composeFlyoutSizing(euiThemeContext, 's'), ";;label:s;"),
38
38
  m: /*#__PURE__*/css(composeFlyoutSizing(euiThemeContext, 'm'), ";;label:m;"),