@elastic/eui 102.2.0 → 102.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 (162) hide show
  1. package/dist/eui_theme_borealis_dark.json +1 -1
  2. package/es/components/badge/color_utils.js +1 -3
  3. package/es/components/badge/notification_badge/badge_notification.styles.js +6 -1
  4. package/es/components/basic_table/basic_table.js +4 -1
  5. package/es/components/basic_table/in_memory_table.js +4 -1
  6. package/es/components/breadcrumbs/_breadcrumb_content.styles.js +6 -3
  7. package/es/components/button/button_display/_button_display.js +1 -1
  8. package/es/components/button/button_display/_button_display.styles.js +11 -2
  9. package/es/components/button/button_display/_button_display_content.styles.js +6 -3
  10. package/es/components/button/button_empty/button_empty.styles.js +9 -12
  11. package/es/components/button/button_group/button_group.styles.js +5 -3
  12. package/es/components/button/button_group/button_group_button.js +19 -9
  13. package/es/components/button/button_group/button_group_button.styles.js +43 -19
  14. package/es/components/button/button_icon/button_icon.js +4 -2
  15. package/es/components/collapsible_nav/collapsible_nav.js +1 -0
  16. package/es/components/datagrid/controls/data_grid_toolbar_control.js +11 -1
  17. package/es/components/datagrid/utils/focus.js +2 -2
  18. package/es/components/filter_group/filter_button.js +88 -23
  19. package/es/components/filter_group/filter_button.styles.js +51 -15
  20. package/es/components/filter_group/filter_group.styles.js +18 -6
  21. package/es/components/markdown_editor/markdown_editor_footer.js +9 -4
  22. package/es/components/search_bar/filters/field_value_selection_filter.js +1 -0
  23. package/es/components/search_bar/filters/field_value_toggle_filter.js +3 -1
  24. package/es/components/search_bar/filters/field_value_toggle_group_filter.js +3 -1
  25. package/es/components/search_bar/filters/is_filter.js +3 -1
  26. package/es/components/search_bar/search_bar.a11y.js +3 -3
  27. package/es/global_styling/mixins/_button.js +95 -28
  28. package/es/services/theme/index.js +2 -1
  29. package/es/services/theme/provider.js +28 -2
  30. package/es/services/theme/theme_variant.js +22 -0
  31. package/es/themes/amsterdam/global_styling/variables/_buttons.js +348 -147
  32. package/es/themes/amsterdam/global_styling/variables/_components.js +229 -224
  33. package/es/themes/amsterdam/theme.js +2 -1
  34. package/es/themes/json/eui_theme_borealis_dark.json +1 -1
  35. package/eui.d.ts +194 -161
  36. package/lib/components/badge/color_utils.js +1 -3
  37. package/lib/components/badge/notification_badge/badge_notification.styles.js +6 -1
  38. package/lib/components/basic_table/basic_table.js +4 -1
  39. package/lib/components/basic_table/in_memory_table.js +4 -1
  40. package/lib/components/breadcrumbs/_breadcrumb_content.styles.js +5 -2
  41. package/lib/components/button/button_display/_button_display.js +1 -1
  42. package/lib/components/button/button_display/_button_display.styles.js +11 -2
  43. package/lib/components/button/button_display/_button_display_content.styles.js +6 -3
  44. package/lib/components/button/button_empty/button_empty.styles.js +10 -11
  45. package/lib/components/button/button_group/button_group.styles.js +5 -3
  46. package/lib/components/button/button_group/button_group_button.js +18 -8
  47. package/lib/components/button/button_group/button_group_button.styles.js +41 -17
  48. package/lib/components/button/button_icon/button_icon.js +3 -1
  49. package/lib/components/collapsible_nav/collapsible_nav.js +1 -0
  50. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +11 -1
  51. package/lib/components/datagrid/utils/focus.js +1 -1
  52. package/lib/components/filter_group/filter_button.js +86 -21
  53. package/lib/components/filter_group/filter_button.styles.js +51 -15
  54. package/lib/components/filter_group/filter_group.styles.js +18 -6
  55. package/lib/components/markdown_editor/markdown_editor_footer.js +8 -3
  56. package/lib/components/search_bar/filters/field_value_selection_filter.js +1 -0
  57. package/lib/components/search_bar/filters/field_value_toggle_filter.js +3 -1
  58. package/lib/components/search_bar/filters/field_value_toggle_group_filter.js +3 -1
  59. package/lib/components/search_bar/filters/is_filter.js +3 -1
  60. package/lib/components/search_bar/search_bar.a11y.js +3 -3
  61. package/lib/global_styling/mixins/_button.js +94 -27
  62. package/lib/services/theme/index.js +42 -1
  63. package/lib/services/theme/provider.js +28 -2
  64. package/lib/services/theme/theme_variant.js +28 -0
  65. package/lib/themes/amsterdam/global_styling/variables/_buttons.js +348 -147
  66. package/lib/themes/amsterdam/global_styling/variables/_components.js +229 -224
  67. package/lib/themes/amsterdam/theme.js +2 -1
  68. package/lib/themes/json/eui_theme_borealis_dark.json +1 -1
  69. package/optimize/es/components/badge/color_utils.js +1 -3
  70. package/optimize/es/components/badge/notification_badge/badge_notification.styles.js +6 -1
  71. package/optimize/es/components/breadcrumbs/_breadcrumb_content.styles.js +6 -3
  72. package/optimize/es/components/button/button_display/_button_display.js +1 -1
  73. package/optimize/es/components/button/button_display/_button_display.styles.js +11 -2
  74. package/optimize/es/components/button/button_display/_button_display_content.styles.js +6 -3
  75. package/optimize/es/components/button/button_empty/button_empty.styles.js +9 -12
  76. package/optimize/es/components/button/button_group/button_group.styles.js +5 -3
  77. package/optimize/es/components/button/button_group/button_group_button.js +12 -8
  78. package/optimize/es/components/button/button_group/button_group_button.styles.js +43 -19
  79. package/optimize/es/components/button/button_icon/button_icon.js +4 -2
  80. package/optimize/es/components/datagrid/controls/data_grid_toolbar_control.js +11 -1
  81. package/optimize/es/components/datagrid/utils/focus.js +2 -2
  82. package/optimize/es/components/filter_group/filter_button.js +78 -21
  83. package/optimize/es/components/filter_group/filter_button.styles.js +51 -15
  84. package/optimize/es/components/filter_group/filter_group.styles.js +18 -6
  85. package/optimize/es/components/markdown_editor/markdown_editor_footer.js +9 -4
  86. package/optimize/es/components/search_bar/filters/field_value_selection_filter.js +1 -0
  87. package/optimize/es/components/search_bar/filters/field_value_toggle_filter.js +3 -1
  88. package/optimize/es/components/search_bar/filters/field_value_toggle_group_filter.js +3 -1
  89. package/optimize/es/components/search_bar/filters/is_filter.js +3 -1
  90. package/optimize/es/components/search_bar/search_bar.a11y.js +3 -3
  91. package/optimize/es/global_styling/mixins/_button.js +95 -28
  92. package/optimize/es/services/theme/index.js +2 -1
  93. package/optimize/es/services/theme/provider.js +28 -2
  94. package/optimize/es/services/theme/theme_variant.js +22 -0
  95. package/optimize/es/themes/amsterdam/global_styling/variables/_buttons.js +348 -147
  96. package/optimize/es/themes/amsterdam/global_styling/variables/_components.js +229 -224
  97. package/optimize/es/themes/amsterdam/theme.js +2 -1
  98. package/optimize/es/themes/json/eui_theme_borealis_dark.json +1 -1
  99. package/optimize/lib/components/badge/color_utils.js +1 -3
  100. package/optimize/lib/components/badge/notification_badge/badge_notification.styles.js +6 -1
  101. package/optimize/lib/components/breadcrumbs/_breadcrumb_content.styles.js +5 -2
  102. package/optimize/lib/components/button/button_display/_button_display.js +1 -1
  103. package/optimize/lib/components/button/button_display/_button_display.styles.js +11 -2
  104. package/optimize/lib/components/button/button_display/_button_display_content.styles.js +6 -3
  105. package/optimize/lib/components/button/button_empty/button_empty.styles.js +10 -11
  106. package/optimize/lib/components/button/button_group/button_group.styles.js +5 -3
  107. package/optimize/lib/components/button/button_group/button_group_button.js +11 -7
  108. package/optimize/lib/components/button/button_group/button_group_button.styles.js +41 -17
  109. package/optimize/lib/components/button/button_icon/button_icon.js +3 -1
  110. package/optimize/lib/components/datagrid/controls/data_grid_toolbar_control.js +11 -1
  111. package/optimize/lib/components/datagrid/utils/focus.js +1 -1
  112. package/optimize/lib/components/filter_group/filter_button.js +76 -19
  113. package/optimize/lib/components/filter_group/filter_button.styles.js +51 -15
  114. package/optimize/lib/components/filter_group/filter_group.styles.js +18 -6
  115. package/optimize/lib/components/markdown_editor/markdown_editor_footer.js +8 -3
  116. package/optimize/lib/components/search_bar/filters/field_value_selection_filter.js +1 -0
  117. package/optimize/lib/components/search_bar/filters/field_value_toggle_filter.js +3 -1
  118. package/optimize/lib/components/search_bar/filters/field_value_toggle_group_filter.js +3 -1
  119. package/optimize/lib/components/search_bar/filters/is_filter.js +3 -1
  120. package/optimize/lib/components/search_bar/search_bar.a11y.js +3 -3
  121. package/optimize/lib/global_styling/mixins/_button.js +94 -27
  122. package/optimize/lib/services/theme/index.js +42 -1
  123. package/optimize/lib/services/theme/provider.js +28 -2
  124. package/optimize/lib/services/theme/theme_variant.js +28 -0
  125. package/optimize/lib/themes/amsterdam/global_styling/variables/_buttons.js +348 -147
  126. package/optimize/lib/themes/amsterdam/global_styling/variables/_components.js +229 -224
  127. package/optimize/lib/themes/amsterdam/theme.js +2 -1
  128. package/optimize/lib/themes/json/eui_theme_borealis_dark.json +1 -1
  129. package/package.json +4 -4
  130. package/test-env/components/badge/color_utils.js +1 -3
  131. package/test-env/components/badge/notification_badge/badge_notification.styles.js +6 -1
  132. package/test-env/components/basic_table/basic_table.js +4 -1
  133. package/test-env/components/basic_table/in_memory_table.js +4 -1
  134. package/test-env/components/breadcrumbs/_breadcrumb_content.styles.js +5 -2
  135. package/test-env/components/button/button_display/_button_display.js +1 -1
  136. package/test-env/components/button/button_display/_button_display.styles.js +11 -2
  137. package/test-env/components/button/button_display/_button_display_content.styles.js +6 -3
  138. package/test-env/components/button/button_empty/button_empty.styles.js +10 -11
  139. package/test-env/components/button/button_group/button_group.styles.js +5 -3
  140. package/test-env/components/button/button_group/button_group_button.js +18 -8
  141. package/test-env/components/button/button_group/button_group_button.styles.js +41 -17
  142. package/test-env/components/button/button_icon/button_icon.js +3 -1
  143. package/test-env/components/collapsible_nav/collapsible_nav.js +1 -0
  144. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +11 -1
  145. package/test-env/components/datagrid/utils/focus.js +1 -1
  146. package/test-env/components/filter_group/filter_button.js +86 -21
  147. package/test-env/components/filter_group/filter_button.styles.js +51 -15
  148. package/test-env/components/filter_group/filter_group.styles.js +18 -6
  149. package/test-env/components/markdown_editor/markdown_editor_footer.js +8 -3
  150. package/test-env/components/search_bar/filters/field_value_selection_filter.js +1 -0
  151. package/test-env/components/search_bar/filters/field_value_toggle_filter.js +3 -1
  152. package/test-env/components/search_bar/filters/field_value_toggle_group_filter.js +3 -1
  153. package/test-env/components/search_bar/filters/is_filter.js +3 -1
  154. package/test-env/components/search_bar/search_bar.a11y.js +3 -3
  155. package/test-env/global_styling/mixins/_button.js +94 -27
  156. package/test-env/services/theme/index.js +42 -1
  157. package/test-env/services/theme/provider.js +28 -2
  158. package/test-env/services/theme/theme_variant.js +28 -0
  159. package/test-env/themes/amsterdam/global_styling/variables/_buttons.js +348 -147
  160. package/test-env/themes/amsterdam/global_styling/variables/_components.js +229 -224
  161. package/test-env/themes/amsterdam/theme.js +2 -1
  162. package/test-env/themes/json/eui_theme_borealis_dark.json +1 -1
@@ -1199,7 +1199,10 @@ EuiBasicTable.propTypes = {
1199
1199
  render: _propTypes.default.func
1200
1200
  }),
1201
1201
  /**
1202
- * Describe a custom renderer function for the content
1202
+ * A custom renderer for this column's cell content.
1203
+ * Unlike computed columns or `mobileOptions.render`, this function receives:
1204
+ * - `value`: The value of the specified field for this row
1205
+ * - `item`: The full data item (row object)
1203
1206
  */
1204
1207
  render: _propTypes.default.func,
1205
1208
  /**
@@ -692,7 +692,10 @@ EuiInMemoryTable.propTypes = {
692
692
  render: _propTypes.default.func
693
693
  }),
694
694
  /**
695
- * Describe a custom renderer function for the content
695
+ * A custom renderer for this column's cell content.
696
+ * Unlike computed columns or `mobileOptions.render`, this function receives:
697
+ * - `value`: The value of the specified field for this row
698
+ * - `item`: The full data item (row object)
696
699
  */
697
700
  render: _propTypes.default.func,
698
701
  /**
@@ -7,7 +7,6 @@ exports.euiBreadcrumbPopoverStyles = exports.euiBreadcrumbContentStyles = void 0
7
7
  var _react = require("@emotion/react");
8
8
  var _global_styling = require("../../global_styling");
9
9
  var _high_contrast = require("../../global_styling/functions/high_contrast");
10
- var _button = require("../../themes/amsterdam/global_styling/mixins/button");
11
10
  /*
12
11
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
13
12
  * or more contributor license agreements. Licensed under the Elastic License
@@ -24,7 +23,11 @@ var euiBreadcrumbContentStyles = exports.euiBreadcrumbContentStyles = function e
24
23
  highContrastMode = euiThemeContext.highContrastMode;
25
24
 
26
25
  // Reuse button colors for `type="application`" clickable breadcrumbs
27
- var applicationButtonColors = (0, _button.euiButtonColor)(euiThemeContext, 'primary');
26
+ var buttonColors = (0, _global_styling.euiButtonColor)(euiThemeContext, 'primary');
27
+ var applicationButtonColors = {
28
+ backgroundColor: euiTheme.colors.backgroundLightPrimary,
29
+ color: buttonColors.color
30
+ };
28
31
 
29
32
  // Create custom darker gray colors for non-clickable application breadcrumbs
30
33
  // The numbers/ratios are fairly specific here to pass WCAG AA contrast minimums
@@ -83,7 +83,7 @@ var EuiButtonDisplay = exports.EuiButtonDisplay = /*#__PURE__*/(0, _react.forwar
83
83
  isLoading: isLoading
84
84
  });
85
85
  var styles = (0, _services.useEuiMemoizedStyles)(_button_display.euiButtonDisplayStyles);
86
- var cssStyles = [styles.euiButtonDisplay, styles[size], fullWidth && styles.fullWidth, minWidth == null && styles.defaultMinWidth, buttonIsDisabled && styles.isDisabled];
86
+ var cssStyles = [styles.euiButtonDisplay, styles[size], fullWidth && styles.fullWidth, minWidth == null && [styles.defaultMinWidth.defaultMinWidth, styles.defaultMinWidth[size]], buttonIsDisabled && styles.isDisabled];
87
87
  var innerNode = (0, _react2.jsx)(_button_display_content.EuiButtonDisplayContent, _extends({
88
88
  isLoading: isLoading,
89
89
  isDisabled: buttonIsDisabled,
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.euiButtonDisplayStyles = exports.euiButtonBaseCSS = void 0;
7
7
  var _react = require("@emotion/react");
8
+ var _services = require("../../../services");
8
9
  var _global_styling = require("../../../global_styling");
9
10
  var _mixins = require("../../../global_styling/mixins");
10
11
  function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /*
@@ -29,18 +30,26 @@ var _ref = process.env.NODE_ENV === "production" ? {
29
30
  };
30
31
  var euiButtonDisplayStyles = exports.euiButtonDisplayStyles = function euiButtonDisplayStyles(euiThemeContext) {
31
32
  var euiTheme = euiThemeContext.euiTheme;
33
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
32
34
  var sizes = (0, _mixins.euiButtonSizeMap)(euiThemeContext);
33
35
  var _buttonSize = function _buttonSize(sizeKey) {
34
36
  var size = sizes[sizeKey];
35
37
  return /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('height', size.height), " line-height:", size.height, ";", (0, _global_styling.euiFontSize)(euiThemeContext, size.fontScale), " border-radius:", size.radius, ";");
36
38
  };
39
+ var classicVariantStyles = "\n &:hover:not(:disabled),\n &:focus {\n text-decoration: underline;\n }\n ";
37
40
  return {
38
41
  // Base
39
- euiButtonDisplay: /*#__PURE__*/(0, _react.css)(euiButtonBaseCSS(), " font-weight:", euiTheme.font.weight.medium, ";", (0, _global_styling.logicalShorthandCSS)('padding', "0 ".concat(euiTheme.size.m)), " &:hover:not(:disabled),&:focus{text-decoration:underline;};label:euiButtonDisplay;"),
42
+ euiButtonDisplay: /*#__PURE__*/(0, _react.css)(euiButtonBaseCSS(), " font-weight:", euiTheme.font.weight.medium, ";", (0, _global_styling.logicalShorthandCSS)('padding', "0 ".concat(euiTheme.size.m)), " ", !isRefreshVariant && classicVariantStyles, ";;label:euiButtonDisplay;"),
40
43
  // States
41
44
  isDisabled: _ref,
42
45
  fullWidth: /*#__PURE__*/(0, _react.css)("display:block;", (0, _global_styling.logicalCSS)('width', '100%'), ";;label:fullWidth;"),
43
- defaultMinWidth: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('min-width', "".concat(euiTheme.base * 7, "px")), ";;label:defaultMinWidth;"),
46
+ defaultMinWidth: {
47
+ defaultMinWidth: /*#__PURE__*/(0, _react.css)(";label:defaultMinWidth;"),
48
+ // Skip css`` for the sizes as we already add classes for sizes and defaultMinWidth
49
+ xs: "\n ".concat((0, _global_styling.logicalCSS)('min-width', "".concat(sizes.xs.minWidth, "px")), "\n "),
50
+ s: "\n ".concat((0, _global_styling.logicalCSS)('min-width', "".concat(sizes.s.minWidth, "px")), "\n "),
51
+ m: "\n ".concat((0, _global_styling.logicalCSS)('min-width', "".concat(sizes.m.minWidth, "px")), "\n ")
52
+ },
44
53
  // Sizes
45
54
  xs: /*#__PURE__*/(0, _react.css)(_buttonSize('xs'), ";label:xs;"),
46
55
  s: /*#__PURE__*/(0, _react.css)(_buttonSize('s'), ";label:s;"),
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.euiButtonDisplayContentStyles = void 0;
7
7
  var _react = require("@emotion/react");
8
+ var _services = require("../../../services");
8
9
  var _global_styling = require("../../../global_styling");
9
10
  /*
10
11
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -14,10 +15,12 @@ var _global_styling = require("../../../global_styling");
14
15
  * Side Public License, v 1.
15
16
  */
16
17
 
17
- var euiButtonDisplayContentStyles = exports.euiButtonDisplayContentStyles = function euiButtonDisplayContentStyles(_ref) {
18
- var euiTheme = _ref.euiTheme;
18
+ var euiButtonDisplayContentStyles = exports.euiButtonDisplayContentStyles = function euiButtonDisplayContentStyles(euiThemeContext) {
19
+ var euiTheme = euiThemeContext.euiTheme;
20
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
21
+ var refreshVariantStyles = "\n /* ensure content stays ontop of hover pseudo element */\n position: relative;\n ";
19
22
  return {
20
23
  // Base
21
- euiButtonDisplayContent: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('height', '100%'), " ", (0, _global_styling.logicalCSS)('width', '100%'), " display:flex;justify-content:center;align-items:center;vertical-align:middle;gap:", euiTheme.size.s, ";;label:euiButtonDisplayContent;")
24
+ euiButtonDisplayContent: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('height', '100%'), " ", (0, _global_styling.logicalCSS)('width', '100%'), " display:flex;justify-content:center;align-items:center;vertical-align:middle;gap:", euiTheme.size.s, ";", isRefreshVariant && refreshVariantStyles, ";;label:euiButtonDisplayContent;")
22
25
  };
23
26
  };
@@ -5,39 +5,38 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.euiButtonEmptyStyles = void 0;
7
7
  var _react = require("@emotion/react");
8
+ var _services = require("../../../services");
8
9
  var _global_styling = require("../../../global_styling");
9
10
  var _button_display = require("../button_display/_button_display.styles");
10
- function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /*
11
+ /*
11
12
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
12
13
  * or more contributor license agreements. Licensed under the Elastic License
13
14
  * 2.0 and the Server Side Public License, v 1; you may not use this file except
14
15
  * in compliance with, at your election, the Elastic License 2.0 or the Server
15
16
  * Side Public License, v 1.
16
17
  */
17
- var _ref = process.env.NODE_ENV === "production" ? {
18
- name: "1lywbid-flush",
19
- styles: "padding-inline:0;label:flush;"
20
- } : {
21
- name: "1lywbid-flush",
22
- styles: "padding-inline:0;label:flush;",
23
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
24
- };
18
+
25
19
  var euiButtonEmptyStyles = exports.euiButtonEmptyStyles = function euiButtonEmptyStyles(euiThemeContext) {
26
20
  var euiTheme = euiThemeContext.euiTheme;
21
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
27
22
 
28
23
  // EuiButtonEmpty uses the same size/font styling as EuiButtonDisplay,
29
24
  // but does not share enough of the same colors/props to the point
30
25
  // of using the actual component - so we'll reuse its styles instead
31
26
  var displayStyles = (0, _button_display.euiButtonDisplayStyles)(euiThemeContext);
27
+ var refreshFlushStyles = "\n /* using duplicate selector to ensure specificity */\n &&:hover,\n &&:active {\n background-color: transparent;\n\n /* removes hover overlay */\n &::before {\n display: none;\n }\n }\n\n &:hover:not(:disabled),\n &:focus {\n text-decoration: underline;\n\n ".concat((0, _global_styling.highContrastModeStyles)(euiThemeContext, {
28
+ forced: "\n /* hides HCM hover border, flush buttons use text-decoration */\n &::after {\n display: none;\n }\n "
29
+ }), "\n }\n ");
32
30
  return {
33
31
  euiButtonEmpty: /*#__PURE__*/(0, _react.css)(displayStyles.euiButtonDisplay, " ", (0, _global_styling.logicalShorthandCSS)('padding', "0 ".concat(euiTheme.size.s)), _global_styling.euiCanAnimate, "{transition-timing-function:ease-in;transition-duration:", euiTheme.animation.fast, ";};label:euiButtonEmpty;"),
34
32
  isDisabled: displayStyles.isDisabled,
35
33
  // Sizes
36
34
  xs: displayStyles.xs,
37
35
  s: displayStyles.s,
38
- m: displayStyles.m,
36
+ // uses array here to prevent adding duplicate "m" classname partial
37
+ m: [displayStyles.m, isRefreshVariant && "\n ".concat((0, _global_styling.logicalCSS)('padding-horizontal', euiTheme.size.m), "\n ")],
39
38
  // Flush sides
40
- flush: _ref,
39
+ flush: /*#__PURE__*/(0, _react.css)("padding-inline:0;", isRefreshVariant && refreshFlushStyles, ";;label:flush;"),
41
40
  left: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-right', euiTheme.size.s), ";;label:left;"),
42
41
  right: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-left', euiTheme.size.s), ";;label:right;"),
43
42
  both: /*#__PURE__*/(0, _react.css)(";label:both;")
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.euiButtonGroupStyles = exports.euiButtonGroupButtonsStyles = void 0;
7
7
  var _react = require("@emotion/react");
8
+ var _services = require("../../../services");
8
9
  var _global_styling = require("../../../global_styling");
9
10
  var _high_contrast = require("../../../global_styling/functions/high_contrast");
10
11
  var _form = require("../../form/form.styles");
@@ -35,7 +36,7 @@ var euiButtonGroupButtonsStyles = exports.euiButtonGroupButtonsStyles = function
35
36
  borderColor = _euiFormVariables.borderColor;
36
37
  return {
37
38
  // Base
38
- euiButtonGroup__buttons: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('max-width', '100%'), " display:flex;;label:euiButtonGroup__buttons;"),
39
+ euiButtonGroup__buttons: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('max-width', '100%'), " display:flex;align-items:center;;label:euiButtonGroup__buttons;"),
39
40
  fullWidth: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', '100%'), " .euiButtonGroupButton,.euiButtonGroup__tooltipWrapper{flex:1;", (0, _global_styling.logicalCSS)('width', '100%'), ";};label:fullWidth;"),
40
41
  // Sizes
41
42
  m: /*#__PURE__*/(0, _react.css)("border-radius:", euiTheme.border.radius.medium, ";", _highContrastStyles(euiThemeContext), ";;label:m;"),
@@ -45,6 +46,7 @@ var euiButtonGroupButtonsStyles = exports.euiButtonGroupButtonsStyles = function
45
46
  };
46
47
  var _highContrastStyles = function _highContrastStyles(euiThemeContext, compressed) {
47
48
  var euiTheme = euiThemeContext.euiTheme;
49
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
48
50
 
49
51
  // Account for buttons within tooltip wrappers in selectors
50
52
  var getButtonChildSelectors = function getButtonChildSelectors(selector) {
@@ -54,7 +56,7 @@ var _highContrastStyles = function _highContrastStyles(euiThemeContext, compress
54
56
  preferred: compressed ? "\n .euiButtonGroupButton {\n border: none;\n }\n " : // Conditionally unset the high contrast borders passed by `euiButtonColor` -
55
57
  // faux borders between selected/unselected buttons are rendered by pseudo elements,
56
58
  // and can flip colors depending on selected/unselected siblings
57
- "\n ".concat(getButtonChildSelectors(':not(:first-child, :last-child)'), " {\n ").concat((0, _global_styling.logicalCSS)('border-horizontal', 'none'), "\n }\n ").concat(getButtonChildSelectors(':first-child'), " {\n ").concat((0, _global_styling.logicalCSS)('border-right', 'none'), "\n }\n ").concat(getButtonChildSelectors(':last-child'), " {\n ").concat((0, _global_styling.logicalCSS)('border-left', 'none'), "\n }\n "),
58
- forced: "\n .euiButtonGroupButton-isSelected {\n ".concat((0, _high_contrast.preventForcedColors)(euiThemeContext), "\n color: ").concat(euiTheme.colors.emptyShade, ";\n background-color: ").concat(euiTheme.colors.fullShade, ";\n }\n\n .euiButtonGroupButton[disabled] {\n opacity: 0.5;\n }\n ")
59
+ "\n ".concat(!isRefreshVariant && "\n ".concat(getButtonChildSelectors(':not(:first-child, :last-child)'), " {\n ").concat((0, _global_styling.logicalCSS)('border-horizontal', 'none'), "\n }\n ").concat(getButtonChildSelectors(':first-child'), " {\n ").concat((0, _global_styling.logicalCSS)('border-right', 'none'), "\n }\n ").concat(getButtonChildSelectors(':last-child'), " {\n ").concat((0, _global_styling.logicalCSS)('border-left', 'none'), "\n }\n "), "\n "),
60
+ forced: "\n .euiButtonGroupButton-isSelected {\n ".concat((0, _high_contrast.preventForcedColors)(euiThemeContext), "\n color: ").concat(euiTheme.colors.emptyShade, ";\n background-color: ").concat(euiTheme.colors.fullShade, ";\n\n ").concat(isRefreshVariant && "\n &:is(:hover, :focus):not(:disabled) {\n &::before {\n border-color: ".concat(euiTheme.colors.textInverse, ";\n }\n }\n "), "\n }\n\n .euiButtonGroupButton[disabled] {\n opacity: 0.5;\n }\n ")
59
61
  });
60
62
  };
@@ -15,7 +15,7 @@ var _button_display = require("../button_display/_button_display");
15
15
  var _button_group_button = require("./button_group_button.styles");
16
16
  var _tool_tip = require("../../../components/tool_tip");
17
17
  var _react2 = require("@emotion/react");
18
- var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "label", "value", "size", "color", "toolTipContent", "toolTipProps"];
18
+ var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "label", "value", "size", "color", "toolTipContent", "toolTipProps", "contentProps"];
19
19
  /*
20
20
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
21
21
  * or more contributor license agreements. Licensed under the Elastic License
@@ -24,12 +24,12 @@ var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "l
24
24
  * Side Public License, v 1.
25
25
  */
26
26
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
27
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
27
28
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
28
29
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
29
30
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
30
31
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
31
32
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
32
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
33
33
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
34
34
  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."); }
35
35
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
@@ -52,17 +52,21 @@ var EuiButtonGroupButton = exports.EuiButtonGroupButton = function EuiButtonGrou
52
52
  _color = _ref$color === void 0 ? 'primary' : _ref$color,
53
53
  toolTipContent = _ref.toolTipContent,
54
54
  toolTipProps = _ref.toolTipProps,
55
+ contentProps = _ref.contentProps,
55
56
  rest = _objectWithoutProperties(_ref, _excluded);
57
+ var euiThemeContext = (0, _services.useEuiTheme)();
58
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
56
59
  var isCompressed = size === 'compressed';
57
60
  var color = isDisabled ? 'disabled' : _color;
58
- var display = isSelected ? 'fill' : isCompressed ? 'empty' : 'base';
61
+ var hasBorder = isRefreshVariant && color !== 'text' && !isCompressed;
62
+ var display = isSelected ? 'fill' : isCompressed || hasBorder ? 'empty' : 'base';
59
63
  var hasToolTip = !!toolTipContent;
60
64
  var styles = (0, _services.useEuiMemoizedStyles)(_button_group_button.euiButtonGroupButtonStyles);
61
65
  var focusColorStyles = (0, _services.useEuiMemoizedStyles)(_button_group_button._compressedButtonFocusColors);
62
66
  var buttonColorStyles = (0, _button.useEuiButtonColorCSS)({
63
67
  display: display
64
68
  })[color];
65
- var cssStyles = [styles.euiButtonGroupButton, isIconOnly && styles.iconOnly, !isCompressed && (hasToolTip ? styles.uncompressed.hasToolTip : styles.uncompressed[size]), isCompressed ? styles.compressed : styles.uncompressed.uncompressed, isDisabled && isSelected ? styles.disabledAndSelected : buttonColorStyles, !isDisabled && isCompressed && focusColorStyles[color]];
69
+ var cssStyles = [styles.euiButtonGroupButton, isIconOnly && styles.iconOnly, !isCompressed && (hasToolTip ? styles.uncompressed.hasToolTip : styles.uncompressed[size]), isCompressed ? styles.compressed : styles.uncompressed.uncompressed, isDisabled && isSelected ? styles.disabledAndSelected : buttonColorStyles, !isDisabled && isCompressed && focusColorStyles[color], hasBorder && styles.hasBorder];
66
70
  var tooltipWrapperStyles = [styles.tooltipWrapper, !isCompressed && styles.uncompressed[size]];
67
71
  var contentStyles = [styles.content.euiButtonGroupButton__content, isCompressed && styles.content.compressed];
68
72
  var textStyles = [isIconOnly ? styles.text.euiButtonGroupButton__iconOnly : styles.text.euiButtonGroupButton__text];
@@ -90,9 +94,9 @@ var EuiButtonGroupButton = exports.EuiButtonGroupButton = function EuiButtonGrou
90
94
  className: buttonClasses,
91
95
  isDisabled: isDisabled,
92
96
  size: size === 'compressed' ? 's' : size,
93
- contentProps: {
94
- css: contentStyles
95
- },
97
+ contentProps: _objectSpread(_objectSpread({}, contentProps), {}, {
98
+ css: [contentStyles, contentProps === null || contentProps === void 0 ? void 0 : contentProps.css]
99
+ }),
96
100
  textProps: {
97
101
  css: textStyles,
98
102
  ref: buttonTextRef,
@@ -181,7 +185,13 @@ EuiButtonGroupButton.propTypes = {
181
185
  /**
182
186
  * Inherit from EuiButtonGroup
183
187
  */
184
- onClick: _propTypes.default.func.isRequired
188
+ onClick: _propTypes.default.func.isRequired,
189
+ contentProps: _propTypes.default.shape({
190
+ className: _propTypes.default.string,
191
+ "aria-label": _propTypes.default.string,
192
+ "data-test-subj": _propTypes.default.string,
193
+ css: _propTypes.default.any
194
+ })
185
195
  };
186
196
  var EuiButtonGroupButtonWithToolTip = function EuiButtonGroupButtonWithToolTip(_ref2) {
187
197
  var _toolTipProps$anchorP, _toolTipProps$anchorP2;
@@ -30,11 +30,11 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
30
30
  * Side Public License, v 1.
31
31
  */
32
32
  var _ref = process.env.NODE_ENV === "production" ? {
33
- name: "nwv4a2-tooltipWrapper",
34
- styles: "overflow:hidden;label:tooltipWrapper;"
33
+ name: "m6ysua-tooltipWrapper",
34
+ styles: "overflow:hidden;&:has(:focus-visible){z-index:1;};label:tooltipWrapper;"
35
35
  } : {
36
- name: "nwv4a2-tooltipWrapper",
37
- styles: "overflow:hidden;label:tooltipWrapper;",
36
+ name: "m6ysua-tooltipWrapper",
37
+ styles: "overflow:hidden;&:has(:focus-visible){z-index:1;};label:tooltipWrapper;",
38
38
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
39
39
  };
40
40
  var _ref2 = process.env.NODE_ENV === "production" ? {
@@ -48,48 +48,70 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
48
48
  var euiButtonGroupButtonStyles = exports.euiButtonGroupButtonStyles = function euiButtonGroupButtonStyles(euiThemeContext) {
49
49
  var euiTheme = euiThemeContext.euiTheme,
50
50
  highContrastMode = euiThemeContext.highContrastMode;
51
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
51
52
  var _euiFormVariables = (0, _form.euiFormVariables)(euiThemeContext),
52
53
  controlCompressedHeight = _euiFormVariables.controlCompressedHeight,
53
54
  controlCompressedBorderRadius = _euiFormVariables.controlCompressedBorderRadius;
54
55
  var compressedButtonHeight = (0, _global_styling.mathWithUnits)([controlCompressedHeight, euiTheme.border.width.thin], function (x, y) {
55
- return x - y * 2;
56
+ return isRefreshVariant ? x - y * 6 : x - y * 2;
56
57
  });
58
+ var selectedSelectors = '.euiButtonGroupButton-isSelected, .euiButtonGroup__tooltipWrapper-isSelected';
57
59
  var uncompressedBorderRadii = function uncompressedBorderRadii(radiusSize) {
58
- return "\n border-radius: 0;\n\n &:first-child {\n ".concat((0, _global_styling.logicalShorthandCSS)('border-radius', "".concat(radiusSize, " 0 0 ").concat(radiusSize)), "\n }\n\n &:last-child {\n ").concat((0, _global_styling.logicalShorthandCSS)('border-radius', "0 ".concat(radiusSize, " ").concat(radiusSize, " 0")), "\n }\n ");
60
+ return "\n border-radius: 0;\n\n &:first-child {\n ".concat((0, _global_styling.logicalShorthandCSS)('border-radius', "".concat(radiusSize, " 0 0 ").concat(radiusSize)), "\n }\n\n &:last-child {\n ").concat((0, _global_styling.logicalShorthandCSS)('border-radius', "0 ".concat(radiusSize, " ").concat(radiusSize, " 0")), "\n }\n\n &:first-child:last-child {\n ").concat((0, _global_styling.logicalShorthandCSS)('border-radius', "".concat(radiusSize)), "\n }\n ");
59
61
  };
62
+ var refreshVariantStyles = "\n &:is(".concat(selectedSelectors, ") {\n ").concat((0, _global_styling.highContrastModeStyles)(euiThemeContext, {
63
+ forced: "\n --highContrastHoverIndicatorColor: ".concat(euiTheme.colors.textInverse, ";\n border: none;\n\n /* styles the content manually instead of the button itself to preserve the system\n focus style, as otherwise preventForcedColors() would require manual styling */\n > [class*=\"euiButtonDisplayContent\"] {\n ").concat((0, _global_styling.preventForcedColors)(euiThemeContext), "\n color: ").concat(euiTheme.colors.emptyShade, ";\n border: none;\n }\n ")
64
+ }), "\n }\n ");
65
+ var uncompressedStyles = isRefreshVariant ? "\n &:is(".concat(selectedSelectors, "):not(:disabled) {\n z-index: 1;\n /* prevent layout jumps due to missing border for selected/filled buttons */\n border: ").concat(euiTheme.border.width.thin, " solid transparent;\n\n ").concat((0, _global_styling.highContrastModeStyles)(euiThemeContext, {
66
+ forced: "\n /* use inset focus outline to ensure visibility, same as custom hover.\n NOTE: temp solution - this will be revisited once we handle global focus styles */\n &:focus-visible {\n outline-color: ".concat(euiTheme.colors.textInverse, ";\n /* has to be inset due to overflow: hidden */\n outline-offset: -").concat((0, _global_styling.mathWithUnits)(euiTheme.border.width.thin, function (x) {
67
+ return x * 4;
68
+ }), ";\n }\n ")
69
+ }), "\n }\n ") : "\n &:is(.euiButtonGroupButton-isSelected) {\n font-weight: ".concat(euiTheme.font.weight.bold, ";\n }\n ");
70
+ var compressedStyles = isRefreshVariant ? "\n margin: ".concat(euiTheme.size.xxs, ";\n border-radius: ").concat((0, _global_styling.mathWithUnits)(euiTheme.border.radius.small, function (x) {
71
+ return x / 2;
72
+ }), ";\n\n & + .euiButtonGroupButton {\n ").concat((0, _global_styling.logicalCSS)('margin-left', '0'), "\n }\n\n &:is(").concat(selectedSelectors, "):not(:disabled) {\n /* prevent layout jumps due to missing border for non-selected buttons */\n border: none;\n\n ").concat((0, _global_styling.highContrastModeStyles)(euiThemeContext, {
73
+ forced: "\n /* use inset focus outline to ensure visibility, same as custom hover.\n NOTE: temp solution - this will be revisited once we handle global focus styles */\n &:focus-visible {\n outline-color: ".concat(euiTheme.colors.textInverse, ";\n /* has to be inset due to overflow: hidden */\n outline-offset: -").concat((0, _global_styling.mathWithUnits)(euiTheme.border.width.thin, function (x) {
74
+ return x * 3;
75
+ }), ";\n }\n ")
76
+ }), "\n }\n ") : "\n background-clip: content-box;\n /* Tweak border radius to account for the padding & background-clip */\n border-radius: ".concat((0, _global_styling.mathWithUnits)([controlCompressedBorderRadius, euiTheme.border.width.thin], function (x, y) {
77
+ return x + y;
78
+ }), ";\n\n &:is(.euiButtonGroupButton-isSelected) {\n font-weight: ").concat(euiTheme.font.weight.semiBold, ";\n }\n ");
60
79
  return {
61
80
  // Base
62
- euiButtonGroupButton: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('min-width', 0), " flex-shrink:1;flex-grow:0;z-index:0;&:focus-visible{z-index:1;}", _global_styling.euiCanAnimate, "{transition:background-color ", euiTheme.animation.normal, " ease-in-out,color ", euiTheme.animation.normal, " ease-in-out;};label:euiButtonGroupButton;"),
81
+ euiButtonGroupButton: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('min-width', 0), " flex-shrink:1;flex-grow:0;z-index:0;&:focus-visible{z-index:2;}", _global_styling.euiCanAnimate, "{transition:background-color ", euiTheme.animation.normal, " ease-in-out,color ", euiTheme.animation.normal, " ease-in-out;}", isRefreshVariant && refreshVariantStyles, ";;label:euiButtonGroupButton;"),
63
82
  iconOnly: /*#__PURE__*/(0, _react.css)("padding-inline:", euiTheme.size.s, ";;label:iconOnly;"),
64
83
  // Sizes
65
84
  uncompressed: {
66
- uncompressed: /*#__PURE__*/(0, _react.css)("&:is(.euiButtonGroupButton-isSelected){font-weight:", euiTheme.font.weight.bold, ";}&:focus-visible{", (0, _global_styling.euiOutline)(euiThemeContext, 'inset', euiTheme.components.buttonGroupFocusColor), ";};label:uncompressed;"),
85
+ uncompressed: /*#__PURE__*/(0, _react.css)("&:focus-visible{", (0, _global_styling.euiOutline)(euiThemeContext, 'inset', euiTheme.components.buttonGroupFocusColor), ";}", uncompressedStyles, ";;label:uncompressed;"),
67
86
  get borders() {
68
87
  // We use pseudo elements to avoid affecing button width, and to allow
69
88
  // inheriting high contrast border colors
70
- var selectors = '.euiButtonGroupButton-isSelected, .euiButtonGroup__tooltipWrapper-isSelected';
89
+ var selectors = selectedSelectors;
71
90
  var selectedColor = highContrastMode ? euiTheme.colors.emptyShade : euiTheme.components.buttonGroupBorderColorSelected;
72
91
  var unselectedColor = highContrastMode ? 'inherit' : euiTheme.components.buttonGroupBorderColor;
92
+ var borderWidth = euiTheme.border.width.thin;
93
+ var borderStyles = isRefreshVariant ? "\n &:not(:first-child) {\n margin-inline-start: -".concat(borderWidth, ";\n }\n\n &:is(").concat(selectors, ") {\n &::before {\n position: absolute;\n z-index: 1;\n ").concat((0, _global_styling.logicalCSS)('left', 0), "\n ").concat((0, _global_styling.logicalCSS)('vertical', "-".concat(euiTheme.border.width.thin)), "\n ").concat((0, _global_styling.logicalCSS)('border-left-style', 'solid'), "\n ").concat((0, _global_styling.logicalCSS)('border-left-width', euiTheme.border.width.thin), "\n pointer-events: none;\n\n ").concat((0, _global_styling.preventForcedColors)(euiThemeContext), "\n }\n }\n ") : "\n &::before {\n position: absolute;\n ".concat((0, _global_styling.logicalCSS)('left', 0), "\n ").concat((0, _global_styling.logicalCSS)('vertical', highContrastMode ? "-".concat(euiTheme.border.width.thin) : 0), "\n ").concat((0, _global_styling.logicalCSS)('border-left-style', 'solid'), "\n ").concat((0, _global_styling.logicalCSS)('border-left-width', euiTheme.border.width.thin), "\n pointer-events: none;\n }\n ");
73
94
 
74
95
  // "Borders" between buttons should be present between two of the same colored buttons,
75
96
  // and absent between selected vs non-selected buttons (different colors)
76
- return "\n position: relative;\n\n &::before {\n position: absolute;\n ".concat((0, _global_styling.logicalCSS)('left', 0), "\n ").concat((0, _global_styling.logicalCSS)('vertical', highContrastMode ? "-".concat(euiTheme.border.width.thin) : 0), "\n ").concat((0, _global_styling.logicalCSS)('border-left-style', 'solid'), "\n ").concat((0, _global_styling.logicalCSS)('border-left-width', euiTheme.border.width.thin), "\n pointer-events: none;\n }\n \n &:not(").concat(selectors, ") + *:not(").concat(selectors, ") {\n &::before {\n content: '';\n border-color: ").concat(unselectedColor, ";\n }\n }\n\n &:is(").concat(selectors, ") + *:is(").concat(selectors, ") {\n &::before {\n content: '';\n border-color: ").concat(selectedColor, ";\n }\n }\n ");
97
+ return "\n position: relative;\n\n ".concat(borderStyles, "\n\n &:not(").concat(selectors, ") + *:not(").concat(selectors, ") {\n &::before {\n content: '';\n border-color: ").concat(unselectedColor, ";\n }\n }\n\n &:is(").concat(selectors, ") + *:is(").concat(selectors, ") {\n &::before {\n content: '';\n border-color: ").concat(selectedColor, ";\n }\n }\n ");
77
98
  },
78
99
  get s() {
79
100
  return /*#__PURE__*/(0, _react.css)(this.borders, " ", uncompressedBorderRadii(euiTheme.border.radius.small), ";;label:s;");
80
101
  },
81
102
  get m() {
82
- return /*#__PURE__*/(0, _react.css)(this.borders, " ", uncompressedBorderRadii(euiTheme.border.radius.medium), ";;label:m;");
103
+ var radius = isRefreshVariant ? euiTheme.border.radius.small : euiTheme.border.radius.medium;
104
+ return /*#__PURE__*/(0, _react.css)(this.borders, " ", uncompressedBorderRadii(radius), ";;label:m;");
83
105
  },
84
106
  hasToolTip: _ref2
85
107
  },
86
- compressed: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('height', compressedButtonHeight), " line-height:", compressedButtonHeight, ";padding:", (0, _global_styling.mathWithUnits)(euiTheme.border.width.thin, function (x) {
108
+ compressed: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('height', compressedButtonHeight), " line-height:", compressedButtonHeight, ";font-weight:", euiTheme.font.weight.regular, ";padding:", isRefreshVariant ? '0' : (0, _global_styling.mathWithUnits)(euiTheme.border.width.thin, function (x) {
87
109
  return x * 2;
88
- }), ";background-clip:content-box;border-radius:", (0, _global_styling.mathWithUnits)([controlCompressedBorderRadius, euiTheme.border.width.thin], function (x, y) {
89
- return x + y;
90
- }), ";font-weight:", euiTheme.font.weight.regular, ";&:is(.euiButtonGroupButton-isSelected){font-weight:", euiTheme.font.weight.semiBold, ";};label:compressed;"),
110
+ }), ";", compressedStyles, ";;label:compressed;"),
91
111
  // States
92
- disabledAndSelected: /*#__PURE__*/(0, _react.css)("color:", (0, _services.makeDisabledContrastColor)(euiTheme.colors.textDisabled)(euiTheme.components.buttonGroupBackgroundDisabledSelected), ";background-color:", euiTheme.components.buttonGroupBackgroundDisabledSelected, ";border:", highContrastMode && "".concat(euiTheme.border.width.thin, " solid ").concat(euiTheme.components.buttonGroupBackgroundDisabledSelected), ";;label:disabledAndSelected;"),
112
+ disabledAndSelected: /*#__PURE__*/(0, _react.css)("color:", isRefreshVariant ? euiTheme.colors.textDisabled : (0, _services.makeDisabledContrastColor)(euiTheme.colors.textDisabled)(euiTheme.components.buttonGroupBackgroundDisabledSelected), ";background-color:", euiTheme.components.buttonGroupBackgroundDisabledSelected, ";border:", highContrastMode ? "".concat(euiTheme.border.width.thin, " solid ").concat(euiTheme.components.buttonGroupBackgroundDisabledSelected) : isRefreshVariant ? "".concat(euiTheme.border.width.thin, " solid ").concat(euiTheme.colors.borderBasePlain) : '', ";;label:disabledAndSelected;"),
113
+ // Skip css`` to avoid generating a className
114
+ hasBorder: "\n border: ".concat(euiTheme.border.width.thin, " solid\n ").concat(euiTheme.colors.borderBasePlain, ";\n "),
93
115
  // Tooltip anchor wrapper
94
116
  tooltipWrapper: _ref,
95
117
  // Content wrapper
@@ -105,10 +127,12 @@ var euiButtonGroupButtonStyles = exports.euiButtonGroupButtonStyles = function e
105
127
  };
106
128
  };
107
129
  var _compressedButtonFocusColors = exports._compressedButtonFocusColors = function _compressedButtonFocusColors(euiThemeContext) {
130
+ var euiTheme = euiThemeContext.euiTheme;
131
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
108
132
  var colors = [].concat(_toConsumableArray(_button.BUTTON_COLORS), ['disabled']);
109
133
  return colors.reduce(function (acc, color) {
110
134
  var _euiButtonFillColor = (0, _button.euiButtonFillColor)(euiThemeContext, color),
111
135
  backgroundColor = _euiButtonFillColor.backgroundColor;
112
- return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, color, /*#__PURE__*/(0, _react.css)("&:focus-visible{", (0, _global_styling.euiOutline)(euiThemeContext, 'center', backgroundColor), " &:is(.euiButtonGroupButton-isSelected){outline-offset:0;}}")));
136
+ return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, color, /*#__PURE__*/(0, _react.css)("&:focus-visible{", (0, _global_styling.euiOutline)(euiThemeContext, isRefreshVariant ? 'outset' : 'center', isRefreshVariant ? euiTheme.focus.color : backgroundColor), " ", !isRefreshVariant && "\n &:is(.euiButtonGroupButton-isSelected) {\n outline-offset: 0;\n }\n ", ";}")));
113
137
  }, {});
114
138
  };
@@ -50,6 +50,8 @@ var EuiButtonIcon = exports.EuiButtonIcon = function EuiButtonIcon(_ref) {
50
50
  isSelected = _ref.isSelected,
51
51
  isLoading = _ref.isLoading,
52
52
  rest = _objectWithoutProperties(_ref, _excluded);
53
+ var euiThemeContext = (0, _services.useEuiTheme)();
54
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
53
55
  var isDisabled = (0, _button_display.isButtonDisabled)({
54
56
  isDisabled: _isDisabled || disabled,
55
57
  href: href,
@@ -66,7 +68,7 @@ var EuiButtonIcon = exports.EuiButtonIcon = function EuiButtonIcon(_ref) {
66
68
  var buttonFocusStyle = (0, _button.useEuiButtonFocusCSS)();
67
69
  var emptyHoverStyles = (0, _services.useEuiMemoizedStyles)(_button_icon._emptyHoverStyles);
68
70
  var styles = (0, _services.useEuiMemoizedStyles)(_button_icon.euiButtonIconStyles);
69
- var cssStyles = [styles.euiButtonIcon, styles[size], buttonColorStyles[isDisabled ? 'disabled' : color], buttonFocusStyle, display === 'empty' && !isDisabled && emptyHoverStyles[color], isDisabled && styles.isDisabled];
71
+ var cssStyles = [styles.euiButtonIcon, styles[size], buttonColorStyles[isDisabled ? 'disabled' : color], buttonFocusStyle, !isRefreshVariant && display === 'empty' && !isDisabled && emptyHoverStyles[color], isDisabled && styles.isDisabled];
70
72
  var classes = (0, _classnames.default)('euiButtonIcon', className);
71
73
 
72
74
  // Add an icon to the button if one exists.
@@ -214,6 +214,7 @@ EuiCollapsibleNav.propTypes = {
214
214
  * Object of props passed to EuiFocusTrap.
215
215
  * `shards` specifies an array of elements that will be considered part of the flyout, preventing the flyout from being closed when clicked.
216
216
  * `closeOnMouseup` will delay the close callback, allowing time for external toggle buttons to handle close behavior.
217
+ * `returnFocus` defines the return focus behavior and provides the possibility to check the available target element or opt out of the behavior in favor of manually returning focus
217
218
  */
218
219
  focusTrapProps: _propTypes.default.any,
219
220
  /**
@@ -8,6 +8,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
10
  var _react2 = require("@emotion/react");
11
+ var _services = require("../../../services");
11
12
  var _button = require("../../button");
12
13
  var _badge = require("../../badge");
13
14
  var _i18n = require("../../i18n");
@@ -29,7 +30,12 @@ var EuiDataGridToolbarControl = exports.EuiDataGridToolbarControl = function Eui
29
30
  badgeContent = _ref.badgeContent,
30
31
  textProps = _ref.textProps,
31
32
  rest = _objectWithoutProperties(_ref, _excluded);
33
+ var euiThemeContext = (0, _services.useEuiTheme)();
34
+ var isRefreshVariant = (0, _services.useEuiThemeRefreshVariant)('buttonVariant');
32
35
  var classes = (0, _classnames.default)('euiDataGridToolbarControl', className);
36
+ var cssStyles = isRefreshVariant ?
37
+ // passes euiThemeContext here instead via `css` to ensure legacy Enzyme tests work
38
+ interactiveStyles(euiThemeContext) : underlineStyles;
33
39
  var badgeAriaLabel = (0, _i18n.useEuiI18n)('euiDataGridToolbarControl.badgeAriaLabel', 'Active: {count}', {
34
40
  count: typeof badgeContent === 'string' ? betterScreenReaderSlashes(badgeContent) : badgeContent
35
41
  });
@@ -38,7 +44,7 @@ var EuiDataGridToolbarControl = exports.EuiDataGridToolbarControl = function Eui
38
44
  size: "xs",
39
45
  color: "text",
40
46
  textProps: false,
41
- css: underlineStyles
47
+ css: cssStyles
42
48
  }, rest), (0, _react2.jsx)("span", _extends({}, textProps, {
43
49
  className: (0, _classnames.default)('euiDataGridToolbarControl__text', 'eui-textTruncate', textProps && textProps.className)
44
50
  }), children), Boolean(badgeContent) && (0, _react2.jsx)(_badge.EuiNotificationBadge, {
@@ -155,6 +161,10 @@ var underlineStyles = process.env.NODE_ENV === "production" ? {
155
161
  styles: "&:focus,&:hover:not(:disabled){text-decoration:none;.euiDataGridToolbarControl__text{text-decoration:underline;}};label:underlineStyles;",
156
162
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
157
163
  };
164
+ var interactiveStyles = function interactiveStyles(_ref2) {
165
+ var euiTheme = _ref2.euiTheme;
166
+ return /*#__PURE__*/(0, _react2.css)("&:focus,&:hover:not(:disabled){.euiDataGridToolbarControl__badge{background-color:", euiTheme.components.filterButtonBadgeBackgroundHover, ";}};label:interactiveStyles;");
167
+ };
158
168
  var badgeStyles = process.env.NODE_ENV === "production" ? {
159
169
  name: "1968nw3-badgeStyles",
160
170
  styles: "cursor:inherit;label:badgeStyles;"
@@ -64,7 +64,7 @@ var useFocus = exports.useFocus = function useFocus() {
64
64
  });
65
65
  }, []);
66
66
  var previousCell = (0, _react.useRef)(undefined);
67
- (0, _react.useEffect)(function () {
67
+ (0, _react.useLayoutEffect)(function () {
68
68
  if (previousCell.current) {
69
69
  notifyCellOfFocusState(cellsUpdateFocus.current, previousCell.current, false);
70
70
  }