@elastic/eui 93.2.0 → 93.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 (189) hide show
  1. package/dist/eui_theme_dark.css +3 -0
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +3 -0
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/breadcrumbs/breadcrumb.js +9 -6
  6. package/es/components/breadcrumbs/breadcrumbs.js +4 -2
  7. package/es/components/button/button_display/_button_display.js +2 -3
  8. package/es/components/button/button_empty/button_empty.js +2 -3
  9. package/es/components/button/button_group/button_group.js +3 -5
  10. package/es/components/button/button_group/button_group.styles.js +10 -13
  11. package/es/components/button/button_icon/button_icon.js +4 -5
  12. package/es/components/button/button_icon/button_icon.styles.js +11 -3
  13. package/es/components/datagrid/body/cell/data_grid_cell.js +7 -3
  14. package/es/components/datagrid/body/cell/data_grid_cell_wrapper.js +4 -2
  15. package/es/components/datagrid/body/data_grid_body.js +1 -0
  16. package/es/components/datagrid/body/data_grid_body_custom.js +3 -0
  17. package/es/components/datagrid/body/data_grid_body_virtualized.js +3 -0
  18. package/es/components/datagrid/body/data_grid_row_manager.js +1 -1
  19. package/es/components/datagrid/data_grid.js +3 -1
  20. package/es/components/facet/facet_button.styles.js +1 -2
  21. package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +4 -2
  22. package/es/components/icon/icon.js +13 -16
  23. package/es/components/icon/icon.styles.js +6 -9
  24. package/es/components/link/external_link_icon.js +11 -8
  25. package/es/components/link/link.js +2 -3
  26. package/es/components/link/link.styles.js +4 -10
  27. package/es/components/page/page_header/page_header_content.js +4 -2
  28. package/es/components/progress/progress.styles.js +2 -2
  29. package/es/components/skeleton/skeleton_circle.js +2 -3
  30. package/es/components/skeleton/skeleton_rectangle.js +2 -3
  31. package/es/components/skeleton/skeleton_text.js +16 -12
  32. package/es/components/skeleton/skeleton_title.js +2 -3
  33. package/es/components/text/text.js +2 -3
  34. package/es/components/text/text_align.js +1 -2
  35. package/es/components/text/text_align.styles.js +5 -7
  36. package/es/components/text/text_color.js +2 -3
  37. package/es/components/title/title.js +2 -3
  38. package/es/components/title/title.styles.js +0 -7
  39. package/es/global_styling/mixins/_typography.js +17 -6
  40. package/es/services/theme/index.js +1 -1
  41. package/es/services/theme/style_memoization.js +47 -14
  42. package/es/themes/amsterdam/global_styling/mixins/button.js +47 -24
  43. package/eui.d.ts +46 -37
  44. package/i18ntokens.json +36 -36
  45. package/lib/components/breadcrumbs/breadcrumb.js +9 -6
  46. package/lib/components/breadcrumbs/breadcrumbs.js +4 -2
  47. package/lib/components/button/button_display/_button_display.js +1 -2
  48. package/lib/components/button/button_empty/button_empty.js +1 -2
  49. package/lib/components/button/button_group/button_group.js +2 -4
  50. package/lib/components/button/button_group/button_group.styles.js +10 -13
  51. package/lib/components/button/button_icon/button_icon.js +3 -4
  52. package/lib/components/button/button_icon/button_icon.styles.js +10 -2
  53. package/lib/components/datagrid/body/cell/data_grid_cell.js +7 -3
  54. package/lib/components/datagrid/body/cell/data_grid_cell_wrapper.js +4 -2
  55. package/lib/components/datagrid/body/data_grid_body.js +1 -0
  56. package/lib/components/datagrid/body/data_grid_body_custom.js +3 -0
  57. package/lib/components/datagrid/body/data_grid_body_virtualized.js +3 -0
  58. package/lib/components/datagrid/body/data_grid_row_manager.js +1 -1
  59. package/lib/components/datagrid/data_grid.js +3 -1
  60. package/lib/components/facet/facet_button.styles.js +1 -2
  61. package/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +4 -2
  62. package/lib/components/icon/icon.js +12 -15
  63. package/lib/components/icon/icon.styles.js +5 -8
  64. package/lib/components/link/external_link_icon.js +10 -7
  65. package/lib/components/link/link.js +1 -2
  66. package/lib/components/link/link.styles.js +6 -14
  67. package/lib/components/page/page_header/page_header_content.js +4 -2
  68. package/lib/components/progress/progress.styles.js +1 -1
  69. package/lib/components/skeleton/skeleton_circle.js +1 -2
  70. package/lib/components/skeleton/skeleton_rectangle.js +1 -2
  71. package/lib/components/skeleton/skeleton_text.js +18 -11
  72. package/lib/components/skeleton/skeleton_title.js +1 -2
  73. package/lib/components/text/text.js +1 -2
  74. package/lib/components/text/text_align.js +1 -2
  75. package/lib/components/text/text_align.styles.js +5 -7
  76. package/lib/components/text/text_color.js +1 -2
  77. package/lib/components/title/title.js +1 -2
  78. package/lib/components/title/title.styles.js +2 -10
  79. package/lib/global_styling/mixins/_typography.js +27 -19
  80. package/lib/services/theme/index.js +6 -0
  81. package/lib/services/theme/style_memoization.js +49 -16
  82. package/lib/themes/amsterdam/global_styling/mixins/button.js +49 -25
  83. package/optimize/es/components/breadcrumbs/breadcrumb.js +5 -4
  84. package/optimize/es/components/button/button_display/_button_display.js +2 -3
  85. package/optimize/es/components/button/button_empty/button_empty.js +2 -3
  86. package/optimize/es/components/button/button_group/button_group.js +3 -5
  87. package/optimize/es/components/button/button_group/button_group.styles.js +10 -13
  88. package/optimize/es/components/button/button_icon/button_icon.js +4 -5
  89. package/optimize/es/components/button/button_icon/button_icon.styles.js +8 -3
  90. package/optimize/es/components/datagrid/body/cell/data_grid_cell.js +5 -3
  91. package/optimize/es/components/datagrid/body/cell/data_grid_cell_wrapper.js +4 -2
  92. package/optimize/es/components/datagrid/body/data_grid_body_custom.js +2 -0
  93. package/optimize/es/components/datagrid/body/data_grid_body_virtualized.js +2 -0
  94. package/optimize/es/components/datagrid/body/data_grid_row_manager.js +1 -1
  95. package/optimize/es/components/datagrid/data_grid.js +3 -1
  96. package/optimize/es/components/facet/facet_button.styles.js +1 -2
  97. package/optimize/es/components/icon/icon.js +13 -16
  98. package/optimize/es/components/icon/icon.styles.js +6 -9
  99. package/optimize/es/components/link/external_link_icon.js +11 -8
  100. package/optimize/es/components/link/link.js +2 -3
  101. package/optimize/es/components/link/link.styles.js +4 -10
  102. package/optimize/es/components/progress/progress.styles.js +2 -2
  103. package/optimize/es/components/skeleton/skeleton_circle.js +2 -3
  104. package/optimize/es/components/skeleton/skeleton_rectangle.js +2 -3
  105. package/optimize/es/components/skeleton/skeleton_text.js +16 -12
  106. package/optimize/es/components/skeleton/skeleton_title.js +2 -3
  107. package/optimize/es/components/text/text.js +2 -3
  108. package/optimize/es/components/text/text_align.js +1 -2
  109. package/optimize/es/components/text/text_align.styles.js +5 -7
  110. package/optimize/es/components/text/text_color.js +2 -3
  111. package/optimize/es/components/title/title.js +2 -3
  112. package/optimize/es/components/title/title.styles.js +0 -7
  113. package/optimize/es/global_styling/mixins/_typography.js +14 -6
  114. package/optimize/es/services/theme/index.js +1 -1
  115. package/optimize/es/services/theme/style_memoization.js +47 -14
  116. package/optimize/es/themes/amsterdam/global_styling/mixins/button.js +47 -24
  117. package/optimize/lib/components/breadcrumbs/breadcrumb.js +5 -4
  118. package/optimize/lib/components/button/button_display/_button_display.js +1 -2
  119. package/optimize/lib/components/button/button_empty/button_empty.js +1 -2
  120. package/optimize/lib/components/button/button_group/button_group.js +2 -4
  121. package/optimize/lib/components/button/button_group/button_group.styles.js +10 -13
  122. package/optimize/lib/components/button/button_icon/button_icon.js +3 -4
  123. package/optimize/lib/components/button/button_icon/button_icon.styles.js +8 -2
  124. package/optimize/lib/components/datagrid/body/cell/data_grid_cell.js +5 -3
  125. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_wrapper.js +4 -2
  126. package/optimize/lib/components/datagrid/body/data_grid_body_custom.js +2 -0
  127. package/optimize/lib/components/datagrid/body/data_grid_body_virtualized.js +2 -0
  128. package/optimize/lib/components/datagrid/body/data_grid_row_manager.js +1 -1
  129. package/optimize/lib/components/datagrid/data_grid.js +3 -1
  130. package/optimize/lib/components/facet/facet_button.styles.js +1 -2
  131. package/optimize/lib/components/icon/icon.js +12 -15
  132. package/optimize/lib/components/icon/icon.styles.js +5 -8
  133. package/optimize/lib/components/link/external_link_icon.js +10 -7
  134. package/optimize/lib/components/link/link.js +1 -2
  135. package/optimize/lib/components/link/link.styles.js +6 -14
  136. package/optimize/lib/components/progress/progress.styles.js +1 -1
  137. package/optimize/lib/components/skeleton/skeleton_circle.js +1 -2
  138. package/optimize/lib/components/skeleton/skeleton_rectangle.js +1 -2
  139. package/optimize/lib/components/skeleton/skeleton_text.js +18 -11
  140. package/optimize/lib/components/skeleton/skeleton_title.js +1 -2
  141. package/optimize/lib/components/text/text.js +1 -2
  142. package/optimize/lib/components/text/text_align.js +1 -2
  143. package/optimize/lib/components/text/text_align.styles.js +5 -7
  144. package/optimize/lib/components/text/text_color.js +1 -2
  145. package/optimize/lib/components/title/title.js +1 -2
  146. package/optimize/lib/components/title/title.styles.js +2 -10
  147. package/optimize/lib/global_styling/mixins/_typography.js +25 -19
  148. package/optimize/lib/services/theme/index.js +6 -0
  149. package/optimize/lib/services/theme/style_memoization.js +49 -16
  150. package/optimize/lib/themes/amsterdam/global_styling/mixins/button.js +49 -26
  151. package/package.json +3 -3
  152. package/src/components/datagrid/_data_grid_data_row.scss +4 -0
  153. package/test-env/components/breadcrumbs/breadcrumb.js +9 -6
  154. package/test-env/components/breadcrumbs/breadcrumbs.js +4 -2
  155. package/test-env/components/button/button_display/_button_display.js +1 -2
  156. package/test-env/components/button/button_empty/button_empty.js +1 -2
  157. package/test-env/components/button/button_group/button_group.js +2 -4
  158. package/test-env/components/button/button_group/button_group.styles.js +10 -13
  159. package/test-env/components/button/button_icon/button_icon.js +3 -4
  160. package/test-env/components/button/button_icon/button_icon.styles.js +8 -2
  161. package/test-env/components/datagrid/body/cell/data_grid_cell.js +7 -3
  162. package/test-env/components/datagrid/body/cell/data_grid_cell_wrapper.js +4 -2
  163. package/test-env/components/datagrid/body/data_grid_body.js +1 -0
  164. package/test-env/components/datagrid/body/data_grid_body_custom.js +3 -0
  165. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +3 -0
  166. package/test-env/components/datagrid/body/data_grid_row_manager.js +1 -1
  167. package/test-env/components/datagrid/data_grid.js +3 -1
  168. package/test-env/components/facet/facet_button.styles.js +1 -2
  169. package/test-env/components/header/header_breadcrumbs/header_breadcrumbs.js +4 -2
  170. package/test-env/components/icon/icon.styles.js +5 -8
  171. package/test-env/components/link/external_link_icon.js +10 -7
  172. package/test-env/components/link/link.js +1 -2
  173. package/test-env/components/link/link.styles.js +6 -14
  174. package/test-env/components/page/page_header/page_header_content.js +4 -2
  175. package/test-env/components/progress/progress.styles.js +1 -1
  176. package/test-env/components/skeleton/skeleton_circle.js +1 -2
  177. package/test-env/components/skeleton/skeleton_rectangle.js +1 -2
  178. package/test-env/components/skeleton/skeleton_text.js +18 -11
  179. package/test-env/components/skeleton/skeleton_title.js +1 -2
  180. package/test-env/components/text/text.js +1 -2
  181. package/test-env/components/text/text_align.js +1 -2
  182. package/test-env/components/text/text_align.styles.js +5 -7
  183. package/test-env/components/text/text_color.js +1 -2
  184. package/test-env/components/title/title.js +1 -2
  185. package/test-env/components/title/title.styles.js +2 -10
  186. package/test-env/global_styling/mixins/_typography.js +25 -19
  187. package/test-env/services/theme/index.js +6 -0
  188. package/test-env/services/theme/style_memoization.js +49 -16
  189. package/test-env/themes/amsterdam/global_styling/mixins/button.js +49 -26
@@ -67,7 +67,7 @@ var euiProgressStyles = function euiProgressStyles(_ref3, isNative) {
67
67
  // https://css-tricks.com/html5-progress-element/
68
68
  // Good resource if you need to work in here. There's some gotchas with
69
69
  // dealing with cross-browser progress bars.
70
- native: /*#__PURE__*/(0, _react.css)("display:block;", (0, _global_styling.logicalCSS)('width', '100%'), " appearance:none;border:none;border-radius:", euiTheme.size.s, ";&::-webkit-progress-bar{background-color:", euiTheme.colors.lightShade, ";}", crossBrowserProgressValue('transition: width ${euiTheme.animation.normal} linear;'), ";;label:native;"),
70
+ native: /*#__PURE__*/(0, _react.css)("display:block;", (0, _global_styling.logicalCSS)('width', '100%'), " appearance:none;border:none;border-radius:", euiTheme.size.s, ";&::-webkit-progress-bar{background-color:", euiTheme.colors.lightShade, ";}", _global_styling.euiCanAnimate, "{/* Note: FF/Mozilla doesn't actually support animating the native progress bar\n @see https://bugzilla.mozilla.org/show_bug.cgi?id=662351 */", crossBrowserProgressValue("transition: width ".concat(euiTheme.animation.normal, " linear")), ";};label:native;"),
71
71
  // An indeterminate bar has an unreliable end time. Because of a Firefox animation issue,
72
72
  // we apply this style to a <div> instead of a <progress> element.
73
73
  // See https://css-tricks.com/html5-progress-element/ for more info.
@@ -36,8 +36,7 @@ var EuiSkeletonCircle = function EuiSkeletonCircle(_ref) {
36
36
  ariaWrapperProps = _ref.ariaWrapperProps,
37
37
  children = _ref.children,
38
38
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
39
- var euiTheme = (0, _services.useEuiTheme)();
40
- var styles = (0, _skeleton_circle.euiSkeletonCircleStyles)(euiTheme);
39
+ var styles = (0, _services.useEuiMemoizedStyles)(_skeleton_circle.euiSkeletonCircleStyles);
41
40
  var cssStyles = [styles.euiSkeletonCircle, styles[size]];
42
41
  return (0, _react2.jsx)(_skeleton_loading.EuiSkeletonLoading, (0, _extends2.default)({
43
42
  isLoading: isLoading,
@@ -45,8 +45,7 @@ var EuiSkeletonRectangle = function EuiSkeletonRectangle(_ref) {
45
45
  ariaWrapperProps = _ref.ariaWrapperProps,
46
46
  children = _ref.children,
47
47
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
48
- var euiTheme = (0, _services.useEuiTheme)();
49
- var styles = (0, _skeleton_rectangle.euiSkeletonRectangleStyles)(euiTheme);
48
+ var styles = (0, _services.useEuiMemoizedStyles)(_skeleton_rectangle.euiSkeletonRectangleStyles);
50
49
  var cssStyles = [styles.euiSkeletonRectangle, styles[borderRadius]];
51
50
  return (0, _react2.jsx)(_skeleton_loading.EuiSkeletonLoading, (0, _extends2.default)({
52
51
  isLoading: isLoading,
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.LINES = exports.EuiSkeletonText = void 0;
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
- var _react = _interopRequireDefault(require("react"));
11
+ var _react = _interopRequireWildcard(require("react"));
11
12
  var _classnames = _interopRequireDefault(require("classnames"));
12
13
  var _services = require("../../services");
13
14
  var _skeleton_loading = require("./skeleton_loading");
@@ -21,6 +22,8 @@ var _excluded = ["isLoading", "lines", "size", "className", "contentAriaLabel",
21
22
  * in compliance with, at your election, the Elastic License 2.0 or the Server
22
23
  * Side Public License, v 1.
23
24
  */
25
+ 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); }
26
+ 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; }
24
27
  var LINES = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
25
28
  exports.LINES = LINES;
26
29
  var EuiSkeletonText = function EuiSkeletonText(_ref) {
@@ -38,16 +41,20 @@ var EuiSkeletonText = function EuiSkeletonText(_ref) {
38
41
  ariaWrapperProps = _ref.ariaWrapperProps,
39
42
  children = _ref.children,
40
43
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
41
- var euiTheme = (0, _services.useEuiTheme)();
42
- var styles = (0, _skeleton_text.euiSkeletonTextStyles)(euiTheme);
43
- var lineCssStyles = [styles.euiSkeletonText, styles[size]];
44
- var lineElements = [];
45
- for (var i = 0; i < lines; i++) {
46
- lineElements.push((0, _react2.jsx)("span", {
47
- key: i,
48
- css: lineCssStyles
49
- }));
50
- }
44
+ var styles = (0, _services.useEuiMemoizedStyles)(_skeleton_text.euiSkeletonTextStyles);
45
+ var cssStyles = (0, _react.useMemo)(function () {
46
+ return [styles.euiSkeletonText, styles[size]];
47
+ }, [styles, size]);
48
+ var lineElements = (0, _react.useMemo)(function () {
49
+ var lineElements = [];
50
+ for (var i = 0; i < lines; i++) {
51
+ lineElements.push((0, _react2.jsx)("span", {
52
+ key: i,
53
+ css: cssStyles
54
+ }));
55
+ }
56
+ return lineElements;
57
+ }, [lines, cssStyles]);
51
58
  return (0, _react2.jsx)(_skeleton_loading.EuiSkeletonLoading, (0, _extends2.default)({
52
59
  isLoading: isLoading,
53
60
  loadingContent: (0, _react2.jsx)("span", (0, _extends2.default)({
@@ -34,8 +34,7 @@ var EuiSkeletonTitle = function EuiSkeletonTitle(_ref) {
34
34
  ariaWrapperProps = _ref.ariaWrapperProps,
35
35
  children = _ref.children,
36
36
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
37
- var euiTheme = (0, _services.useEuiTheme)();
38
- var styles = (0, _skeleton_title.euiSkeletonTitleStyles)(euiTheme);
37
+ var styles = (0, _services.useEuiMemoizedStyles)(_skeleton_title.euiSkeletonTitleStyles);
39
38
  var cssStyles = [styles.euiSkeletonTitle, styles[size]];
40
39
  return (0, _react2.jsx)(_skeleton_loading.EuiSkeletonLoading, (0, _extends2.default)({
41
40
  isLoading: isLoading,
@@ -34,8 +34,7 @@ var EuiText = function EuiText(_ref) {
34
34
  children = _ref.children,
35
35
  className = _ref.className,
36
36
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
37
- var euiTheme = (0, _services.useEuiTheme)();
38
- var styles = (0, _text.euiTextStyles)(euiTheme);
37
+ var styles = (0, _services.useEuiMemoizedStyles)(_text.euiTextStyles);
39
38
  var cssStyles = [styles.euiText, !grow ? styles.constrainedWidth : undefined, styles[size]];
40
39
  var classes = (0, _classnames.default)('euiText', className);
41
40
  var text = (0, _react2.jsx)("div", (0, _extends2.default)({
@@ -33,8 +33,7 @@ var EuiTextAlign = function EuiTextAlign(_ref) {
33
33
  _ref$cloneElement = _ref.cloneElement,
34
34
  cloneElement = _ref$cloneElement === void 0 ? false : _ref$cloneElement,
35
35
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
36
- var styles = (0, _text_align.euiTextAlignStyles)();
37
- var cssStyles = [styles.euiTextAlign, styles[textAlign]];
36
+ var cssStyles = [_text_align.euiTextAlignStyles.euiTextAlign, _text_align.euiTextAlignStyles[textAlign]];
38
37
  var props = _objectSpread({
39
38
  css: cssStyles
40
39
  }, rest);
@@ -14,12 +14,10 @@ var _global_styling = require("../../global_styling");
14
14
  * Side Public License, v 1.
15
15
  */
16
16
 
17
- var euiTextAlignStyles = function euiTextAlignStyles() {
18
- return {
19
- euiTextAlign: /*#__PURE__*/(0, _react.css)(";label:euiTextAlign;"),
20
- left: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalTextAlignCSS)('left'), ";;label:left;"),
21
- right: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalTextAlignCSS)('right'), ";;label:right;"),
22
- center: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalTextAlignCSS)('center'), ";;label:center;")
23
- };
17
+ var euiTextAlignStyles = {
18
+ euiTextAlign: /*#__PURE__*/(0, _react.css)(";label:euiTextAlign;"),
19
+ left: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalTextAlignCSS)('left'), ";;label:left;"),
20
+ right: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalTextAlignCSS)('right'), ";;label:right;"),
21
+ center: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalTextAlignCSS)('center'), ";;label:center;")
24
22
  };
25
23
  exports.euiTextAlignStyles = euiTextAlignStyles;
@@ -37,8 +37,7 @@ var EuiTextColor = function EuiTextColor(_ref) {
37
37
  style = _ref.style,
38
38
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
39
39
  var isNamedColor = COLORS.includes(color);
40
- var euiTheme = (0, _services.useEuiTheme)();
41
- var styles = (0, _text_color.euiTextColorStyles)(euiTheme);
40
+ var styles = (0, _services.useEuiMemoizedStyles)(_text_color.euiTextColorStyles);
42
41
  var cssStyles = [styles.euiTextColor, isNamedColor ? styles[color] : styles.customColor];
43
42
 
44
43
  // We're checking if is a custom color.
@@ -31,8 +31,7 @@ var EuiTitle = function EuiTitle(_ref) {
31
31
  className = _ref.className,
32
32
  textTransform = _ref.textTransform,
33
33
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
34
- var euiTheme = (0, _services.useEuiTheme)();
35
- var styles = (0, _title.euiTitleStyles)(euiTheme);
34
+ var styles = (0, _services.useEuiMemoizedStyles)(_title.euiTitleStyles);
36
35
  var cssStyles = [styles.euiTitle, textTransform ? styles[textTransform] : undefined, styles[size]];
37
36
  var classes = (0, _classnames.default)('euiTitle', className, children.props.className);
38
37
  var props = _objectSpread({
@@ -4,10 +4,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.useEuiTitle = exports.euiTitleStyles = exports.euiTitle = void 0;
7
+ exports.euiTitleStyles = exports.euiTitle = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _react = require("@emotion/react");
10
- var _services = require("../../services");
11
10
  var _global_styling = require("../../global_styling");
12
11
  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; }
13
12
  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) { (0, _defineProperty2.default)(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; }
@@ -40,17 +39,10 @@ var euiTitle = function euiTitle(euiThemeContext) {
40
39
  });
41
40
  };
42
41
 
43
- // Hook version
44
- exports.euiTitle = euiTitle;
45
- var useEuiTitle = function useEuiTitle(scale, options) {
46
- var euiTheme = (0, _services.useEuiTheme)();
47
- return euiTitle(euiTheme, scale, options);
48
- };
49
-
50
42
  /**
51
43
  * Styles
52
44
  */
53
- exports.useEuiTitle = useEuiTitle;
45
+ exports.euiTitle = euiTitle;
54
46
  var _ref = process.env.NODE_ENV === "production" ? {
55
47
  name: "1x2qsb1-uppercase",
56
48
  styles: "text-transform:uppercase;label:uppercase;"
@@ -1,20 +1,23 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.useEuiNumberFormat = exports.useEuiFontSize = exports.euiTextTruncate = exports.euiTextBreakWord = exports.euiNumberFormat = exports.euiFontSize = void 0;
7
+ exports.useEuiFontSize = exports.euiTextTruncate = exports.euiTextBreakWord = exports.euiNumberFormat = exports.euiFontSize = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
9
  var _typography = require("../functions/typography");
8
- var _hooks = require("../../services/theme/hooks");
10
+ var _theme = require("../../services/theme");
11
+ var _typography2 = require("../variables/typography");
9
12
  var _functions = require("../functions");
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
-
13
+ 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; }
14
+ 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) { (0, _defineProperty2.default)(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; } /*
15
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
16
+ * or more contributor license agreements. Licensed under the Elastic License
17
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
18
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
19
+ * Side Public License, v 1.
20
+ */
18
21
  /**
19
22
  * Returns font-size and line-height
20
23
  */
@@ -27,15 +30,23 @@ var euiFontSize = function euiFontSize(_ref, scale, options) {
27
30
  };
28
31
  exports.euiFontSize = euiFontSize;
29
32
  var useEuiFontSize = function useEuiFontSize(scale, options) {
30
- var euiTheme = (0, _hooks.useEuiTheme)();
31
- return euiFontSize(euiTheme, scale, options);
33
+ var euiTheme = (0, _theme.useEuiTheme)();
34
+ var memoizedFontSizes = (0, _theme.useEuiMemoizedStyles)(euiFontSizes);
35
+ return !options ? memoizedFontSizes[scale] : euiFontSize(euiTheme, scale, options);
36
+ };
37
+ // Memomize a basic set of font sizes. We unfortunately can't
38
+ // memoize all possible options, there's too many permutations
39
+ exports.useEuiFontSize = useEuiFontSize;
40
+ var euiFontSizes = function euiFontSizes(euiThemeContext) {
41
+ return _typography2.EuiThemeFontScales.reduce(function (map, scale) {
42
+ return _objectSpread(_objectSpread({}, map), {}, (0, _defineProperty2.default)({}, scale, euiFontSize(euiThemeContext, scale)));
43
+ }, {});
32
44
  };
33
45
 
34
46
  /**
35
47
  * Force text to wrap on natural word breaks (e.g. spaces & hyphens)
36
48
  * https://css-tricks.com/snippets/css/prevent-long-urls-from-breaking-out-of-container/
37
49
  */
38
- exports.useEuiFontSize = useEuiFontSize;
39
50
  var euiTextBreakWord = function euiTextBreakWord() {
40
51
  return "\n overflow-wrap: break-word !important; // makes sure the long string will wrap and not bust out of the container\n word-break: break-word;\n";
41
52
  };
@@ -58,9 +69,4 @@ var euiNumberFormat = function euiNumberFormat(_ref2) {
58
69
  var euiTheme = _ref2.euiTheme;
59
70
  return "\n font-feature-settings: ".concat(euiTheme.font.featureSettings, ", 'tnum' 1;\n");
60
71
  };
61
- exports.euiNumberFormat = euiNumberFormat;
62
- var useEuiNumberFormat = function useEuiNumberFormat() {
63
- var euiTheme = (0, _hooks.useEuiTheme)();
64
- return euiNumberFormat(euiTheme);
65
- };
66
- exports.useEuiNumberFormat = useEuiNumberFormat;
72
+ exports.euiNumberFormat = euiNumberFormat;
@@ -135,6 +135,12 @@ Object.defineProperty(exports, "useEuiThemeCSSVariables", {
135
135
  return _hooks.useEuiThemeCSSVariables;
136
136
  }
137
137
  });
138
+ Object.defineProperty(exports, "withEuiStylesMemoizer", {
139
+ enumerable: true,
140
+ get: function get() {
141
+ return _style_memoization.withEuiStylesMemoizer;
142
+ }
143
+ });
138
144
  Object.defineProperty(exports, "withEuiTheme", {
139
145
  enumerable: true,
140
146
  get: function get() {
@@ -5,7 +5,8 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.useEuiMemoizedStyles = exports.EuiThemeMemoizedStylesProvider = exports.EuiThemeMemoizedStylesContext = void 0;
8
+ exports.withEuiStylesMemoizer = exports.useEuiMemoizedStyles = exports.EuiThemeMemoizedStylesProvider = exports.EuiThemeMemoizedStylesContext = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var _hooks = require("../hooks");
@@ -47,27 +48,59 @@ var EuiThemeMemoizedStylesProvider = function EuiThemeMemoizedStylesProvider(_re
47
48
  }, children);
48
49
  };
49
50
 
51
+ /**
52
+ * Internal util primarily responsible for getting the memoized styles (if they exist)
53
+ * and if not, generating and setting the styles. DRYed out to facilitate usage
54
+ * between both hook/function components and HOC/class components
55
+ */
56
+ exports.EuiThemeMemoizedStylesProvider = EuiThemeMemoizedStylesProvider;
57
+ var getMemoizedStyles = function getMemoizedStyles(stylesGenerator, stylesMap, euiThemeContext) {
58
+ if (!stylesGenerator.name) {
59
+ throw new Error('Styles are memoized per function. Your style functions must be statically defined in order to not create a new map entry every rerender.');
60
+ }
61
+ var existingStyles = stylesMap.get(stylesGenerator);
62
+ if (existingStyles) {
63
+ return existingStyles;
64
+ } else {
65
+ var generatedStyles = stylesGenerator(euiThemeContext);
66
+ stylesMap.set(stylesGenerator, generatedStyles);
67
+ return generatedStyles;
68
+ }
69
+ };
70
+
50
71
  /**
51
72
  * Hook that memoizes the returned values of components style fns/generators
52
73
  * per-theme
53
74
  */
54
- exports.EuiThemeMemoizedStylesProvider = EuiThemeMemoizedStylesProvider;
55
- var useEuiMemoizedStyles = function useEuiMemoizedStyles(styleGenerator) {
75
+ var useEuiMemoizedStyles = function useEuiMemoizedStyles(stylesGenerator) {
56
76
  var memoizedStyles = (0, _react.useContext)(EuiThemeMemoizedStylesContext);
57
77
  var euiThemeContext = (0, _hooks2.useEuiTheme)();
58
78
  var memoizedComponentStyles = (0, _react.useMemo)(function () {
59
- if (!styleGenerator.name) {
60
- throw new Error('Styles are memoized per function. Your style functions must be statically defined in order to not create a new map entry every rerender.');
61
- }
62
- var existingStyles = memoizedStyles.get(styleGenerator);
63
- if (existingStyles) {
64
- return existingStyles;
65
- } else {
66
- var generatedStyles = styleGenerator(euiThemeContext);
67
- memoizedStyles.set(styleGenerator, generatedStyles);
68
- return generatedStyles;
69
- }
70
- }, [styleGenerator, memoizedStyles, euiThemeContext]);
79
+ return getMemoizedStyles(stylesGenerator, memoizedStyles, euiThemeContext);
80
+ }, [stylesGenerator, memoizedStyles, euiThemeContext]);
71
81
  return memoizedComponentStyles;
72
82
  };
73
- exports.useEuiMemoizedStyles = useEuiMemoizedStyles;
83
+
84
+ /**
85
+ * HOC for class components
86
+ * Syntax is mostly copied from withEuiTheme HOC
87
+ */
88
+ exports.useEuiMemoizedStyles = useEuiMemoizedStyles;
89
+ var withEuiStylesMemoizer = function withEuiStylesMemoizer(Component) {
90
+ var componentName = Component.displayName || Component.name || 'ComponentWithStylesMemoizer';
91
+ var Render = function Render(props, ref) {
92
+ var memoizedStyles = (0, _react.useContext)(EuiThemeMemoizedStylesContext);
93
+ var euiThemeContext = (0, _hooks2.useEuiTheme)();
94
+ var stylesMemoizer = (0, _react.useCallback)(function (stylesGenerator) {
95
+ return getMemoizedStyles(stylesGenerator, memoizedStyles, euiThemeContext);
96
+ }, [memoizedStyles, euiThemeContext]);
97
+ return (0, _react2.jsx)(Component, (0, _extends2.default)({
98
+ stylesMemoizer: stylesMemoizer,
99
+ ref: ref
100
+ }, props));
101
+ };
102
+ var WithEuiStylesMemoizer = /*#__PURE__*/(0, _react.forwardRef)(Render);
103
+ WithEuiStylesMemoizer.displayName = componentName;
104
+ return WithEuiStylesMemoizer;
105
+ };
106
+ exports.withEuiStylesMemoizer = withEuiStylesMemoizer;
@@ -4,11 +4,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.useEuiButtonFocusCSS = exports.useEuiButtonColorCSS = exports.euiButtonSizeMap = exports.euiButtonFillColor = exports.euiButtonEmptyColor = exports.euiButtonColor = exports.BUTTON_COLORS = void 0;
7
+ exports.useEuiButtonFocusCSS = exports.useEuiButtonColorCSS = exports.euiButtonSizeMap = exports.euiButtonFillColor = exports.euiButtonEmptyColor = exports.euiButtonColor = exports.BUTTON_DISPLAYS = exports.BUTTON_COLORS = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
8
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
10
  var _react = require("@emotion/react");
10
11
  var _global_styling = require("../../../../global_styling");
11
12
  var _services = require("../../../../services");
13
+ var _templateObject;
12
14
  /*
13
15
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
14
16
  * or more contributor license agreements. Licensed under the Elastic License
@@ -16,9 +18,10 @@ var _services = require("../../../../services");
16
18
  * in compliance with, at your election, the Elastic License 2.0 or the Server
17
19
  * Side Public License, v 1.
18
20
  */
19
-
20
21
  var BUTTON_COLORS = ['text', 'accent', 'primary', 'success', 'warning', 'danger'];
21
22
  exports.BUTTON_COLORS = BUTTON_COLORS;
23
+ var BUTTON_DISPLAYS = ['base', 'fill', 'empty'];
24
+ exports.BUTTON_DISPLAYS = BUTTON_DISPLAYS;
22
25
  /**
23
26
  * Creates the `base` version of button styles with proper text contrast.
24
27
  * @param euiThemeContext
@@ -139,43 +142,63 @@ var euiButtonEmptyColor = function euiButtonEmptyColor(euiThemeContext, color) {
139
142
  exports.euiButtonEmptyColor = euiButtonEmptyColor;
140
143
  var useEuiButtonColorCSS = function useEuiButtonColorCSS() {
141
144
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
142
- var euiThemeContext = (0, _services.useEuiTheme)();
143
- function stylesByDisplay(color) {
144
- return {
145
- base: /*#__PURE__*/(0, _react.css)(euiButtonColor(euiThemeContext, color), ";;label:base;"),
146
- fill: /*#__PURE__*/(0, _react.css)(euiButtonFillColor(euiThemeContext, color), "outline-color:", euiThemeContext.colorMode === 'DARK' && color === 'text' ? 'currentColor' : euiThemeContext.euiTheme.colors.fullShade, ";;label:fill;"),
147
- empty: /*#__PURE__*/(0, _react.css)("color:", euiButtonEmptyColor(euiThemeContext, color).color, ";&:focus,&:active{background-color:", euiButtonEmptyColor(euiThemeContext, color).backgroundColor, ";};label:empty;")
148
- };
149
- }
150
- return {
151
- text: /*#__PURE__*/(0, _react.css)(stylesByDisplay('text')[options.display || 'base'], ";label:text;"),
152
- accent: /*#__PURE__*/(0, _react.css)(stylesByDisplay('accent')[options.display || 'base'], ";label:accent;"),
153
- primary: /*#__PURE__*/(0, _react.css)(stylesByDisplay('primary')[options.display || 'base'], ";label:primary;"),
154
- success: /*#__PURE__*/(0, _react.css)(stylesByDisplay('success')[options.display || 'base'], ";label:success;"),
155
- warning: /*#__PURE__*/(0, _react.css)(stylesByDisplay('warning')[options.display || 'base'], ";label:warning;"),
156
- danger: /*#__PURE__*/(0, _react.css)(stylesByDisplay('danger')[options.display || 'base'], ";label:danger;"),
157
- disabled: /*#__PURE__*/(0, _react.css)(stylesByDisplay('disabled')[options.display || 'base'], ";label:disabled;")
158
- };
145
+ var _options$display = options.display,
146
+ display = _options$display === void 0 ? 'base' : _options$display;
147
+ var colorsDisplaysMap = (0, _services.useEuiMemoizedStyles)(euiButtonDisplaysColors);
148
+ return colorsDisplaysMap[display];
149
+ };
150
+ exports.useEuiButtonColorCSS = useEuiButtonColorCSS;
151
+ var euiButtonDisplaysColors = function euiButtonDisplaysColors(euiThemeContext) {
152
+ var COLORS = [].concat(BUTTON_COLORS, ['disabled']);
153
+ var displaysColorsMap = {};
154
+ BUTTON_DISPLAYS.forEach(function (display) {
155
+ displaysColorsMap[display] = {};
156
+ COLORS.forEach(function (color) {
157
+ switch (display) {
158
+ case 'base':
159
+ displaysColorsMap[display][color] = /*#__PURE__*/(0, _react.css)(euiButtonColor(euiThemeContext, color), ";;label:displaysColorsMap-display-color;");
160
+ break;
161
+ case 'fill':
162
+ displaysColorsMap[display][color] = /*#__PURE__*/(0, _react.css)(euiButtonFillColor(euiThemeContext, color), "outline-color:", euiThemeContext.colorMode === 'DARK' && color === 'text' ? 'currentColor' : euiThemeContext.euiTheme.colors.fullShade, ";;label:displaysColorsMap-display-color;");
163
+ break;
164
+ case 'empty':
165
+ displaysColorsMap[display][color] = /*#__PURE__*/(0, _react.css)("color:", euiButtonEmptyColor(euiThemeContext, color).color, ";&:focus,&:active{background-color:", euiButtonEmptyColor(euiThemeContext, color).backgroundColor, ";};label:displaysColorsMap-display-color;");
166
+ break;
167
+ }
168
+
169
+ // Tweak auto-generated Emotion label/className output
170
+ var emotionOutput = displaysColorsMap[display][color];
171
+ emotionOutput.styles = emotionOutput.styles.replace('label:displaysColorsMap-display-color;', "label:".concat(display, "-").concat(color, ";"));
172
+ });
173
+ });
174
+ return displaysColorsMap;
159
175
  };
160
176
 
161
177
  /**
162
178
  * Creates the translate animation when button is in focus.
163
179
  * @returns string
164
180
  */
165
- exports.useEuiButtonColorCSS = useEuiButtonColorCSS;
166
181
  var useEuiButtonFocusCSS = function useEuiButtonFocusCSS() {
167
- var _useEuiTheme = (0, _services.useEuiTheme)(),
168
- euiTheme = _useEuiTheme.euiTheme;
169
- return "\n ".concat(_global_styling.euiCanAnimate, " {\n transition: transform ").concat(euiTheme.animation.normal, " ease-in-out,\n background-color ").concat(euiTheme.animation.normal, " ease-in-out;\n\n &:hover:not(:disabled) {\n transform: translateY(-1px);\n }\n\n &:focus {\n animation: euiButtonActive ").concat(euiTheme.animation.normal, "\n ").concat(euiTheme.animation.bounce, ";\n }\n\n &:active:not(:disabled) {\n transform: translateY(1px);\n }\n }\n ");
182
+ return (0, _services.useEuiMemoizedStyles)(euiButtonFocusCSS);
183
+ };
184
+ exports.useEuiButtonFocusCSS = useEuiButtonFocusCSS;
185
+ var euiButtonFocusAnimation = (0, _react.keyframes)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n 50% {\n transform: translateY(1px);\n }\n"])));
186
+ var euiButtonFocusCSS = function euiButtonFocusCSS(_ref) {
187
+ var euiTheme = _ref.euiTheme;
188
+ var focusCSS = /*#__PURE__*/(0, _react.css)(_global_styling.euiCanAnimate, "{transition:transform ", euiTheme.animation.normal, " ease-in-out,background-color ", euiTheme.animation.normal, " ease-in-out;&:hover:not(:disabled){transform:translateY(-1px);}&:focus{animation:", euiButtonFocusAnimation, " ", euiTheme.animation.normal, " ", euiTheme.animation.bounce, ";}&:active:not(:disabled){transform:translateY(1px);}};label:focusCSS;");
189
+ // Remove the auto-generated label.
190
+ // We could typically avoid a label by using a plain string `` instead of css``,
191
+ // but we need css`` for keyframes`` to work for the focus animation
192
+ focusCSS.styles = focusCSS.styles.replace('label:focusCSS;', '');
193
+ return focusCSS;
170
194
  };
171
195
 
172
196
  /**
173
197
  * Map of `size` props to various sizings/scales
174
198
  * that should remain consistent across all buttons
175
199
  */
176
- exports.useEuiButtonFocusCSS = useEuiButtonFocusCSS;
177
- var euiButtonSizeMap = function euiButtonSizeMap(_ref) {
178
- var euiTheme = _ref.euiTheme;
200
+ var euiButtonSizeMap = function euiButtonSizeMap(_ref2) {
201
+ var euiTheme = _ref2.euiTheme;
179
202
  return {
180
203
  xs: {
181
204
  height: euiTheme.size.l,
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@elastic/eui",
3
3
  "description": "Elastic UI Component Library",
4
- "version": "93.2.0",
4
+ "version": "93.3.0",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "main": "lib",
7
7
  "module": "es",
8
8
  "types": "eui.d.ts",
9
- "docker_image": "20.11.0",
9
+ "docker_image": "20.11.1",
10
10
  "engines": {
11
11
  "node": "16.x || 18.x || >=20.x"
12
12
  },
@@ -109,7 +109,7 @@
109
109
  "@cypress/react": "^7.0.3",
110
110
  "@cypress/react18": "^2.0.0",
111
111
  "@cypress/webpack-dev-server": "^1.7.0",
112
- "@elastic/charts": "^63.1.0",
112
+ "@elastic/charts": "^64.0.1",
113
113
  "@elastic/datemath": "^5.0.3",
114
114
  "@emotion/babel-preset-css-prop": "^11.11.0",
115
115
  "@emotion/cache": "^11.11.0",
@@ -119,6 +119,10 @@
119
119
  height: auto;
120
120
  display: flex;
121
121
  align-items: center;
122
+
123
+ &.euiDataGridRowCell__content--defaultHeight {
124
+ height: 100%;
125
+ }
122
126
  }
123
127
 
124
128
  // Positioning for cell actions & the cell expansion popover
@@ -110,11 +110,12 @@ var EuiBreadcrumbContent = function EuiBreadcrumbContent(_ref2) {
110
110
  css: cssStyles
111
111
  };
112
112
  if (isPopoverBreadcrumb) {
113
+ var _closePopover = function _closePopover() {
114
+ return setIsPopoverOpen(false);
115
+ };
113
116
  return (0, _react2.jsx)(_popover.EuiPopover, (0, _extends2.default)({}, popoverProps, {
114
117
  isOpen: isPopoverOpen,
115
- closePopover: function closePopover() {
116
- return setIsPopoverOpen(false);
117
- },
118
+ closePopover: _closePopover,
118
119
  css: !isLastBreadcrumb && styles.euiBreadcrumb__popoverWrapper,
119
120
  button: (0, _react2.jsx)(_link.EuiLink, (0, _extends2.default)({}, baseProps, {
120
121
  color: linkColor,
@@ -131,7 +132,7 @@ var EuiBreadcrumbContent = function EuiBreadcrumbContent(_ref2) {
131
132
  size: "s",
132
133
  "aria-label": " - ".concat(popoverAriaLabel)
133
134
  }))
134
- }), popoverContent);
135
+ }), typeof popoverContent === 'function' ? popoverContent(_closePopover) : popoverContent);
135
136
  } else if (isInteractiveBreadcrumb) {
136
137
  return (0, _react2.jsx)(_link.EuiLink, (0, _extends2.default)({}, baseProps, styleProps, {
137
138
  color: linkColor,
@@ -173,12 +174,14 @@ EuiBreadcrumbContent.propTypes = {
173
174
  */
174
175
  "aria-current": _propTypes.default.any,
175
176
  /**
176
- * Creates a breadcrumb that toggles a popover dialog
177
+ * Creates a breadcrumb that toggles a popover dialog. Takes any rendered node(s),
178
+ * or a render function that will pass callback allowing you to close the
179
+ * breadcrumb popover from within your popover content.
177
180
  *
178
181
  * If passed, both `href` and `onClick` will be ignored - the breadcrumb's
179
182
  * click behavior should only trigger a popover.
180
183
  */
181
- popoverContent: _propTypes.default.node,
184
+ popoverContent: _propTypes.default.oneOfType([_propTypes.default.node.isRequired, _propTypes.default.func.isRequired]),
182
185
  /**
183
186
  * Allows customizing the popover if necessary. Accepts any props that
184
187
  * [EuiPopover](/#/layout/popover) accepts, except for props that control state.
@@ -149,12 +149,14 @@ EuiBreadcrumbs.propTypes = {
149
149
  */
150
150
  "aria-current": _propTypes.default.any,
151
151
  /**
152
- * Creates a breadcrumb that toggles a popover dialog
152
+ * Creates a breadcrumb that toggles a popover dialog. Takes any rendered node(s),
153
+ * or a render function that will pass callback allowing you to close the
154
+ * breadcrumb popover from within your popover content.
153
155
  *
154
156
  * If passed, both `href` and `onClick` will be ignored - the breadcrumb's
155
157
  * click behavior should only trigger a popover.
156
158
  */
157
- popoverContent: _propTypes.default.node,
159
+ popoverContent: _propTypes.default.oneOfType([_propTypes.default.node.isRequired, _propTypes.default.func.isRequired]),
158
160
  /**
159
161
  * Allows customizing the popover if necessary. Accepts any props that
160
162
  * [EuiPopover](/#/layout/popover) accepts, except for props that control state.
@@ -79,8 +79,7 @@ var EuiButtonDisplay = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref)
79
79
  isDisabled: isDisabled || disabled,
80
80
  isLoading: isLoading
81
81
  });
82
- var theme = (0, _services.useEuiTheme)();
83
- var styles = (0, _button_display.euiButtonDisplayStyles)(theme);
82
+ var styles = (0, _services.useEuiMemoizedStyles)(_button_display.euiButtonDisplayStyles);
84
83
  var cssStyles = [styles.euiButtonDisplay, styles[size], fullWidth && styles.fullWidth, minWidth == null && styles.defaultMinWidth, buttonIsDisabled && styles.isDisabled];
85
84
  var innerNode = (0, _react2.jsx)(_button_display_content.EuiButtonDisplayContent, (0, _extends2.default)({
86
85
  isLoading: isLoading,
@@ -70,8 +70,7 @@ var EuiButtonEmpty = function EuiButtonEmpty(_ref) {
70
70
  var buttonColorStyles = (0, _button.useEuiButtonColorCSS)({
71
71
  display: 'empty'
72
72
  });
73
- var euiTheme = (0, _services.useEuiTheme)();
74
- var styles = (0, _button_empty.euiButtonEmptyStyles)(euiTheme);
73
+ var styles = (0, _services.useEuiMemoizedStyles)(_button_empty.euiButtonEmptyStyles);
75
74
  var cssStyles = [styles.euiButtonEmpty, styles[size], buttonColorStyles[isDisabled ? 'disabled' : color], flush && styles.flush, flush && styles[flush], isDisabled && styles.isDisabled];
76
75
  var classes = (0, _classnames.default)('euiButtonEmpty', className);
77
76
  var contentClassNames = (0, _classnames.default)('euiButtonEmpty__content', contentProps === null || contentProps === void 0 ? void 0 : contentProps.className);