@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
@@ -14,8 +14,10 @@ var _inner_text = require("../inner_text");
14
14
  var _badge = require("../badge");
15
15
  var _button_empty = require("../button/button_empty");
16
16
  var _filter_button = require("./filter_button.styles");
17
+ var _button_group_button = require("../button/button_group/button_group_button");
18
+ var _button_group_button2 = require("../button/button_group/button_group_button.styles");
17
19
  var _react2 = require("@emotion/react");
18
- var _excluded = ["children", "className", "iconType", "iconSide", "color", "badgeColor", "hasActiveFilters", "numFilters", "numActiveFilters", "isDisabled", "isSelected", "type", "grow", "withNext", "textProps", "contentProps"];
20
+ var _excluded = ["children", "className", "iconType", "iconSide", "color", "badgeColor", "hasActiveFilters", "numFilters", "numActiveFilters", "isToggle", "isDisabled", "isSelected", "type", "grow", "withNext", "textProps", "contentProps"];
19
21
  /*
20
22
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
21
23
  * or more contributor license agreements. Licensed under the Elastic License
@@ -24,12 +26,12 @@ var _excluded = ["children", "className", "iconType", "iconSide", "color", "badg
24
26
  * Side Public License, v 1.
25
27
  */
26
28
  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); }
28
29
  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; }
29
30
  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; }
30
31
  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; }
31
32
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
32
33
  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); }
34
+ 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
35
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
34
36
  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
37
  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; } }
@@ -51,6 +53,7 @@ var EuiFilterButton = exports.EuiFilterButton = function EuiFilterButton(_ref) {
51
53
  hasActiveFilters = _ref.hasActiveFilters,
52
54
  numFilters = _ref.numFilters,
53
55
  numActiveFilters = _ref.numActiveFilters,
56
+ isToggle = _ref.isToggle,
54
57
  isDisabled = _ref.isDisabled,
55
58
  isSelected = _ref.isSelected,
56
59
  _ref$type = _ref.type,
@@ -61,18 +64,37 @@ var EuiFilterButton = exports.EuiFilterButton = function EuiFilterButton(_ref) {
61
64
  textProps = _ref.textProps,
62
65
  contentProps = _ref.contentProps,
63
66
  rest = _objectWithoutProperties(_ref, _excluded);
67
+ var id = (0, _services.useGeneratedHtmlId)({
68
+ prefix: 'filter-button'
69
+ });
64
70
  var numFiltersDefined = numFilters != null; // != instead of !== to allow for null and undefined
65
71
  var numActiveFiltersDefined = numActiveFilters != null && numActiveFilters > 0;
72
+ var euiThemeContext = (0, _services.useEuiTheme)();
73
+ var colorMode = euiThemeContext.colorMode;
74
+ var isRefreshVariant = (0, _services.useEuiThemeRefreshVariant)('buttonVariant');
75
+
76
+ // assumption about type of usage based on icon usage
77
+ // requires manual override to apply correct aria attributes for more custom usages
78
+ var isCollapsible = !isToggle && iconType === 'arrowDown';
79
+ // NOTE: in Amsterdam `hasActiveFilters` applies selected styling while `isSelected` does not.
80
+ // With Borealis this is more granular as EuiFilterButton now supports proper toggle buttons next to regular buttons
81
+ var isExpanded = isCollapsible && (isSelected !== null && isSelected !== void 0 ? isSelected : hasActiveFilters);
66
82
  var styles = (0, _services.useEuiMemoizedStyles)(_filter_button.euiFilterButtonStyles);
67
- var cssStyles = [styles.euiFilterButton, withNext && styles.withNext, !grow && styles.noGrow, hasActiveFilters && styles.hasActiveFilters, numFiltersDefined && styles.hasNotification];
83
+ var focusColorStyles = (0, _services.useEuiMemoizedStyles)(_button_group_button2._compressedButtonFocusColors);
84
+ var toggleVariantStyles = isRefreshVariant ? [isToggle && styles.buttonType.toggle, !isToggle && !isDisabled && focusColorStyles[color], !isToggle && styles.buttonType.default] : [isToggle && styles.buttonType.toggle];
85
+ var cssStyles = [styles.euiFilterButton, !isRefreshVariant && withNext && styles.withNext, hasActiveFilters && styles.hasActiveFilters].concat(toggleVariantStyles);
86
+ var wrapperStyles = (0, _services.useEuiMemoizedStyles)(_filter_button.euiFilterButtonWrapperStyles);
87
+ var wrapperCssStyles = [wrapperStyles.wrapper, isRefreshVariant && withNext && styles.withNext, numFiltersDefined && styles.hasNotification, isToggle && wrapperStyles.hasToggle, !grow && styles.noGrow];
68
88
  var _useEuiMemoizedStyles = (0, _services.useEuiMemoizedStyles)(_filter_button.euiFilterButtonChildStyles),
69
89
  contentStyles = _useEuiMemoizedStyles.content,
70
90
  textStyles = _useEuiMemoizedStyles.text,
71
91
  notificationStyles = _useEuiMemoizedStyles.notification;
92
+ var wrapperClasses = (0, _classnames.default)('euiFilterButton__wrapper');
72
93
  var classes = (0, _classnames.default)('euiFilterButton', {
73
94
  'euiFilterButton-isSelected': isSelected,
74
95
  'euiFilterButton-hasActiveFilters': hasActiveFilters,
75
- 'euiFilterButton-hasNotification': numFiltersDefined
96
+ 'euiFilterButton-hasNotification': numFiltersDefined,
97
+ 'euiFilterButton-isToggle': isRefreshVariant && isToggle
76
98
  }, className);
77
99
 
78
100
  /**
@@ -87,6 +109,16 @@ var EuiFilterButton = exports.EuiFilterButton = function EuiFilterButton(_ref) {
87
109
  count: badgeCount
88
110
  });
89
111
  var badgeStyles = [notificationStyles.euiFilterButton__notification, isDisabled && notificationStyles.disabled];
112
+ var badgeContent = (0, _react2.jsx)(_badge.EuiNotificationBadge, {
113
+ className: "euiFilterButton__notification",
114
+ css: badgeStyles,
115
+ "aria-label": hasActiveFilters ? activeBadgeLabel : availableBadgeLabel,
116
+ color: isDisabled || !hasActiveFilters ? 'subdued' : badgeColor,
117
+ role: "marquee" // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/marquee_role
118
+ }, badgeCount);
119
+ var badgeElement = showBadge && (isRefreshVariant ? (0, _react2.jsx)(_services.EuiThemeProvider, {
120
+ colorMode: isToggle && isSelected ? 'INVERSE' : colorMode
121
+ }, badgeContent) : badgeContent);
90
122
 
91
123
  /**
92
124
  * Text
@@ -100,7 +132,17 @@ var EuiFilterButton = exports.EuiFilterButton = function EuiFilterButton(_ref) {
100
132
  ref = _useInnerText2[0],
101
133
  innerText = _useInnerText2[1];
102
134
  var dataText = children && typeof children === 'string' ? children : innerText;
103
- return (0, _react2.jsx)(_button_empty.EuiButtonEmpty, _extends({
135
+ var textContent = (0, _react2.jsx)("span", _extends({
136
+ ref: ref,
137
+ "data-text": dataText,
138
+ title: dataText
139
+ }, textProps, {
140
+ className: buttonTextClassNames,
141
+ css: textCssStyles
142
+ }), children);
143
+
144
+ /** Button element */
145
+ var button = (0, _react2.jsx)(_button_empty.EuiButtonEmpty, _extends({
104
146
  className: classes,
105
147
  css: cssStyles,
106
148
  color: color,
@@ -109,27 +151,42 @@ var EuiFilterButton = exports.EuiFilterButton = function EuiFilterButton(_ref) {
109
151
  iconType: iconType,
110
152
  type: type,
111
153
  textProps: false,
154
+ contentProps: _objectSpread(_objectSpread({}, contentProps), {}, {
155
+ css: [contentStyles.euiFilterButton__content, iconType && contentStyles.hasIcon, contentProps === null || contentProps === void 0 ? void 0 : contentProps.css]
156
+ }),
157
+ "aria-expanded": isCollapsible ? isExpanded : undefined
158
+ }, rest), textContent, badgeElement);
159
+ var onToggleClick = function onToggleClick(e) {
160
+ var _rest$onClick;
161
+ rest === null || rest === void 0 || (_rest$onClick = rest.onClick) === null || _rest$onClick === void 0 || _rest$onClick.call(rest, e);
162
+ };
163
+ return (0, _react2.jsx)("div", {
164
+ className: wrapperClasses,
165
+ css: wrapperCssStyles
166
+ }, isToggle && !isCollapsible ? (0, _react2.jsx)(_button_group_button.EuiButtonGroupButton, _extends({
167
+ id: id,
168
+ label: (0, _react2.jsx)(_react.default.Fragment, null, textContent, badgeElement),
169
+ className: classes,
170
+ css: cssStyles,
171
+ color: color,
172
+ isSelected: isSelected,
173
+ size: "compressed",
174
+ isDisabled: isDisabled,
175
+ iconSide: iconSide,
176
+ iconType: iconType,
177
+ isIconOnly: false,
178
+ type: type,
179
+ textProps: false,
112
180
  contentProps: _objectSpread(_objectSpread({}, contentProps), {}, {
113
181
  css: [contentStyles.euiFilterButton__content, iconType && contentStyles.hasIcon, contentProps === null || contentProps === void 0 ? void 0 : contentProps.css]
114
182
  })
115
- }, rest), (0, _react2.jsx)("span", _extends({
116
- ref: ref,
117
- "data-text": dataText,
118
- title: dataText
119
- }, textProps, {
120
- className: buttonTextClassNames,
121
- css: textCssStyles
122
- }), children), showBadge && (0, _react2.jsx)(_badge.EuiNotificationBadge, {
123
- className: "euiFilterButton__notification",
124
- css: badgeStyles,
125
- "aria-label": hasActiveFilters ? activeBadgeLabel : availableBadgeLabel,
126
- color: isDisabled || !hasActiveFilters ? 'subdued' : badgeColor,
127
- role: "marquee" // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/marquee_role
128
- }, badgeCount));
183
+ }, rest, {
184
+ onClick: onToggleClick
185
+ })) : button);
129
186
  };
130
187
  EuiFilterButton.propTypes = {
131
188
  /**
132
- * Bolds the button if true
189
+ * Highlights active filters
133
190
  */
134
191
  hasActiveFilters: _propTypes.default.bool,
135
192
  /**
@@ -143,7 +200,15 @@ EuiFilterButton.propTypes = {
143
200
  */
144
201
  numActiveFilters: _propTypes.default.number,
145
202
  /**
146
- * Applies a visual state to the button useful when using with a popover.
203
+ * Switches between toggle and regular button
204
+ * @default false
205
+ */
206
+ isToggle: _propTypes.default.bool,
207
+ /**
208
+ * Applies a visual state to the button.
209
+ * Automatically applies `aria-pressed` when used with `isToggle={true}`.
210
+ * Otherwise applies `aria-expanded` when used with `isToggle={false}` and
211
+ * `iconType="arrowDown"` as trigger button for e.g. a popover.
147
212
  */
148
213
  isSelected: _propTypes.default.bool,
149
214
  /**
@@ -3,9 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.euiFilterButtonStyles = exports.euiFilterButtonDisplay = exports.euiFilterButtonChildStyles = void 0;
6
+ exports.euiFilterButtonWrapperStyles = exports.euiFilterButtonStyles = exports.euiFilterButtonDisplay = exports.euiFilterButtonChildStyles = void 0;
7
7
  var _react = require("@emotion/react");
8
+ var _services = require("../../services");
8
9
  var _global_styling = require("../../global_styling");
10
+ var _supports = require("../../global_styling/functions/supports");
9
11
  var _form = require("../form/form.styles");
10
12
  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
13
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -14,12 +16,13 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
14
16
  * in compliance with, at your election, the Elastic License 2.0 or the Server
15
17
  * Side Public License, v 1.
16
18
  */
17
- var euiFilterButtonDisplay = exports.euiFilterButtonDisplay = function euiFilterButtonDisplay(_ref4) {
18
- var euiTheme = _ref4.euiTheme;
19
+ var euiFilterButtonDisplay = exports.euiFilterButtonDisplay = function euiFilterButtonDisplay(euiThemeContext) {
20
+ var euiTheme = euiThemeContext.euiTheme;
21
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
19
22
  return {
20
23
  flex: '1 1 auto',
21
24
  minInlineSize: (0, _global_styling.mathWithUnits)(euiTheme.size.base, function (x) {
22
- return x * 3;
25
+ return x * (isRefreshVariant ? 2.75 : 3);
23
26
  })
24
27
  };
25
28
  };
@@ -33,9 +36,11 @@ var _ref3 = process.env.NODE_ENV === "production" ? {
33
36
  };
34
37
  var euiFilterButtonStyles = exports.euiFilterButtonStyles = function euiFilterButtonStyles(euiThemeContext) {
35
38
  var euiTheme = euiThemeContext.euiTheme;
39
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
36
40
  var _euiFormVariables = (0, _form.euiFormVariables)(euiThemeContext),
37
41
  controlHeight = _euiFormVariables.controlHeight,
38
42
  borderColor = _euiFormVariables.borderColor;
43
+ var selectedSelector = '.euiFilterButton-isSelected';
39
44
  var border = "".concat(euiTheme.border.width.thin, " solid ").concat(borderColor);
40
45
 
41
46
  // Pseudo elements create borders without affecting width. We also prefer them
@@ -43,14 +48,44 @@ var euiFilterButtonStyles = exports.euiFilterButtonStyles = function euiFilterBu
43
48
  var leftBorder = "\n &::before {\n content: '';\n position: absolute;\n ".concat((0, _global_styling.logicalCSS)('right', '100%'), "\n ").concat((0, _global_styling.logicalCSS)('vertical', 0), "\n ").concat((0, _global_styling.logicalCSS)('border-left', border), "\n }\n ");
44
49
  // Bottom borders are needed for responsive flex-wrap behavior
45
50
  var bottomBorder = "\n &::after {\n content: '';\n position: absolute;\n ".concat((0, _global_styling.logicalCSS)('top', '100%'), "\n ").concat((0, _global_styling.logicalCSS)('horizontal', 0), "\n ").concat((0, _global_styling.logicalCSS)('border-bottom', border), "\n }\n ");
51
+ var buttonStyles = isRefreshVariant ? "\n ".concat((0, _global_styling.logicalCSS)('width', '100%'), "\n\n &:not(").concat(selectedSelector, ") {\n &:hover,\n &:active {\n .euiFilterButton__notification[class*=\"subdued\"] {\n background-color: ").concat(euiTheme.components.filterButtonBadgeBackgroundHover, "\n }\n }\n }\n ") : "\n ".concat((0, _global_styling.logicalCSS)('height', controlHeight), "\n border-radius: 0;\n ").concat(leftBorder, "\n ").concat(bottomBorder, "\n\n /* :not(:disabled) specificity needed to override EuiButtonEmpty styles */\n &:hover:not(:disabled),\n &:focus:not(:disabled) {\n /* Remove underline from whole button so notifications don't get the underline */\n text-decoration: none;\n\n .euiFilterButton__text {\n /* And put it only on the actual text part */\n text-decoration: underline;\n }\n }\n ");
52
+ var toggleTypeStyles = isRefreshVariant ? "\n ".concat(euiFilterButtonDisplay(euiThemeContext), ";\n\n ").concat((0, _global_styling.highContrastModeStyles)(euiThemeContext, {
53
+ forced: "\n &:is(".concat(selectedSelector, ") {\n ").concat((0, _global_styling.preventForcedColors)(euiThemeContext), "\n color: ").concat(euiTheme.colors.emptyShade, ";\n background-color: ").concat(euiTheme.colors.fullShade, ";\n }\n ")
54
+ }), "\n ") : "\n font-weight: ".concat(euiTheme.font.weight.medium, ";\n padding: 0;\n\n &:is(").concat(selectedSelector, ") {\n color: ").concat((0, _global_styling.euiButtonEmptyColor)(euiThemeContext, 'text').color, ";\n background-color: transparent;\n font-weight: ").concat(euiTheme.font.weight.bold, ";\n }\n ");
55
+ var withNextSelector = isRefreshVariant ? '& + .euiFilterButton__wrapper' : '.euiFilterButton__wrapper:has(&) + .euiFilterButton__wrapper';
56
+ // handles display of borders between buttons
57
+ var withNextStyles = isRefreshVariant ? "\n &::before {\n border: none;\n }\n\n ".concat((0, _supports.cssSupportsHasWithNextSibling)("\n &:has(+ :not(&)) {\n ".concat((0, _global_styling.logicalCSS)('padding-right', '0'), "\n }\n ")), "\n ") : "\n .euiFilterButton {\n &::before {\n border: none;\n }\n }\n ";
46
58
  return {
47
- euiFilterButton: /*#__PURE__*/(0, _react.css)("position:relative;", euiFilterButtonDisplay(euiThemeContext), " ", (0, _global_styling.logicalCSS)('height', controlHeight), " border-radius:0;", leftBorder, " ", bottomBorder, "&:hover:not(:disabled),&:focus:not(:disabled){text-decoration:none;.euiFilterButton__text{text-decoration:underline;}}&:focus-visible{outline-offset:-", euiTheme.focus.width, ";};label:euiFilterButton;"),
48
- withNext: /*#__PURE__*/(0, _react.css)("&+.euiFilterButton{", (0, _global_styling.logicalCSS)('margin-left', "-".concat(euiTheme.size.xs)), "&::before{display:none;}};label:withNext;"),
59
+ euiFilterButton: /*#__PURE__*/(0, _react.css)(!isRefreshVariant && euiFilterButtonDisplay(euiThemeContext), ";position:relative;", buttonStyles, ";;label:euiFilterButton;"),
60
+ buttonType: {
61
+ default: /*#__PURE__*/(0, _react.css)(isRefreshVariant && "\n border-radius: 0;\n\n &:focus-visible {\n z-index: 1;\n outline-offset: -".concat(euiTheme.border.width.thick, ";\n border-radius: ").concat(euiTheme.border.radius.small, ";\n transition: none;\n }\n "), ";;label:default;"),
62
+ toggle: /*#__PURE__*/(0, _react.css)("&:focus-visible{outline-offset:", (0, _global_styling.mathWithUnits)(euiTheme.focus.width, function (x) {
63
+ return isRefreshVariant ? x / 2 : x * -1;
64
+ }), ";}", toggleTypeStyles, ";;label:toggle;")
65
+ },
66
+ withNext: /*#__PURE__*/(0, _react.css)(withNextSelector, "{", (0, _global_styling.logicalCSS)('margin-left', "-".concat(euiTheme.size.xs)), withNextStyles, ";};label:withNext;"),
49
67
  noGrow: _ref3,
50
68
  hasNotification: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('min-width', (0, _global_styling.mathWithUnits)(euiTheme.size.base, function (x) {
51
69
  return x * 6;
52
70
  })), ";;label:hasNotification;"),
53
- hasActiveFilters: /*#__PURE__*/(0, _react.css)("font-weight:", euiTheme.font.weight.bold, ";;label:hasActiveFilters;")
71
+ hasActiveFilters: /*#__PURE__*/(0, _react.css)("font-weight:", isRefreshVariant ? euiTheme.font.weight.regular : euiTheme.font.weight.bold, ";;label:hasActiveFilters;")
72
+ };
73
+ };
74
+ var euiFilterButtonWrapperStyles = exports.euiFilterButtonWrapperStyles = function euiFilterButtonWrapperStyles(euiThemeContext) {
75
+ var euiTheme = euiThemeContext.euiTheme;
76
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
77
+ var _euiFormVariables2 = (0, _form.euiFormVariables)(euiThemeContext),
78
+ borderColor = _euiFormVariables2.borderColor;
79
+ var border = "".concat(euiTheme.border.width.thin, " solid ").concat(borderColor);
80
+
81
+ // Pseudo elements create borders without affecting width. We also prefer them
82
+ // over box-shadow for Windows high contrast theme compatibility
83
+ var leftBorder = "\n &::before {\n content: '';\n position: absolute;\n inset: 0;\n ".concat((0, _global_styling.logicalCSS)('border-left', border), "\n\n pointer-events: none;\n }\n ");
84
+ // Bottom borders are needed for responsive flex-wrap behavior
85
+ var bottomBorder = "\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n ".concat((0, _global_styling.logicalCSS)('border-bottom', border), "\n pointer-events: none;\n }\n ");
86
+ return {
87
+ wrapper: /*#__PURE__*/(0, _react.css)(euiFilterButtonDisplay(euiThemeContext), " position:relative;display:flex;align-items:center;", isRefreshVariant && "\n ".concat(leftBorder, "\n ").concat(bottomBorder, "\n "), " ", (0, _global_styling.logicalCSS)('padding-vertical', euiTheme.border.width.thin), ";;label:wrapper;"),
88
+ hasToggle: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-horizontal', isRefreshVariant ? euiTheme.border.width.thin : '0'), (0, _supports.cssSupportsHasWithNextSibling)("\n &:not([class*=\"withNext\"]):has(+ :not(&)) {\n ".concat((0, _global_styling.logicalCSS)('padding-right', '0'), "\n }\n ")), ";;label:hasToggle;")
54
89
  };
55
90
  };
56
91
  var _ref = process.env.NODE_ENV === "production" ? {
@@ -62,24 +97,25 @@ var _ref = process.env.NODE_ENV === "production" ? {
62
97
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
63
98
  };
64
99
  var _ref2 = process.env.NODE_ENV === "production" ? {
65
- name: "nd1u8j-euiFilterButton__notification",
66
- styles: "cursor:inherit;label:euiFilterButton__notification;"
100
+ name: "zxesfz-euiFilterButton__notification",
101
+ styles: "cursor:inherit;forced-color-adjust:auto;&{transition:none;};label:euiFilterButton__notification;"
67
102
  } : {
68
- name: "nd1u8j-euiFilterButton__notification",
69
- styles: "cursor:inherit;label:euiFilterButton__notification;",
103
+ name: "zxesfz-euiFilterButton__notification",
104
+ styles: "cursor:inherit;forced-color-adjust:auto;&{transition:none;};label:euiFilterButton__notification;",
70
105
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
71
106
  };
72
- var euiFilterButtonChildStyles = exports.euiFilterButtonChildStyles = function euiFilterButtonChildStyles(_ref5) {
73
- var euiTheme = _ref5.euiTheme;
107
+ var euiFilterButtonChildStyles = exports.euiFilterButtonChildStyles = function euiFilterButtonChildStyles(euiThemeContext) {
108
+ var euiTheme = euiThemeContext.euiTheme;
109
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
74
110
  return {
75
111
  content: {
76
- euiFilterButton__content: /*#__PURE__*/(0, _react.css)(";label:euiFilterButton__content;"),
112
+ euiFilterButton__content: /*#__PURE__*/(0, _react.css)(isRefreshVariant && "\n .euiThemeProvider {\n display: inline-flex;\n }\n ", ";;label:euiFilterButton__content;"),
77
113
  hasIcon: /*#__PURE__*/(0, _react.css)("&>.euiIcon:last-child{", (0, _global_styling.logicalCSS)('margin-left', 'auto'), ";};label:hasIcon;")
78
114
  },
79
115
  text: {
80
116
  euiFilterButton__text: /*#__PURE__*/(0, _react.css)((0, _global_styling.euiTextShift)('bold', 'data-text', euiTheme), " ", (0, _global_styling.euiTextTruncate)(), ";;label:euiFilterButton__text;"),
81
117
  hasNotification: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('min-width', (0, _global_styling.mathWithUnits)(euiTheme.size.base, function (x) {
82
- return x * 3;
118
+ return x * (isRefreshVariant ? 2 : 3);
83
119
  })), ";;label:hasNotification;")
84
120
  },
85
121
  notification: {
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.euiFilterGroupStyles = 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");
@@ -26,20 +27,31 @@ var _ref = process.env.NODE_ENV === "production" ? {
26
27
  };
27
28
  var euiFilterGroupStyles = exports.euiFilterGroupStyles = function euiFilterGroupStyles(euiThemeContext) {
28
29
  var euiTheme = euiThemeContext.euiTheme;
30
+ var isRefreshVariant = (0, _services.isEuiThemeRefreshVariant)(euiThemeContext, 'buttonVariant');
29
31
  var _euiFormVariables = (0, _form.euiFormVariables)(euiThemeContext),
30
32
  backgroundColor = _euiFormVariables.backgroundColor,
31
33
  borderColor = _euiFormVariables.borderColor,
32
34
  controlBorderRadius = _euiFormVariables.controlBorderRadius,
35
+ controlHeight = _euiFormVariables.controlHeight,
33
36
  controlCompressedBorderRadius = _euiFormVariables.controlCompressedBorderRadius,
34
37
  controlCompressedHeight = _euiFormVariables.controlCompressedHeight;
38
+ var borderRadius = isRefreshVariant ? euiTheme.border.radius.small : controlBorderRadius;
39
+ var borderRadiusCompressed = isRefreshVariant ? euiTheme.border.radius.small : controlCompressedBorderRadius;
40
+ var borderStyle = isRefreshVariant ? "\n /* Adds the border on a pseudo element to prevent height differences between wrapper and buttons.\n Uses ::after to ensure overlap and prevents blocking by setting pointer-events: none */\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n border: ".concat(euiTheme.border.width.thin, " solid ").concat(euiTheme.colors.borderBasePlain, ";\n border-radius: inherit;\n pointer-events: none;\n }\n ") : "\n ".concat((0, _high_contrast.highContrastModeStyles)(euiThemeContext, {
41
+ none: "box-shadow: inset 0 0 0 ".concat(euiTheme.border.width.thin, " ").concat(borderColor, ";"),
42
+ forced: "border: ".concat(euiTheme.border.thin, ";")
43
+ }), "\n ");
35
44
  return {
36
- euiFilterGroup: /*#__PURE__*/(0, _react.css)("display:inline-flex;", (0, _global_styling.logicalCSS)('max-width', '100%'), " overflow:hidden;background-color:", backgroundColor, ";", (0, _high_contrast.highContrastModeStyles)(euiThemeContext, {
37
- none: "box-shadow: inset 0 0 0 ".concat(euiTheme.border.width.thin, " ").concat(borderColor, ";"),
38
- forced: "border: ".concat(euiTheme.border.thin, ";")
39
- }), ">*:not(.euiFilterButton){", (0, _filter_button.euiFilterButtonDisplay)(euiThemeContext), ";}.euiPopover>.euiFilterButton{", (0, _global_styling.logicalCSS)('width', '100%'), ";}", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs', 's']), "{flex-wrap:wrap;}", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs']), "{display:flex;.euiFilterButton{flex-grow:1;}};label:euiFilterGroup;"),
45
+ euiFilterGroup: /*#__PURE__*/(0, _react.css)(isRefreshVariant && "position: relative;", " display:inline-flex;", (0, _global_styling.logicalCSS)('max-width', '100%'), " overflow:hidden;background-color:", backgroundColor, ";", borderStyle, ">*:not(.euiFilterButton__wrapper, .euiFilterButton){", (0, _filter_button.euiFilterButtonDisplay)(euiThemeContext), ";}.euiPopover>.euiFilterButton{", (0, _global_styling.logicalCSS)('width', '100%'), ";}", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs', 's']), "{flex-wrap:wrap;}", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs']), "{display:flex;", isRefreshVariant && "\n .euiPopover:focus-within {\n z-index: 1;\n }\n \n .euiFilterButton__wrapper {\n flex-grow: 1;\n }\n ", ";.euiFilterButton__wrapper{flex-grow:1;}};label:euiFilterGroup;"),
40
46
  fullWidth: _ref,
41
- uncompressed: /*#__PURE__*/(0, _react.css)("border-radius:", controlBorderRadius, ";", buttonChildrenBorderRadii(controlBorderRadius), ";;label:uncompressed;"),
42
- compressed: /*#__PURE__*/(0, _react.css)("border-radius:", controlCompressedBorderRadius, ";", buttonChildrenBorderRadii(controlCompressedBorderRadius), " .euiFilterButton{", (0, _global_styling.logicalCSS)('height', controlCompressedHeight), ";};label:compressed;"),
47
+ uncompressed: /*#__PURE__*/(0, _react.css)("border-radius:", borderRadius, ";.euiFilterButton__wrapper{", (0, _global_styling.logicalCSS)('height', controlHeight), ";}.euiFilterButton{", (0, _global_styling.logicalCSS)('height', controlHeight), ";}", !isRefreshVariant && buttonChildrenBorderRadii(borderRadius), " ", isRefreshVariant && "\n .euiFilterButton-isToggle {\n ".concat((0, _global_styling.logicalCSS)('height', (0, _global_styling.mathWithUnits)([controlHeight, euiTheme.size.xxs], function (x, y) {
48
+ return x - 3 * y;
49
+ })), "\n }\n "), ";;label:uncompressed;"),
50
+ compressed: /*#__PURE__*/(0, _react.css)("border-radius:", borderRadiusCompressed, ";", !isRefreshVariant && buttonChildrenBorderRadii(borderRadiusCompressed), " .euiFilterButton{", (0, _global_styling.logicalCSS)('height', isRefreshVariant ? (0, _global_styling.mathWithUnits)([controlCompressedHeight, euiTheme.border.width.thin], function (x, y) {
51
+ return x - 2 * y;
52
+ }) : controlCompressedHeight), ";}", isRefreshVariant && "\n .euiFilterButton-isToggle {\n ".concat((0, _global_styling.logicalCSS)('height', (0, _global_styling.mathWithUnits)([controlCompressedHeight, euiTheme.size.xxs], function (x, y) {
53
+ return x - 3 * y;
54
+ })), "\n }\n "), ";;label:compressed;"),
43
55
  /**
44
56
  * Not used in EuiFilterGroup directly, but used by EuiSearchBar and consumers
45
57
  * A fixed width is required because of the shift in widths that can be caused
@@ -86,6 +86,7 @@ var EuiMarkdownEditorFooter = exports.EuiMarkdownEditorFooter = /*#__PURE__*/(0,
86
86
  var syntaxTitle = (0, _i18n.useEuiI18n)('euiMarkdownEditorFooter.syntaxTitle', 'Syntax help');
87
87
  var _useContext = (0, _react.useContext)(_markdown_context.EuiMarkdownContext),
88
88
  readOnly = _useContext.readOnly;
89
+ var helpModalTitleId = (0, _services.useGeneratedHtmlId)();
89
90
  if (isUploadingFiles) {
90
91
  uploadButton = (0, _react2.jsx)(_button.EuiButtonIcon, {
91
92
  size: "s",
@@ -176,8 +177,11 @@ var EuiMarkdownEditorFooter = exports.EuiMarkdownEditorFooter = /*#__PURE__*/(0,
176
177
  })), isShowingHelpModal && (0, _react2.jsx)(_modal.EuiModal, {
177
178
  onClose: function onClose() {
178
179
  return setIsShowingHelpModal(false);
179
- }
180
- }, (0, _react2.jsx)(_modal.EuiModalHeader, null, (0, _react2.jsx)(_title.EuiTitle, null, (0, _react2.jsx)("h1", null, syntaxTitle))), (0, _react2.jsx)(_modal.EuiModalBody, null, (0, _react2.jsx)(_text.EuiText, null, (0, _react2.jsx)(_i18n.EuiI18n, {
180
+ },
181
+ "aria-labelledby": helpModalTitleId
182
+ }, (0, _react2.jsx)(_modal.EuiModalHeader, null, (0, _react2.jsx)(_title.EuiTitle, null, (0, _react2.jsx)("h1", {
183
+ id: helpModalTitleId
184
+ }, syntaxTitle))), (0, _react2.jsx)(_modal.EuiModalBody, null, (0, _react2.jsx)(_text.EuiText, null, (0, _react2.jsx)(_i18n.EuiI18n, {
181
185
  tokens: ['euiMarkdownEditorFooter.syntaxModalDescriptionPrefix', 'euiMarkdownEditorFooter.syntaxModalDescriptionSuffix'],
182
186
  defaults: ['This editor uses', 'You can also utilize these additional syntax plugins to add rich content to your text.']
183
187
  }, function (_ref3) {
@@ -225,7 +229,8 @@ var EuiMarkdownEditorFooter = exports.EuiMarkdownEditorFooter = /*#__PURE__*/(0,
225
229
  return setIsShowingHelpPopover(false);
226
230
  },
227
231
  panelPaddingSize: "s",
228
- anchorPosition: "upCenter"
232
+ anchorPosition: "upCenter",
233
+ "aria-labelledby": helpModalTitleId
229
234
  }, (0, _react2.jsx)(_i18n.EuiI18n, {
230
235
  tokens: ['euiMarkdownEditorFooter.syntaxPopoverDescription'],
231
236
  defaults: ['This editor uses']
@@ -304,6 +304,7 @@ var FieldValueSelectionFilter = exports.FieldValueSelectionFilter = /*#__PURE__*
304
304
  return (0, _react2.jsx)(_filter_group.EuiFilterButton, {
305
305
  iconType: "arrowDown",
306
306
  iconSide: "right",
307
+ isSelected: active,
307
308
  hasActiveFilters: active,
308
309
  numActiveFilters: active ? activeItemsCount : undefined,
309
310
  grow: true,
@@ -85,8 +85,10 @@ var FieldValueToggleFilter = exports.FieldValueToggleFilter = /*#__PURE__*/funct
85
85
  };
86
86
  return (0, _react2.jsx)(_filter_group.EuiFilterButton, {
87
87
  onClick: onClick,
88
+ isSelected: hasActiveFilters,
88
89
  hasActiveFilters: hasActiveFilters,
89
- "aria-pressed": !!hasActiveFilters
90
+ "aria-pressed": !!hasActiveFilters,
91
+ isToggle: true
90
92
  }, name);
91
93
  }
92
94
  }]);
@@ -86,9 +86,11 @@ var FieldValueToggleGroupFilter = exports.FieldValueToggleGroupFilter = /*#__PUR
86
86
  return (0, _react2.jsx)(_filter_group.EuiFilterButton, {
87
87
  key: key,
88
88
  onClick: onClick,
89
+ isSelected: active,
89
90
  hasActiveFilters: active,
90
91
  "aria-pressed": !!active,
91
- withNext: !isLastItem
92
+ withNext: !isLastItem,
93
+ isToggle: true
92
94
  }, name);
93
95
  });
94
96
  }
@@ -81,8 +81,10 @@ var IsFilter = exports.IsFilter = /*#__PURE__*/function (_Component) {
81
81
  };
82
82
  return (0, _react2.jsx)(_filter_group.EuiFilterButton, {
83
83
  onClick: onClick,
84
+ isSelected: hasActiveFilters,
84
85
  hasActiveFilters: hasActiveFilters,
85
- "aria-pressed": !!hasActiveFilters
86
+ "aria-pressed": !!hasActiveFilters,
87
+ isToggle: true
86
88
  }, name);
87
89
  }
88
90
  }]);
@@ -194,7 +194,7 @@ describe('EuiSearchBar', function () {
194
194
  cy.checkAxe();
195
195
  });
196
196
  it('has zero violations after filtering on Open items', function () {
197
- cy.get('button.euiButtonEmpty').first().focus();
197
+ cy.get('button.euiFilterButton').first().focus();
198
198
  cy.realPress('Enter');
199
199
  cy.get('table.euiTable tbody').find('tr').should('have.length', 3);
200
200
  cy.checkAxe();
@@ -205,12 +205,12 @@ describe('EuiSearchBar', function () {
205
205
  cy.checkAxe();
206
206
  });
207
207
  it('has zero violations after filtering by Tags', function () {
208
- cy.get('button.euiButtonEmpty').last().focus();
208
+ cy.get('button.euiFilterButton').last().focus();
209
209
  cy.realPress('Enter');
210
210
  cy.realPress('ArrowDown');
211
211
  cy.realPress('Enter');
212
212
  cy.realPress('Escape');
213
- cy.get('button.euiButtonEmpty').last().should('have.focus');
213
+ cy.get('button.euiFilterButton').last().should('have.focus');
214
214
  cy.get('table.euiTable tbody').find('tr').should('have.length', 3);
215
215
  cy.checkAxe();
216
216
  cy.repeatRealPress(['Shift', 'Tab'], 3);