@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
@@ -392,7 +392,7 @@
392
392
  "euiColorBackgroundLightWarning": "#3D3014",
393
393
  "euiColorBackgroundLightRisk": "#4A221C",
394
394
  "euiColorBackgroundLightDanger": "#491D27",
395
- "euiColorBackgroundLightText": "#1D2A3E",
395
+ "euiColorBackgroundLightText": "#2B394F",
396
396
  "euiColorBackgroundFilledPrimary": "#61A2FF",
397
397
  "euiColorBackgroundFilledAccent": "#EE72A6",
398
398
  "euiColorBackgroundFilledAccentSecondary": "#16C5C0",
@@ -32,7 +32,6 @@ var euiBadgeColors = exports.euiBadgeColors = function euiBadgeColors(euiThemeCo
32
32
  risk: (0, _button.euiButtonFillColor)(euiThemeContext, 'risk'),
33
33
  danger: (0, _button.euiButtonFillColor)(euiThemeContext, 'danger'),
34
34
  accent: (0, _button.euiButtonFillColor)(euiThemeContext, 'accent'),
35
- accentSecondary: (0, _button.euiButtonFillColor)(euiThemeContext, 'accentSecondary'),
36
35
  disabled: _objectSpread(_objectSpread({}, (0, _button.euiButtonColor)(euiThemeContext, 'disabled')), {}, {
37
36
  borderColor: highContrastMode ? euiTheme.colors.textDisabled : ''
38
37
  }),
@@ -50,8 +49,7 @@ var euiBadgeColors = exports.euiBadgeColors = function euiBadgeColors(euiThemeCo
50
49
  }),
51
50
  accentText: _objectSpread(_objectSpread({}, badgeColorsAccentText), {}, {
52
51
  borderColor: highContrastMode ? badgeColorsAccentText.backgroundColor : ''
53
- }),
54
- accentSecondaryText: getBadgeColors(euiThemeContext, euiTheme.colors.textAccentSecondary)
52
+ })
55
53
  };
56
54
  };
57
55
  var getBadgeColors = exports.getBadgeColors = function getBadgeColors(euiThemeContext, backgroundColor) {
@@ -7,6 +7,7 @@ exports.euiNotificationBadgeStyles = 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 _services = require("../../../services");
10
11
  var _color_utils = require("../color_utils");
11
12
  /*
12
13
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -18,9 +19,13 @@ var _color_utils = require("../color_utils");
18
19
 
19
20
  var euiNotificationBadgeStyles = exports.euiNotificationBadgeStyles = function euiNotificationBadgeStyles(euiThemeContext) {
20
21
  var euiTheme = euiThemeContext.euiTheme;
22
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
21
23
  var badgeColors = (0, _color_utils.euiBadgeColors)(euiThemeContext);
24
+ var borderRadius = isRefreshVariant ? (0, _global_styling.mathWithUnits)(euiTheme.border.radius.small, function (x) {
25
+ return x / 2;
26
+ }) : euiTheme.border.radius.small;
22
27
  return {
23
- euiNotificationBadge: /*#__PURE__*/(0, _react.css)("flex-shrink:0;display:inline-flex;justify-content:center;align-items:center;vertical-align:middle;", (0, _global_styling.logicalCSS)('padding-horizontal', euiTheme.size.xs), " border-radius:", euiTheme.border.radius.small, ";", (0, _high_contrast.highContrastModeStyles)(euiThemeContext, {
28
+ euiNotificationBadge: /*#__PURE__*/(0, _react.css)("flex-shrink:0;display:inline-flex;justify-content:center;align-items:center;vertical-align:middle;", (0, _global_styling.logicalCSS)('padding-horizontal', euiTheme.size.xs), " border-radius:", borderRadius, ";", (0, _high_contrast.highContrastModeStyles)(euiThemeContext, {
24
29
  preferred: "\n border: ".concat(euiTheme.border.thin, ";\n overflow: hidden; /* Fix text clipping */\n ")
25
30
  }), " cursor:default;font-size:", (0, _global_styling.euiFontSizeFromScale)('xs', euiTheme), ";font-weight:", euiTheme.font.weight.medium, ";", (0, _global_styling.euiNumberFormat)(euiThemeContext), " text-align:center;", _global_styling.euiCanAnimate, "{transition:all ", euiTheme.animation.fast, " ease-in;};label:euiNotificationBadge;"),
26
31
  // Sizes
@@ -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
@@ -79,7 +79,7 @@ var EuiButtonDisplay = exports.EuiButtonDisplay = /*#__PURE__*/(0, _react.forwar
79
79
  isLoading: isLoading
80
80
  });
81
81
  var styles = (0, _services.useEuiMemoizedStyles)(_button_display.euiButtonDisplayStyles);
82
- var cssStyles = [styles.euiButtonDisplay, styles[size], fullWidth && styles.fullWidth, minWidth == null && styles.defaultMinWidth, buttonIsDisabled && styles.isDisabled];
82
+ var cssStyles = [styles.euiButtonDisplay, styles[size], fullWidth && styles.fullWidth, minWidth == null && [styles.defaultMinWidth.defaultMinWidth, styles.defaultMinWidth[size]], buttonIsDisabled && styles.isDisabled];
83
83
  var innerNode = (0, _react2.jsx)(_button_display_content.EuiButtonDisplayContent, (0, _extends2.default)({
84
84
  isLoading: isLoading,
85
85
  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
  };
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.EuiButtonGroupButton = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
@@ -18,7 +18,7 @@ var _button_display = require("../button_display/_button_display");
18
18
  var _button_group_button = require("./button_group_button.styles");
19
19
  var _tool_tip = require("../../../components/tool_tip");
20
20
  var _react2 = require("@emotion/react");
21
- var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "label", "value", "size", "color", "toolTipContent", "toolTipProps"];
21
+ var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "label", "value", "size", "color", "toolTipContent", "toolTipProps", "contentProps"];
22
22
  /*
23
23
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
24
24
  * or more contributor license agreements. Licensed under the Elastic License
@@ -42,17 +42,21 @@ var EuiButtonGroupButton = exports.EuiButtonGroupButton = function EuiButtonGrou
42
42
  _color = _ref$color === void 0 ? 'primary' : _ref$color,
43
43
  toolTipContent = _ref.toolTipContent,
44
44
  toolTipProps = _ref.toolTipProps,
45
+ contentProps = _ref.contentProps,
45
46
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
47
+ var euiThemeContext = (0, _services.useEuiTheme)();
48
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
46
49
  var isCompressed = size === 'compressed';
47
50
  var color = isDisabled ? 'disabled' : _color;
48
- var display = isSelected ? 'fill' : isCompressed ? 'empty' : 'base';
51
+ var hasBorder = isRefreshVariant && color !== 'text' && !isCompressed;
52
+ var display = isSelected ? 'fill' : isCompressed || hasBorder ? 'empty' : 'base';
49
53
  var hasToolTip = !!toolTipContent;
50
54
  var styles = (0, _services.useEuiMemoizedStyles)(_button_group_button.euiButtonGroupButtonStyles);
51
55
  var focusColorStyles = (0, _services.useEuiMemoizedStyles)(_button_group_button._compressedButtonFocusColors);
52
56
  var buttonColorStyles = (0, _button.useEuiButtonColorCSS)({
53
57
  display: display
54
58
  })[color];
55
- 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]];
59
+ 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];
56
60
  var tooltipWrapperStyles = [styles.tooltipWrapper, !isCompressed && styles.uncompressed[size]];
57
61
  var contentStyles = [styles.content.euiButtonGroupButton__content, isCompressed && styles.content.compressed];
58
62
  var textStyles = [isIconOnly ? styles.text.euiButtonGroupButton__iconOnly : styles.text.euiButtonGroupButton__text];
@@ -80,9 +84,9 @@ var EuiButtonGroupButton = exports.EuiButtonGroupButton = function EuiButtonGrou
80
84
  className: buttonClasses,
81
85
  isDisabled: isDisabled,
82
86
  size: size === 'compressed' ? 's' : size,
83
- contentProps: {
84
- css: contentStyles
85
- },
87
+ contentProps: _objectSpread(_objectSpread({}, contentProps), {}, {
88
+ css: [contentStyles, contentProps === null || contentProps === void 0 ? void 0 : contentProps.css]
89
+ }),
86
90
  textProps: {
87
91
  css: textStyles,
88
92
  ref: buttonTextRef,
@@ -23,11 +23,11 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
23
23
  * Side Public License, v 1.
24
24
  */
25
25
  var _ref = process.env.NODE_ENV === "production" ? {
26
- name: "nwv4a2-tooltipWrapper",
27
- styles: "overflow:hidden;label:tooltipWrapper;"
26
+ name: "m6ysua-tooltipWrapper",
27
+ styles: "overflow:hidden;&:has(:focus-visible){z-index:1;};label:tooltipWrapper;"
28
28
  } : {
29
- name: "nwv4a2-tooltipWrapper",
30
- styles: "overflow:hidden;label:tooltipWrapper;",
29
+ name: "m6ysua-tooltipWrapper",
30
+ styles: "overflow:hidden;&:has(:focus-visible){z-index:1;};label:tooltipWrapper;",
31
31
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
32
32
  };
33
33
  var _ref2 = process.env.NODE_ENV === "production" ? {
@@ -41,48 +41,70 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
41
41
  var euiButtonGroupButtonStyles = exports.euiButtonGroupButtonStyles = function euiButtonGroupButtonStyles(euiThemeContext) {
42
42
  var euiTheme = euiThemeContext.euiTheme,
43
43
  highContrastMode = euiThemeContext.highContrastMode;
44
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
44
45
  var _euiFormVariables = (0, _form.euiFormVariables)(euiThemeContext),
45
46
  controlCompressedHeight = _euiFormVariables.controlCompressedHeight,
46
47
  controlCompressedBorderRadius = _euiFormVariables.controlCompressedBorderRadius;
47
48
  var compressedButtonHeight = (0, _global_styling.mathWithUnits)([controlCompressedHeight, euiTheme.border.width.thin], function (x, y) {
48
- return x - y * 2;
49
+ return isRefreshVariant ? x - y * 6 : x - y * 2;
49
50
  });
51
+ var selectedSelectors = '.euiButtonGroupButton-isSelected, .euiButtonGroup__tooltipWrapper-isSelected';
50
52
  var uncompressedBorderRadii = function uncompressedBorderRadii(radiusSize) {
51
- 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 ");
53
+ 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 ");
52
54
  };
55
+ var refreshVariantStyles = "\n &:is(".concat(selectedSelectors, ") {\n ").concat((0, _global_styling.highContrastModeStyles)(euiThemeContext, {
56
+ 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 ")
57
+ }), "\n }\n ");
58
+ 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, {
59
+ 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) {
60
+ return x * 4;
61
+ }), ";\n }\n ")
62
+ }), "\n }\n ") : "\n &:is(.euiButtonGroupButton-isSelected) {\n font-weight: ".concat(euiTheme.font.weight.bold, ";\n }\n ");
63
+ var compressedStyles = isRefreshVariant ? "\n margin: ".concat(euiTheme.size.xxs, ";\n border-radius: ").concat((0, _global_styling.mathWithUnits)(euiTheme.border.radius.small, function (x) {
64
+ return x / 2;
65
+ }), ";\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, {
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 * 3;
68
+ }), ";\n }\n ")
69
+ }), "\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) {
70
+ return x + y;
71
+ }), ";\n\n &:is(.euiButtonGroupButton-isSelected) {\n font-weight: ").concat(euiTheme.font.weight.semiBold, ";\n }\n ");
53
72
  return {
54
73
  // Base
55
- 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;"),
74
+ 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;"),
56
75
  iconOnly: /*#__PURE__*/(0, _react.css)("padding-inline:", euiTheme.size.s, ";;label:iconOnly;"),
57
76
  // Sizes
58
77
  uncompressed: {
59
- 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;"),
78
+ uncompressed: /*#__PURE__*/(0, _react.css)("&:focus-visible{", (0, _global_styling.euiOutline)(euiThemeContext, 'inset', euiTheme.components.buttonGroupFocusColor), ";}", uncompressedStyles, ";;label:uncompressed;"),
60
79
  get borders() {
61
80
  // We use pseudo elements to avoid affecing button width, and to allow
62
81
  // inheriting high contrast border colors
63
- var selectors = '.euiButtonGroupButton-isSelected, .euiButtonGroup__tooltipWrapper-isSelected';
82
+ var selectors = selectedSelectors;
64
83
  var selectedColor = highContrastMode ? euiTheme.colors.emptyShade : euiTheme.components.buttonGroupBorderColorSelected;
65
84
  var unselectedColor = highContrastMode ? 'inherit' : euiTheme.components.buttonGroupBorderColor;
85
+ var borderWidth = euiTheme.border.width.thin;
86
+ 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 ");
66
87
 
67
88
  // "Borders" between buttons should be present between two of the same colored buttons,
68
89
  // and absent between selected vs non-selected buttons (different colors)
69
- 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 ");
90
+ 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 ");
70
91
  },
71
92
  get s() {
72
93
  return /*#__PURE__*/(0, _react.css)(this.borders, " ", uncompressedBorderRadii(euiTheme.border.radius.small), ";;label:s;");
73
94
  },
74
95
  get m() {
75
- return /*#__PURE__*/(0, _react.css)(this.borders, " ", uncompressedBorderRadii(euiTheme.border.radius.medium), ";;label:m;");
96
+ var radius = isRefreshVariant ? euiTheme.border.radius.small : euiTheme.border.radius.medium;
97
+ return /*#__PURE__*/(0, _react.css)(this.borders, " ", uncompressedBorderRadii(radius), ";;label:m;");
76
98
  },
77
99
  hasToolTip: _ref2
78
100
  },
79
- 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) {
101
+ 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) {
80
102
  return x * 2;
81
- }), ";background-clip:content-box;border-radius:", (0, _global_styling.mathWithUnits)([controlCompressedBorderRadius, euiTheme.border.width.thin], function (x, y) {
82
- return x + y;
83
- }), ";font-weight:", euiTheme.font.weight.regular, ";&:is(.euiButtonGroupButton-isSelected){font-weight:", euiTheme.font.weight.semiBold, ";};label:compressed;"),
103
+ }), ";", compressedStyles, ";;label:compressed;"),
84
104
  // States
85
- 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;"),
105
+ 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;"),
106
+ // Skip css`` to avoid generating a className
107
+ hasBorder: "\n border: ".concat(euiTheme.border.width.thin, " solid\n ").concat(euiTheme.colors.borderBasePlain, ";\n "),
86
108
  // Tooltip anchor wrapper
87
109
  tooltipWrapper: _ref,
88
110
  // Content wrapper
@@ -98,10 +120,12 @@ var euiButtonGroupButtonStyles = exports.euiButtonGroupButtonStyles = function e
98
120
  };
99
121
  };
100
122
  var _compressedButtonFocusColors = exports._compressedButtonFocusColors = function _compressedButtonFocusColors(euiThemeContext) {
123
+ var euiTheme = euiThemeContext.euiTheme;
124
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
101
125
  var colors = [].concat((0, _toConsumableArray2.default)(_button.BUTTON_COLORS), ['disabled']);
102
126
  return colors.reduce(function (acc, color) {
103
127
  var _euiButtonFillColor = (0, _button.euiButtonFillColor)(euiThemeContext, color),
104
128
  backgroundColor = _euiButtonFillColor.backgroundColor;
105
- return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2.default)({}, color, /*#__PURE__*/(0, _react.css)("&:focus-visible{", (0, _global_styling.euiOutline)(euiThemeContext, 'center', backgroundColor), " &:is(.euiButtonGroupButton-isSelected){outline-offset:0;}}")));
129
+ return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2.default)({}, 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 ", ";}")));
106
130
  }, {});
107
131
  };
@@ -48,6 +48,8 @@ var EuiButtonIcon = exports.EuiButtonIcon = function EuiButtonIcon(_ref) {
48
48
  isSelected = _ref.isSelected,
49
49
  isLoading = _ref.isLoading,
50
50
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
51
+ var euiThemeContext = (0, _services.useEuiTheme)();
52
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
51
53
  var isDisabled = (0, _button_display.isButtonDisabled)({
52
54
  isDisabled: _isDisabled || disabled,
53
55
  href: href,
@@ -64,7 +66,7 @@ var EuiButtonIcon = exports.EuiButtonIcon = function EuiButtonIcon(_ref) {
64
66
  var buttonFocusStyle = (0, _button.useEuiButtonFocusCSS)();
65
67
  var emptyHoverStyles = (0, _services.useEuiMemoizedStyles)(_button_icon._emptyHoverStyles);
66
68
  var styles = (0, _services.useEuiMemoizedStyles)(_button_icon.euiButtonIconStyles);
67
- var cssStyles = [styles.euiButtonIcon, styles[size], buttonColorStyles[isDisabled ? 'disabled' : color], buttonFocusStyle, display === 'empty' && !isDisabled && emptyHoverStyles[color], isDisabled && styles.isDisabled];
69
+ var cssStyles = [styles.euiButtonIcon, styles[size], buttonColorStyles[isDisabled ? 'disabled' : color], buttonFocusStyle, !isRefreshVariant && display === 'empty' && !isDisabled && emptyHoverStyles[color], isDisabled && styles.isDisabled];
68
70
  var classes = (0, _classnames.default)('euiButtonIcon', className);
69
71
 
70
72
  // Add an icon to the button if one exists.
@@ -10,6 +10,7 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
12
  var _react2 = require("@emotion/react");
13
+ var _services = require("../../../services");
13
14
  var _button = require("../../button");
14
15
  var _badge = require("../../badge");
15
16
  var _i18n = require("../../i18n");
@@ -27,7 +28,12 @@ var EuiDataGridToolbarControl = exports.EuiDataGridToolbarControl = function Eui
27
28
  badgeContent = _ref.badgeContent,
28
29
  textProps = _ref.textProps,
29
30
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
31
+ var euiThemeContext = (0, _services.useEuiTheme)();
32
+ var isRefreshVariant = (0, _services.useEuiThemeRefreshVariant)('buttonVariant');
30
33
  var classes = (0, _classnames.default)('euiDataGridToolbarControl', className);
34
+ var cssStyles = isRefreshVariant ?
35
+ // passes euiThemeContext here instead via `css` to ensure legacy Enzyme tests work
36
+ interactiveStyles(euiThemeContext) : underlineStyles;
31
37
  var badgeAriaLabel = (0, _i18n.useEuiI18n)('euiDataGridToolbarControl.badgeAriaLabel', 'Active: {count}', {
32
38
  count: typeof badgeContent === 'string' ? betterScreenReaderSlashes(badgeContent) : badgeContent
33
39
  });
@@ -36,7 +42,7 @@ var EuiDataGridToolbarControl = exports.EuiDataGridToolbarControl = function Eui
36
42
  size: "xs",
37
43
  color: "text",
38
44
  textProps: false,
39
- css: underlineStyles
45
+ css: cssStyles
40
46
  }, rest), (0, _react2.jsx)("span", (0, _extends2.default)({}, textProps, {
41
47
  className: (0, _classnames.default)('euiDataGridToolbarControl__text', 'eui-textTruncate', textProps && textProps.className)
42
48
  }), children), Boolean(badgeContent) && (0, _react2.jsx)(_badge.EuiNotificationBadge, {
@@ -64,6 +70,10 @@ var underlineStyles = process.env.NODE_ENV === "production" ? {
64
70
  styles: "&:focus,&:hover:not(:disabled){text-decoration:none;.euiDataGridToolbarControl__text{text-decoration:underline;}};label:underlineStyles;",
65
71
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
66
72
  };
73
+ var interactiveStyles = function interactiveStyles(_ref2) {
74
+ var euiTheme = _ref2.euiTheme;
75
+ return /*#__PURE__*/(0, _react2.css)("&:focus,&:hover:not(:disabled){.euiDataGridToolbarControl__badge{background-color:", euiTheme.components.filterButtonBadgeBackgroundHover, ";}};label:interactiveStyles;");
76
+ };
67
77
  var badgeStyles = process.env.NODE_ENV === "production" ? {
68
78
  name: "1968nw3-badgeStyles",
69
79
  styles: "cursor:inherit;label:badgeStyles;"
@@ -62,7 +62,7 @@ var useFocus = exports.useFocus = function useFocus() {
62
62
  });
63
63
  }, []);
64
64
  var previousCell = (0, _react.useRef)(undefined);
65
- (0, _react.useEffect)(function () {
65
+ (0, _react.useLayoutEffect)(function () {
66
66
  if (previousCell.current) {
67
67
  notifyCellOfFocusState(cellsUpdateFocus.current, previousCell.current, false);
68
68
  }