@elastic/eui 116.2.0 → 116.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 (224) hide show
  1. package/es/components/avatar/avatar.js +14 -5
  2. package/es/components/banner/banner.js +202 -0
  3. package/es/components/banner/banner.styles.js +76 -0
  4. package/es/components/banner/index.js +9 -0
  5. package/es/components/basic_table/basic_table.js +21 -10
  6. package/es/components/basic_table/collapsed_item_actions.js +5 -4
  7. package/es/components/basic_table/default_item_action.js +3 -5
  8. package/es/components/breadcrumbs/_breadcrumb_content.js +29 -19
  9. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  10. package/es/components/context_menu/context_menu_panel_title.js +0 -12
  11. package/es/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  12. package/es/components/datagrid/controls/display_selector.js +2 -1
  13. package/es/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  14. package/es/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  15. package/es/components/date_picker/react-datepicker/src/index.js +1 -5
  16. package/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  17. package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  18. package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  19. package/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  20. package/es/components/form/field_password/field_password.js +6 -3
  21. package/es/components/header/header.a11y.js +1 -1
  22. package/es/components/index.js +1 -0
  23. package/es/components/markdown_editor/markdown_editor_help_button.js +7 -4
  24. package/es/components/pagination/pagination_button_arrow.js +6 -2
  25. package/es/components/panel/panel.styles.js +4 -4
  26. package/es/components/panel/split_panel/split_panel.styles.js +1 -1
  27. package/es/components/search_bar/search_bar.js +20 -16
  28. package/es/components/search_bar/search_box.js +4 -2
  29. package/es/components/selectable/selectable_list/selectable_list.js +1 -1
  30. package/es/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  31. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +2 -1
  32. package/es/components/table/sticky_header/context.js +32 -0
  33. package/es/components/table/sticky_header/index.js +10 -0
  34. package/es/components/table/sticky_header/sticky_header.js +151 -0
  35. package/es/components/table/sticky_header/sticky_header.styles.js +43 -0
  36. package/es/components/table/store/provider.js +37 -0
  37. package/es/components/table/store/store.js +82 -0
  38. package/es/components/table/table.js +28 -3
  39. package/es/components/table/table.styles.js +4 -4
  40. package/es/components/table/table_header_cell.js +116 -48
  41. package/es/components/table/table_header_cell_checkbox.js +59 -25
  42. package/es/components/text_truncate/text_truncate.js +8 -3
  43. package/es/components/tool_tip/tool_tip.js +1 -1
  44. package/es/components/tool_tip/tool_tip.styles.js +14 -5
  45. package/es/utils/publisher.js +53 -0
  46. package/eui.d.ts +1266 -975
  47. package/i18ntokens.json +2390 -2372
  48. package/lib/components/avatar/avatar.js +14 -5
  49. package/lib/components/banner/banner.js +211 -0
  50. package/lib/components/banner/banner.styles.js +80 -0
  51. package/lib/components/banner/index.js +12 -0
  52. package/lib/components/basic_table/basic_table.js +21 -10
  53. package/lib/components/basic_table/collapsed_item_actions.js +5 -4
  54. package/lib/components/basic_table/default_item_action.js +3 -5
  55. package/lib/components/breadcrumbs/_breadcrumb_content.js +29 -19
  56. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  57. package/lib/components/context_menu/context_menu_panel_title.js +0 -12
  58. package/lib/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  59. package/lib/components/datagrid/controls/display_selector.js +2 -1
  60. package/lib/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  61. package/lib/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  62. package/lib/components/date_picker/react-datepicker/src/index.js +0 -4
  63. package/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  64. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  65. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  66. package/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  67. package/lib/components/form/field_password/field_password.js +6 -3
  68. package/lib/components/header/header.a11y.js +1 -1
  69. package/lib/components/index.js +11 -0
  70. package/lib/components/markdown_editor/markdown_editor_help_button.js +7 -4
  71. package/lib/components/pagination/pagination_button_arrow.js +6 -2
  72. package/lib/components/panel/panel.styles.js +4 -4
  73. package/lib/components/panel/split_panel/split_panel.styles.js +1 -1
  74. package/lib/components/search_bar/search_bar.js +20 -16
  75. package/lib/components/search_bar/search_box.js +4 -2
  76. package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  77. package/lib/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  78. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +2 -1
  79. package/lib/components/table/sticky_header/context.js +41 -0
  80. package/lib/components/table/sticky_header/index.js +19 -0
  81. package/lib/components/table/sticky_header/sticky_header.js +156 -0
  82. package/lib/components/table/sticky_header/sticky_header.styles.js +47 -0
  83. package/lib/components/table/store/provider.js +46 -0
  84. package/lib/components/table/store/store.js +87 -0
  85. package/lib/components/table/table.js +28 -3
  86. package/lib/components/table/table.styles.js +4 -4
  87. package/lib/components/table/table_header_cell.js +118 -48
  88. package/lib/components/table/table_header_cell_checkbox.js +62 -25
  89. package/lib/components/text_truncate/text_truncate.js +8 -3
  90. package/lib/components/tool_tip/tool_tip.js +1 -1
  91. package/lib/components/tool_tip/tool_tip.styles.js +14 -5
  92. package/lib/utils/publisher.js +59 -0
  93. package/optimize/es/components/avatar/avatar.js +12 -4
  94. package/optimize/es/components/banner/banner.js +112 -0
  95. package/optimize/es/components/banner/banner.styles.js +76 -0
  96. package/optimize/es/components/banner/index.js +9 -0
  97. package/optimize/es/components/basic_table/basic_table.js +21 -10
  98. package/optimize/es/components/basic_table/collapsed_item_actions.js +5 -4
  99. package/optimize/es/components/basic_table/default_item_action.js +3 -5
  100. package/optimize/es/components/breadcrumbs/_breadcrumb_content.js +27 -18
  101. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  102. package/optimize/es/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  103. package/optimize/es/components/datagrid/controls/display_selector.js +2 -1
  104. package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  105. package/optimize/es/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  106. package/optimize/es/components/date_picker/react-datepicker/src/index.js +1 -5
  107. package/optimize/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  108. package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  109. package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  110. package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  111. package/optimize/es/components/form/field_password/field_password.js +6 -3
  112. package/optimize/es/components/header/header.a11y.js +1 -1
  113. package/optimize/es/components/index.js +1 -0
  114. package/optimize/es/components/markdown_editor/markdown_editor_help_button.js +7 -4
  115. package/optimize/es/components/pagination/pagination_button_arrow.js +6 -2
  116. package/optimize/es/components/panel/panel.styles.js +4 -4
  117. package/optimize/es/components/panel/split_panel/split_panel.styles.js +1 -1
  118. package/optimize/es/components/search_bar/search_bar.js +20 -16
  119. package/optimize/es/components/search_bar/search_box.js +4 -2
  120. package/optimize/es/components/selectable/selectable_list/selectable_list.js +1 -1
  121. package/optimize/es/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  122. package/optimize/es/components/table/sticky_header/context.js +32 -0
  123. package/optimize/es/components/table/sticky_header/index.js +10 -0
  124. package/optimize/es/components/table/sticky_header/sticky_header.js +146 -0
  125. package/optimize/es/components/table/sticky_header/sticky_header.styles.js +43 -0
  126. package/optimize/es/components/table/store/provider.js +37 -0
  127. package/optimize/es/components/table/store/store.js +82 -0
  128. package/optimize/es/components/table/table.js +15 -3
  129. package/optimize/es/components/table/table.styles.js +4 -4
  130. package/optimize/es/components/table/table_header_cell.js +116 -48
  131. package/optimize/es/components/table/table_header_cell_checkbox.js +59 -25
  132. package/optimize/es/components/text_truncate/text_truncate.js +8 -3
  133. package/optimize/es/components/tool_tip/tool_tip.js +1 -1
  134. package/optimize/es/components/tool_tip/tool_tip.styles.js +14 -5
  135. package/optimize/es/utils/publisher.js +53 -0
  136. package/optimize/lib/components/avatar/avatar.js +12 -4
  137. package/optimize/lib/components/banner/banner.js +121 -0
  138. package/optimize/lib/components/banner/banner.styles.js +80 -0
  139. package/optimize/lib/components/banner/index.js +12 -0
  140. package/optimize/lib/components/basic_table/basic_table.js +21 -10
  141. package/optimize/lib/components/basic_table/collapsed_item_actions.js +5 -4
  142. package/optimize/lib/components/basic_table/default_item_action.js +3 -5
  143. package/optimize/lib/components/breadcrumbs/_breadcrumb_content.js +27 -18
  144. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  145. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  146. package/optimize/lib/components/datagrid/controls/display_selector.js +2 -1
  147. package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  148. package/optimize/lib/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  149. package/optimize/lib/components/date_picker/react-datepicker/src/index.js +0 -4
  150. package/optimize/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  151. package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  152. package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  153. package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  154. package/optimize/lib/components/form/field_password/field_password.js +6 -3
  155. package/optimize/lib/components/header/header.a11y.js +1 -1
  156. package/optimize/lib/components/index.js +11 -0
  157. package/optimize/lib/components/markdown_editor/markdown_editor_help_button.js +7 -4
  158. package/optimize/lib/components/pagination/pagination_button_arrow.js +6 -2
  159. package/optimize/lib/components/panel/panel.styles.js +4 -4
  160. package/optimize/lib/components/panel/split_panel/split_panel.styles.js +1 -1
  161. package/optimize/lib/components/search_bar/search_bar.js +20 -16
  162. package/optimize/lib/components/search_bar/search_box.js +4 -2
  163. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  164. package/optimize/lib/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  165. package/optimize/lib/components/table/sticky_header/context.js +41 -0
  166. package/optimize/lib/components/table/sticky_header/index.js +19 -0
  167. package/optimize/lib/components/table/sticky_header/sticky_header.js +156 -0
  168. package/optimize/lib/components/table/sticky_header/sticky_header.styles.js +47 -0
  169. package/optimize/lib/components/table/store/provider.js +46 -0
  170. package/optimize/lib/components/table/store/store.js +87 -0
  171. package/optimize/lib/components/table/table.js +15 -3
  172. package/optimize/lib/components/table/table.styles.js +4 -4
  173. package/optimize/lib/components/table/table_header_cell.js +119 -48
  174. package/optimize/lib/components/table/table_header_cell_checkbox.js +62 -25
  175. package/optimize/lib/components/text_truncate/text_truncate.js +8 -3
  176. package/optimize/lib/components/tool_tip/tool_tip.js +1 -1
  177. package/optimize/lib/components/tool_tip/tool_tip.styles.js +14 -5
  178. package/optimize/lib/utils/publisher.js +59 -0
  179. package/package.json +2 -2
  180. package/test-env/components/avatar/avatar.js +14 -5
  181. package/test-env/components/banner/banner.js +210 -0
  182. package/test-env/components/banner/banner.styles.js +80 -0
  183. package/test-env/components/banner/index.js +12 -0
  184. package/test-env/components/basic_table/basic_table.js +21 -10
  185. package/test-env/components/basic_table/collapsed_item_actions.js +5 -4
  186. package/test-env/components/basic_table/default_item_action.js +3 -5
  187. package/test-env/components/breadcrumbs/_breadcrumb_content.js +29 -19
  188. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  189. package/test-env/components/context_menu/context_menu_panel_title.js +0 -12
  190. package/test-env/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  191. package/test-env/components/datagrid/controls/display_selector.js +2 -1
  192. package/test-env/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  193. package/test-env/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  194. package/test-env/components/date_picker/react-datepicker/src/index.js +0 -4
  195. package/test-env/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  196. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  197. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  198. package/test-env/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  199. package/test-env/components/form/field_password/field_password.js +6 -3
  200. package/test-env/components/header/header.a11y.js +1 -1
  201. package/test-env/components/index.js +11 -0
  202. package/test-env/components/markdown_editor/markdown_editor_help_button.js +7 -4
  203. package/test-env/components/pagination/pagination_button_arrow.js +6 -2
  204. package/test-env/components/panel/panel.styles.js +4 -4
  205. package/test-env/components/panel/split_panel/split_panel.styles.js +1 -1
  206. package/test-env/components/search_bar/search_bar.js +20 -16
  207. package/test-env/components/search_bar/search_box.js +4 -2
  208. package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
  209. package/test-env/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  210. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +2 -1
  211. package/test-env/components/table/sticky_header/context.js +41 -0
  212. package/test-env/components/table/sticky_header/index.js +19 -0
  213. package/test-env/components/table/sticky_header/sticky_header.js +156 -0
  214. package/test-env/components/table/sticky_header/sticky_header.styles.js +47 -0
  215. package/test-env/components/table/store/provider.js +46 -0
  216. package/test-env/components/table/store/store.js +87 -0
  217. package/test-env/components/table/table.js +28 -3
  218. package/test-env/components/table/table.styles.js +4 -4
  219. package/test-env/components/table/table_header_cell.js +119 -48
  220. package/test-env/components/table/table_header_cell_checkbox.js +62 -25
  221. package/test-env/components/text_truncate/text_truncate.js +8 -3
  222. package/test-env/components/tool_tip/tool_tip.js +1 -1
  223. package/test-env/components/tool_tip/tool_tip.styles.js +14 -5
  224. package/test-env/utils/publisher.js +59 -0
@@ -12,6 +12,7 @@ var _contrast = require("../../services/color/contrast");
12
12
  var _color = require("../../services/color");
13
13
  var _services = require("../../services");
14
14
  var _icon = require("../icon");
15
+ var _tool_tip = require("../tool_tip");
15
16
  var _avatar = require("./avatar.styles");
16
17
  var _react2 = require("@emotion/react");
17
18
  var _excluded = ["className", "color", "imageUrl", "initials", "initialsLength", "iconType", "iconSize", "iconColor", "name", "size", "type", "isDisabled", "style"],
@@ -116,21 +117,28 @@ var EuiAvatar = exports.EuiAvatar = function EuiAvatar(_ref) {
116
117
  // Fall back to the adjusted text color if it exists
117
118
  return avatarStyle === null || avatarStyle === void 0 ? void 0 : avatarStyle.color;
118
119
  }, [iconColor, avatarStyle === null || avatarStyle === void 0 ? void 0 : avatarStyle.color, isForcedColors, euiTheme]);
119
- return (0, _react2.jsx)("div", _extends({
120
+ var avatarNode = (0, _react2.jsx)("div", _extends({
120
121
  css: cssStyles,
121
122
  className: classes,
122
123
  style: _objectSpread(_objectSpread(_objectSpread({}, style), avatarStyle), highContrastBorder),
123
124
  "aria-label": isDisabled ? undefined : name,
124
- role: isDisabled ? 'presentation' : 'img',
125
- title: name
125
+ role: isDisabled ? 'presentation' : 'img'
126
126
  }, rest), !imageUrl && (iconType ? (0, _react2.jsx)(_icon.EuiIcon, {
127
127
  className: "euiAvatar__icon",
128
128
  size: iconSize || size,
129
129
  type: iconType,
130
- color: iconCustomColor
130
+ color: iconCustomColor,
131
+ "aria-hidden": true
131
132
  }) : (0, _react2.jsx)("span", {
132
133
  "aria-hidden": "true"
133
134
  }, (0, _services.toInitials)(name, initialsLength, initials))));
135
+
136
+ // `EuiAvatar` is not interactive so we don't need to add a `tabIndex`.
137
+ // It already has `aria-label`, the tooltip is only visual.
138
+ return name ? (0, _react2.jsx)(_tool_tip.EuiToolTip, {
139
+ content: name,
140
+ disableScreenReaderOutput: true
141
+ }, avatarNode) : avatarNode;
134
142
  };
135
143
 
136
144
  // TODO: Migrate to a service
@@ -166,7 +174,8 @@ EuiAvatar.propTypes = {
166
174
  */
167
175
  iconColor: _propTypes.default.oneOfType([_propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.any.isRequired]).isRequired, _propTypes.default.oneOf([null])]),
168
176
  /**
169
- * Full name of avatar for title attribute and calculating initial if not provided
177
+ * Full name of the avatar. Used as the accessible label (`aria-label`),
178
+ * tooltip content and used to derive initials when `initials` is not provided.
170
179
  */
171
180
  name: _propTypes.default.string.isRequired,
172
181
  /**
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.EuiBanner = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _services = require("../../services");
12
+ var _global_styling = require("../../global_styling");
13
+ var _i18n = require("../i18n");
14
+ var _title = require("../title");
15
+ var _button = require("../button");
16
+ var _text = require("../text");
17
+ var _accessibility = require("../accessibility");
18
+ var _banner = require("./banner.styles");
19
+ var _react2 = require("@emotion/react");
20
+ var _excluded = ["title", "headingElement", "text", "size", "color", "actionProps", "media", "onDismiss", "dismissButtonProps", "children", "className", "announceOnMount", "data-test-subj"];
21
+ /*
22
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
23
+ * or more contributor license agreements. Licensed under the Elastic License
24
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
25
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
26
+ * Side Public License, v 1.
27
+ */
28
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
29
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
30
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
31
+ 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); }
32
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
33
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
34
+ var EuiBanner = exports.EuiBanner = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
35
+ var title = _ref.title,
36
+ _ref$headingElement = _ref.headingElement,
37
+ headingElement = _ref$headingElement === void 0 ? 'h2' : _ref$headingElement,
38
+ text = _ref.text,
39
+ _ref$size = _ref.size,
40
+ size = _ref$size === void 0 ? 'm' : _ref$size,
41
+ _ref$color = _ref.color,
42
+ color = _ref$color === void 0 ? 'highlighted' : _ref$color,
43
+ actionProps = _ref.actionProps,
44
+ media = _ref.media,
45
+ onDismiss = _ref.onDismiss,
46
+ dismissButtonProps = _ref.dismissButtonProps,
47
+ children = _ref.children,
48
+ className = _ref.className,
49
+ _ref$announceOnMount = _ref.announceOnMount,
50
+ announceOnMount = _ref$announceOnMount === void 0 ? false : _ref$announceOnMount,
51
+ _ref$dataTestSubj = _ref['data-test-subj'],
52
+ dataTestSubj = _ref$dataTestSubj === void 0 ? 'euiBanner' : _ref$dataTestSubj,
53
+ rest = _objectWithoutProperties(_ref, _excluded);
54
+ var styles = (0, _services.useEuiMemoizedStyles)(_banner.euiBannerStyles);
55
+ var dismissAriaLabel = (0, _i18n.useEuiI18n)('euiBanner.dismissAriaLabel', 'Dismiss "{title}" announcement', {
56
+ title: title
57
+ });
58
+ var Heading = headingElement;
59
+ var headingSize = size === 's' ? 'xxs' : 'xs';
60
+ var primaryActionProps = actionProps === null || actionProps === void 0 ? void 0 : actionProps.primary;
61
+ var secondaryActionProps = actionProps === null || actionProps === void 0 ? void 0 : actionProps.secondary;
62
+ // a standalone secondary action is not supported
63
+ var hasActions = Boolean(primaryActionProps);
64
+ var componentClass = 'euiBanner';
65
+ var classes = (0, _classnames.default)(componentClass, className);
66
+ var backgroundColorStyles = (0, _global_styling.useEuiBackgroundColorCSS)()[color];
67
+ var cssStyles = [styles.euiBanner, backgroundColorStyles];
68
+ var containerCssStyles = [styles.container, onDismiss && styles.hasDismiss];
69
+ return (0, _react2.jsx)("div", _extends({
70
+ ref: ref,
71
+ className: classes,
72
+ css: cssStyles,
73
+ "data-size": size,
74
+ "data-color": color,
75
+ "data-test-subj": dataTestSubj
76
+ }, rest), (0, _react2.jsx)("div", {
77
+ className: "".concat(componentClass, "__container"),
78
+ css: containerCssStyles
79
+ }, media ? (0, _react2.jsx)("div", {
80
+ className: "".concat(componentClass, "__media"),
81
+ css: styles.media,
82
+ "data-test-subj": "".concat(dataTestSubj, "-media")
83
+ }, media) : null, (0, _react2.jsx)("div", {
84
+ className: "".concat(componentClass, "__body"),
85
+ css: styles.body
86
+ }, (0, _react2.jsx)("div", {
87
+ className: "".concat(componentClass, "__content"),
88
+ css: styles.content
89
+ }, (0, _react2.jsx)(_title.EuiTitle, {
90
+ size: headingSize
91
+ }, (0, _react2.jsx)(Heading, {
92
+ css: styles.title,
93
+ "data-test-subj": "".concat(dataTestSubj, "-title")
94
+ }, title)), onDismiss ? (0, _react2.jsx)(_button.EuiButtonIcon, _extends({
95
+ iconType: "cross",
96
+ color: "text",
97
+ "aria-label": dismissAriaLabel,
98
+ "data-test-subj": "".concat(dataTestSubj, "-dismiss")
99
+ }, dismissButtonProps, {
100
+ css: [styles.dismiss, dismissButtonProps === null || dismissButtonProps === void 0 ? void 0 : dismissButtonProps.css, ";label:EuiBanner;"],
101
+ onClick: onDismiss
102
+ })) : null, text ? (0, _react2.jsx)(_text.EuiText, {
103
+ css: styles.text,
104
+ size: "s",
105
+ color: "subdued",
106
+ "data-test-subj": "".concat(dataTestSubj, "-text")
107
+ }, text) : null, children && children), hasActions ? (0, _react2.jsx)("div", {
108
+ className: "".concat(componentClass, "__actions"),
109
+ css: styles.actions,
110
+ "data-test-subj": "".concat(dataTestSubj, "-actions")
111
+ }, primaryActionProps ? (0, _react2.jsx)(_button.EuiButton, _extends({
112
+ "data-test-subj": "".concat(dataTestSubj, "-primaryAction")
113
+ }, primaryActionProps, {
114
+ color: "primary",
115
+ size: "s"
116
+ })) : null, secondaryActionProps ? (0, _react2.jsx)(_button.EuiButtonEmpty, _extends({
117
+ "data-test-subj": "".concat(dataTestSubj, "-secondaryAction")
118
+ }, secondaryActionProps, {
119
+ color: "primary",
120
+ size: "s"
121
+ })) : null) : null)), announceOnMount && (0, _react2.jsx)(_accessibility.EuiLiveAnnouncer, null, title && title, title && text && ",\xA0", text && text, (title || text) && children && ",\xA0", children && children));
122
+ });
123
+ EuiBanner.propTypes = {
124
+ className: _propTypes.default.string,
125
+ "aria-label": _propTypes.default.string,
126
+ "data-test-subj": _propTypes.default.string,
127
+ css: _propTypes.default.any,
128
+ /** Heading shown at the top. */title: _propTypes.default.string.isRequired,
129
+ /**
130
+ * HTML element used to render the title.
131
+ * @default 'h2'
132
+ */
133
+ headingElement: _propTypes.default.oneOf(["h2", "h3", "h4", "h5", "h6"]),
134
+ /** Supporting copy rendered below the title. */text: _propTypes.default.node,
135
+ /** Extra content rendered directly below `text`. */children: _propTypes.default.node,
136
+ /** Illustration slot. Wrapped in a square (1:1) container. */media: _propTypes.default.node.isRequired,
137
+ /**
138
+ * Visual size variant.
139
+ * @default 'm'
140
+ */
141
+ size: _propTypes.default.any,
142
+ /**
143
+ * Defines the announcement background color.
144
+ * @default 'highlighted'
145
+ */
146
+ color: _propTypes.default.oneOf(["highlighted", "plain"]),
147
+ /** Optional action buttons. */actionProps: _propTypes.default.shape({
148
+ /** Primary call-to-action, rendered as an `EuiButton`. */primary: _propTypes.default.any,
149
+ /** Secondary action, rendered as an `EuiButtonEmpty`. Is only rendered when a primary action is available. */secondary: _propTypes.default.any
150
+ }),
151
+ /**
152
+ * When provided, a dismiss button is rendered in the top-right corner and
153
+ * this callback fires when the user activates it.
154
+ */
155
+ onDismiss: _propTypes.default.func,
156
+ /** Extra props spread onto the dismiss `EuiButtonIcon`. */dismissButtonProps: _propTypes.default.shape({
157
+ "aria-label": _propTypes.default.string,
158
+ "aria-labelledby": _propTypes.default.string,
159
+ /**
160
+ * Overall size of button.
161
+ * Matches the sizes of other EuiButtons
162
+ */
163
+ size: _propTypes.default.any,
164
+ /**
165
+ * Size of the icon only.
166
+ * This will not affect the overall size of the button
167
+ */
168
+ iconSize: _propTypes.default.any,
169
+ /**
170
+ * Applies the boolean state as the `aria-pressed` property to create a toggle button.
171
+ * *Only use when the readable text does not change between states.*
172
+ */
173
+ isSelected: _propTypes.default.bool,
174
+ /**
175
+ * Sets the display style for matching other EuiButton types.
176
+ * `base` is equivalent to a typical EuiButton
177
+ * `fill` is equivalent to a filled EuiButton
178
+ * `empty` (default) is equivalent to an EuiButtonEmpty
179
+ */
180
+ display: _propTypes.default.any,
181
+ /**
182
+ * Disables the button and changes the icon to a loading spinner
183
+ */
184
+ isLoading: _propTypes.default.bool,
185
+ className: _propTypes.default.string,
186
+ "data-test-subj": _propTypes.default.string,
187
+ css: _propTypes.default.any,
188
+ /**
189
+ * Controls the disabled behavior via the native `disabled` attribute.
190
+ */
191
+ isDisabled: _propTypes.default.bool,
192
+ /**
193
+ * NOTE: Beta feature, may be changed or removed in the future
194
+ *
195
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
196
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
197
+ *
198
+ * Use e.g. when a disabled button should have a tooltip.
199
+ */
200
+ hasAriaDisabled: _propTypes.default.bool
201
+ }),
202
+ /**
203
+ * When set to `true`, the content is announced by screen readers on mount.
204
+ * Use only when the announcement is immediately relevant, e.g. as feedback to user actions.
205
+ * Avoid using on initial page load as it may create noise for assistive technology users.
206
+ *
207
+ * @default false
208
+ */
209
+ announceOnMount: _propTypes.default.bool
210
+ };
211
+ EuiBanner.displayName = 'EuiBanner';
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiBannerStyles = void 0;
7
+ var _react = require("@emotion/react");
8
+ 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)."; } /*
9
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
10
+ * or more contributor license agreements. Licensed under the Elastic License
11
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
12
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
13
+ * Side Public License, v 1.
14
+ */
15
+ var CONTAINER_NAME = 'euiBanner';
16
+ var CQC_LAYOUTS = ['narrow', 'wide'];
17
+ var CQC_BREAKPOINTS = {
18
+ s: {
19
+ narrow: '(min-width: 401px)',
20
+ wide: '(min-width: 800px)'
21
+ },
22
+ m: {
23
+ narrow: '(min-width: 601px)',
24
+ wide: '(min-width: 1000px)'
25
+ }
26
+ };
27
+ var CQC_BREAKPOINT_NARROWEST = '(max-width: 400px)';
28
+
29
+ /** Maximum reading width for `text` and `children` slots. */
30
+ var TEXT_MAX_WIDTH = 1200;
31
+ var withContainerQuery = function withContainerQuery(_ref2) {
32
+ var layout = _ref2.layout,
33
+ styles = _ref2.styles;
34
+ return Object.keys(CQC_BREAKPOINTS).map(function (sizeKey) {
35
+ return "\n @container ".concat(CONTAINER_NAME, "--").concat(sizeKey, " ").concat(CQC_BREAKPOINTS[sizeKey][layout], " {\n ").concat(styles, "\n }\n ");
36
+ }).join('\n');
37
+ };
38
+ var _ref = process.env.NODE_ENV === "production" ? {
39
+ name: "qd171g-title",
40
+ styles: "[data-size='s'] &{display:inline;};label:title;"
41
+ } : {
42
+ name: "qd171g-title",
43
+ styles: "[data-size='s'] &{display:inline;};label:title;",
44
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
45
+ };
46
+ var euiBannerStyles = exports.euiBannerStyles = function euiBannerStyles(_ref3) {
47
+ var euiTheme = _ref3.euiTheme;
48
+ return {
49
+ euiBanner: /*#__PURE__*/(0, _react.css)("container-name:", CONTAINER_NAME, ";container-type:inline-size;position:relative;border:", euiTheme.border.thin, ";border-radius:", euiTheme.border.radius.medium, ";&[data-size='s']{container-name:", CONTAINER_NAME, " ", CONTAINER_NAME, "--s;}&[data-size='m']{container-name:", CONTAINER_NAME, " ", CONTAINER_NAME, "--m;};label:euiBanner;"),
50
+ container: /*#__PURE__*/(0, _react.css)("display:flex;flex-direction:column;align-items:stretch;gap:", euiTheme.size.m, ";padding-inline-start:", euiTheme.size.base, ";padding-inline-end:", euiTheme.size.base, ";[data-size='m'] &{padding-block:", euiTheme.size.base, ";}[data-size='s'] &{padding-block:", euiTheme.size.m, ";}", withContainerQuery({
51
+ layout: 'narrow',
52
+ styles: "\n flex-direction: row;\n align-items: flex-start;\n gap: ".concat(euiTheme.size.base, ";\n ")
53
+ }), ";;label:container;"),
54
+ media: /*#__PURE__*/(0, _react.css)("--euiBannerMediaSize:", "calc(".concat(euiTheme.size.base, " * 5)"), ";flex-shrink:0;inline-size:var(--euiBannerMediaSize);block-size:var(--euiBannerMediaSize);aspect-ratio:1/1;[data-size='s'] &{--euiBannerMediaSize:", "calc(".concat(euiTheme.size.base, " * 2)"), ";}", withContainerQuery({
55
+ layout: 'wide',
56
+ styles: "\n align-self: center;\n "
57
+ }), " img,svg{block-size:100%;inline-size:100%;};label:media;"),
58
+ body: /*#__PURE__*/(0, _react.css)("flex:1 1 auto;min-inline-size:0;display:flex;flex-direction:column;align-self:flex-start;inline-size:100%;gap:", euiTheme.size.m, ";", withContainerQuery({
59
+ layout: 'narrow',
60
+ styles: "\n align-self: center;\n inline-size: auto;\n "
61
+ }), " ", withContainerQuery({
62
+ layout: 'wide',
63
+ styles: "\n flex-direction: row;\n align-items: center;\n /* stretch to match the media's height so align-items has space to work */\n align-self: stretch;\n justify-content: space-between;\n gap: ".concat(euiTheme.size.xxl, ";\n ")
64
+ }), ";;label:body;"),
65
+ // At size `s` the content slot becomes a block container so the title and
66
+ // text flow inline. Other sizes keep the flex column with a fixed gap.
67
+ content: /*#__PURE__*/(0, _react.css)("flex:1 1 auto;min-inline-size:0;max-inline-size:", TEXT_MAX_WIDTH, "px;display:flex;flex-direction:column;gap:", euiTheme.size.xs, ";[data-size='s'] &{display:block;>*+*:not(.euiButtonIcon){margin-block-start:", euiTheme.size.s, ";}};label:content;"),
68
+ title: _ref,
69
+ text: /*#__PURE__*/(0, _react.css)("[data-size='s'] &{display:inline;&::before{content:'\xB7';display:inline-block;inline-size:calc(", euiTheme.size.s, " + ", euiTheme.size.xxs, ");text-align:center;color:", euiTheme.colors.textHeading, ";}};label:text;"),
70
+ actions: /*#__PURE__*/(0, _react.css)("display:flex;flex-direction:row;align-items:center;flex-wrap:nowrap;gap:", euiTheme.size.s, ";@container ", CONTAINER_NAME, " ", CQC_BREAKPOINT_NARROWEST, "{flex-wrap:wrap;>*{inline-size:100%;}}", withContainerQuery({
71
+ layout: 'wide',
72
+ styles: "\n /* Reverses source order so primary appears last (rightmost). */\n flex-direction: row-reverse;\n flex-shrink: 0;\n align-self: center;\n "
73
+ }), ";;label:actions;"),
74
+ hasDismiss: /*#__PURE__*/(0, _react.css)(withContainerQuery({
75
+ layout: 'narrow',
76
+ styles: "\n padding-inline-end: calc(".concat(euiTheme.size.s, " * 5);\n ")
77
+ }), ";;label:hasDismiss;"),
78
+ dismiss: /*#__PURE__*/(0, _react.css)("position:absolute;inset-block-start:", euiTheme.size.s, ";inset-inline-end:", euiTheme.size.s, ";color:", euiTheme.colors.textSubdued, ";;label:dismiss;")
79
+ };
80
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "EuiBanner", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _banner.EuiBanner;
10
+ }
11
+ });
12
+ var _banner = require("./banner");
@@ -25,8 +25,9 @@ var _i18n = require("../i18n");
25
25
  var _delay_render = require("../delay_render");
26
26
  var _accessibility2 = require("../../services/accessibility");
27
27
  var _basic_table = require("./basic_table.styles");
28
+ var _tool_tip = require("../tool_tip");
28
29
  var _react2 = require("@emotion/react");
29
- var _excluded = ["className", "loading", "items", "itemId", "columns", "pagination", "sorting", "selection", "onChange", "error", "noItemsMessage", "compressed", "itemIdToExpandedRowMap", "responsiveBreakpoint", "rowProps", "cellProps", "tableCaption", "rowHeader", "tableLayout", "hasBackground", "scrollableInline", "stickyScrollbar"],
30
+ var _excluded = ["className", "loading", "items", "itemId", "columns", "pagination", "sorting", "selection", "onChange", "error", "noItemsMessage", "compressed", "itemIdToExpandedRowMap", "responsiveBreakpoint", "rowProps", "cellProps", "tableCaption", "rowHeader", "tableLayout", "hasBackground", "scrollableInline", "stickyScrollbar", "stickyHeader"],
30
31
  _excluded2 = ["align", "render", "dataType", "isExpander", "textOnly", "name", "field", "description", "sortable", "footer", "mobileOptions", "nameTooltip"];
31
32
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
32
33
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
@@ -179,7 +180,11 @@ var EuiBasicTable = exports.EuiBasicTable = /*#__PURE__*/function (_Component) {
179
180
  var _ref4 = _slicedToArray(_ref3, 2),
180
181
  selectAllRows = _ref4[0],
181
182
  deselectRows = _ref4[1];
182
- return (0, _react2.jsx)(_form.EuiCheckbox, {
183
+ return (0, _react2.jsx)(_tool_tip.EuiToolTip, {
184
+ content: checked || indeterminate ? deselectRows : selectAllRows,
185
+ display: "block",
186
+ disableScreenReaderOutput: true
187
+ }, (0, _react2.jsx)(_form.EuiCheckbox, {
183
188
  id: _this.selectAllIdGenerator(),
184
189
  checked: checked,
185
190
  indeterminate: indeterminate,
@@ -187,9 +192,8 @@ var EuiBasicTable = exports.EuiBasicTable = /*#__PURE__*/function (_Component) {
187
192
  onChange: onChange,
188
193
  "data-test-subj": "checkboxSelectAll",
189
194
  "aria-label": checked || indeterminate ? deselectRows : selectAllRows,
190
- title: checked || indeterminate ? deselectRows : selectAllRows,
191
195
  label: isMobile ? selectAllRows : null
192
- });
196
+ }));
193
197
  });
194
198
  });
195
199
  _defineProperty(_this, "renderCopyChar", function (columnIndex) {
@@ -379,6 +383,7 @@ var EuiBasicTable = exports.EuiBasicTable = /*#__PURE__*/function (_Component) {
379
383
  hasBackground = _this$props2.hasBackground,
380
384
  scrollableInline = _this$props2.scrollableInline,
381
385
  stickyScrollbar = _this$props2.stickyScrollbar,
386
+ stickyHeader = _this$props2.stickyHeader,
382
387
  rest = _objectWithoutProperties(_this$props2, _excluded);
383
388
  var classes = (0, _classnames.default)('euiBasicTable', {
384
389
  'euiBasicTable-loading': loading
@@ -399,7 +404,8 @@ var EuiBasicTable = exports.EuiBasicTable = /*#__PURE__*/function (_Component) {
399
404
  hasBackground = _this$props3.hasBackground,
400
405
  loading = _this$props3.loading,
401
406
  scrollableInline = _this$props3.scrollableInline,
402
- stickyScrollbar = _this$props3.stickyScrollbar;
407
+ stickyScrollbar = _this$props3.stickyScrollbar,
408
+ stickyHeader = _this$props3.stickyHeader;
403
409
  return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_table.EuiTableHeaderMobile, {
404
410
  responsiveBreakpoint: responsiveBreakpoint
405
411
  }, this.renderSelectAll(true), this.renderTableMobileSort()), (0, _react2.jsx)(_services.OverrideCopiedTabularContent, null, (0, _react2.jsx)(_table.EuiTable, {
@@ -410,6 +416,7 @@ var EuiBasicTable = exports.EuiBasicTable = /*#__PURE__*/function (_Component) {
410
416
  hasBackground: hasBackground,
411
417
  scrollableInline: scrollableInline,
412
418
  stickyScrollbar: stickyScrollbar,
419
+ stickyHeader: stickyHeader,
413
420
  css: loading && _basic_table.safariLoadingWorkaround
414
421
  }, this.renderTableCaption(), this.renderTableHead(), this.renderTableBody(), this.renderTableFooter())));
415
422
  }
@@ -678,8 +685,9 @@ var EuiBasicTable = exports.EuiBasicTable = /*#__PURE__*/function (_Component) {
678
685
  }
679
686
  }, (0, _react2.jsx)(_icon.EuiIcon, {
680
687
  type: "minusCircle",
681
- color: "danger"
682
- }), " ", error));
688
+ color: "danger",
689
+ "aria-hidden": true
690
+ }), ' ', error));
683
691
  }
684
692
  }, {
685
693
  key: "renderEmptyMessage",
@@ -806,15 +814,18 @@ var EuiBasicTable = exports.EuiBasicTable = /*#__PURE__*/function (_Component) {
806
814
  index: displayedRowIndex + 1
807
815
  }
808
816
  }, function (selectThisRow) {
809
- return (0, _react2.jsx)(_form.EuiCheckbox, {
817
+ return (0, _react2.jsx)(_tool_tip.EuiToolTip, {
818
+ content: title || selectThisRow,
819
+ display: "block",
820
+ disableScreenReaderOutput: true
821
+ }, (0, _react2.jsx)(_form.EuiCheckbox, {
810
822
  id: "".concat(_this6.tableId).concat(key, "-checkbox"),
811
823
  disabled: disabled,
812
824
  checked: checked,
813
825
  onChange: onChange,
814
- title: title || selectThisRow,
815
826
  "aria-label": title || selectThisRow,
816
827
  "data-test-subj": "checkboxSelectRow-".concat(itemId)
817
- });
828
+ }));
818
829
  })), disabled];
819
830
  }
820
831
  }, {
@@ -102,10 +102,10 @@ var CollapsedItemActions = exports.CollapsedItemActions = function CollapsedItem
102
102
  var popoverButton = (0, _react2.jsx)(_button.EuiButtonIcon, {
103
103
  className: className,
104
104
  "aria-label": actionsDisabled ? allActionsButtonDisabledAriaLabel : allActionsButtonAriaLabel,
105
- title: actionsDisabled ? allActionsButtonDisabledAriaLabel : undefined,
106
105
  iconType: "boxesVertical",
107
106
  color: "text",
108
107
  isDisabled: actionsDisabled,
108
+ hasAriaDisabled: actionsDisabled,
109
109
  onClick: function onClick() {
110
110
  return setPopoverOpen(function (isOpen) {
111
111
  return !isOpen;
@@ -113,14 +113,15 @@ var CollapsedItemActions = exports.CollapsedItemActions = function CollapsedItem
113
113
  },
114
114
  "data-test-subj": "euiCollapsedItemActionsButton"
115
115
  });
116
- var withTooltip = !actionsDisabled && (0, _react2.jsx)(_tool_tip.EuiToolTip, {
117
- content: allActionsTooltip
116
+ var withTooltip = (0, _react2.jsx)(_tool_tip.EuiToolTip, {
117
+ content: actionsDisabled ? allActionsButtonDisabledAriaLabel : allActionsTooltip,
118
+ disableScreenReaderOutput: true
118
119
  }, popoverButton);
119
120
  return (0, _react2.jsx)(_popover.EuiPopover, {
120
121
  className: className,
121
122
  id: "".concat(itemId, "-actions"),
122
123
  isOpen: popoverOpen,
123
- button: withTooltip || popoverButton,
124
+ button: withTooltip,
124
125
  closePopover: closePopover,
125
126
  panelPaddingSize: "none",
126
127
  anchorPosition: "leftCenter"
@@ -57,16 +57,13 @@ var DefaultItemAction = exports.DefaultItemAction = function DefaultItemAction(_
57
57
  className: className,
58
58
  "aria-labelledby": ariaLabelId,
59
59
  isDisabled: !enabled,
60
+ hasAriaDisabled: !enabled,
60
61
  color: color,
61
62
  iconType: icon,
62
63
  onClick: onClick,
63
64
  href: href,
64
65
  target: action.target,
65
66
  "data-test-subj": dataTestSubj
66
- // If action is disabled, the normal tooltip can't show - attempt to
67
- // provide some amount of affordance with a browser title tooltip
68
- ,
69
- title: !enabled ? tooltipContent : undefined
70
67
  });
71
68
  // actionContent (action.name) is a ReactNode and must be rendered
72
69
  // to an element and referenced by ID for screen readers
@@ -78,6 +75,7 @@ var DefaultItemAction = exports.DefaultItemAction = function DefaultItemAction(_
78
75
  className: className,
79
76
  size: "s",
80
77
  isDisabled: !enabled,
78
+ hasAriaDisabled: !enabled,
81
79
  color: color,
82
80
  iconType: icon,
83
81
  onClick: onClick,
@@ -87,5 +85,5 @@ var DefaultItemAction = exports.DefaultItemAction = function DefaultItemAction(_
87
85
  flush: "right"
88
86
  }, actionContent);
89
87
  }
90
- return enabled ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_tool_tip.EuiToolTip, tooltipProps, button), ariaLabelledBy) : (0, _react2.jsx)(_react.default.Fragment, null, button, ariaLabelledBy);
88
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_tool_tip.EuiToolTip, tooltipProps, button), ariaLabelledBy);
91
89
  };
@@ -14,11 +14,12 @@ var _link = require("../link");
14
14
  var _popover = require("../popover");
15
15
  var _icon = require("../icon");
16
16
  var _i18n = require("../i18n");
17
+ var _tool_tip = require("../tool_tip");
17
18
  var _breadcrumb_content = require("./_breadcrumb_content.styles");
18
19
  var _react2 = require("@emotion/react");
19
- var _excluded = ["text", "truncate", "type", "href", "rel", "onClick", "popoverContent", "popoverProps", "className", "color", "isFirstBreadcrumb", "isLastBreadcrumb", "isOnlyBreadcrumb", "highlightLastBreadcrumb", "truncateLastBreadcrumb"],
20
+ var _excluded = ["text", "truncate", "type", "href", "rel", "onClick", "popoverContent", "popoverProps", "className", "color", "isFirstBreadcrumb", "isLastBreadcrumb", "isOnlyBreadcrumb", "highlightLastBreadcrumb", "truncateLastBreadcrumb", "title"],
20
21
  _excluded2 = ["css"],
21
- _excluded3 = ["popoverContent", "popoverProps", "color", "type", "title", "aria-current", "className", "isLastBreadcrumb", "breadcrumbCss", "truncationCss", "children"];
22
+ _excluded3 = ["popoverContent", "popoverProps", "color", "type", "title", "hasExplicitTitle", "aria-current", "className", "isLastBreadcrumb", "breadcrumbCss", "truncationCss", "children"];
22
23
  /*
23
24
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
24
25
  * or more contributor license agreements. Licensed under the Elastic License
@@ -58,6 +59,7 @@ var EuiBreadcrumbContent = exports.EuiBreadcrumbContent = function EuiBreadcrumb
58
59
  isOnlyBreadcrumb = _ref.isOnlyBreadcrumb,
59
60
  highlightLastBreadcrumb = _ref.highlightLastBreadcrumb,
60
61
  truncateLastBreadcrumb = _ref.truncateLastBreadcrumb,
62
+ propTitle = _ref.title,
61
63
  rest = _objectWithoutProperties(_ref, _excluded);
62
64
  var isApplication = type === 'application';
63
65
  var classes = (0, _classnames.default)('euiBreadcrumb__content', className);
@@ -80,8 +82,9 @@ var EuiBreadcrumbContent = exports.EuiBreadcrumbContent = function EuiBreadcrumb
80
82
  var linkColor = color || 'subdued';
81
83
  var ariaCurrent = highlightLastBreadcrumb ? 'page' : undefined;
82
84
  var interactionStyles = (isInteractiveBreadcrumb || isBreadcrumbWithPopover) && !isApplication && styles.isInteractive;
85
+ var hasExplicitTitle = propTitle != null && propTitle !== '';
83
86
  return (0, _react2.jsx)(_inner_text.EuiInnerText, null, function (ref, innerText) {
84
- var title = innerText === '' ? undefined : innerText;
87
+ var title = propTitle || (innerText === '' ? undefined : innerText);
85
88
  var baseProps = {
86
89
  ref: ref,
87
90
  title: title,
@@ -93,6 +96,8 @@ var EuiBreadcrumbContent = exports.EuiBreadcrumbContent = function EuiBreadcrumb
93
96
  var _ = baseProps.css,
94
97
  popoverButtonProps = _objectWithoutProperties(baseProps, _excluded2);
95
98
  return (0, _react2.jsx)(EuiBreadcrumbPopover, _extends({}, popoverButtonProps, {
99
+ title: title,
100
+ hasExplicitTitle: hasExplicitTitle,
96
101
  breadcrumbCss: [].concat(cssStyles, [interactionStyles]),
97
102
  truncationCss: truncationStyles,
98
103
  isLastBreadcrumb: isLastBreadcrumb,
@@ -312,6 +317,7 @@ var EuiBreadcrumbPopover = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2,
312
317
  color = _ref2.color,
313
318
  type = _ref2.type,
314
319
  title = _ref2.title,
320
+ hasExplicitTitle = _ref2.hasExplicitTitle,
315
321
  ariaCurrent = _ref2['aria-current'],
316
322
  className = _ref2.className,
317
323
  isLastBreadcrumb = _ref2.isLastBreadcrumb,
@@ -340,29 +346,33 @@ var EuiBreadcrumbPopover = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2,
340
346
  var wrapperStyles = [styles.popoverWrapper.euiBreadcrumb__popoverWrapper, !isLastBreadcrumb && styles.popoverWrapper[type]];
341
347
  var buttonStyles = [styles.euiBreadcrumb__popoverButton].concat(_toConsumableArray(breadcrumbCss));
342
348
  var truncationStyles = [styles.euiBreadcrumb__popoverTruncation].concat(_toConsumableArray(truncationCss));
349
+ var linkButton = (0, _react2.jsx)(_link.EuiLink, _extends({
350
+ ref: ref,
351
+ "aria-current": ariaCurrent,
352
+ className: className,
353
+ css: buttonStyles,
354
+ color: color,
355
+ onClick: togglePopover
356
+ }, rest), (0, _react2.jsx)("span", {
357
+ css: truncationStyles
358
+ }, children), (0, _react2.jsx)(_icon.EuiIcon, {
359
+ type: "chevronSingleDown",
360
+ size: "s",
361
+ "aria-label": " - ".concat(popoverAriaLabel)
362
+ }));
343
363
  return (0, _react2.jsx)(_popover.EuiPopover, _extends({}, popoverProps, {
344
364
  isOpen: isPopoverOpen,
345
365
  closePopover: closePopover,
346
366
  css: wrapperStyles,
347
- button: (0, _react2.jsx)(_link.EuiLink, _extends({
348
- ref: ref,
349
- title: title,
350
- "aria-current": ariaCurrent,
351
- className: className,
352
- css: buttonStyles,
353
- color: color,
354
- onClick: togglePopover
355
- }, rest), (0, _react2.jsx)("span", {
356
- css: truncationStyles
357
- }, children), (0, _react2.jsx)(_icon.EuiIcon, {
358
- type: "chevronSingleDown",
359
- size: "s",
360
- "aria-label": " - ".concat(popoverAriaLabel)
361
- }))
367
+ button: title ? (0, _react2.jsx)(_tool_tip.EuiToolTip, {
368
+ content: title,
369
+ disableScreenReaderOutput: !hasExplicitTitle
370
+ }, linkButton) : linkButton
362
371
  }), typeof popoverContent === 'function' ? popoverContent(closePopover) : popoverContent);
363
372
  });
364
373
  EuiBreadcrumbPopover.propTypes = {
365
374
  breadcrumbCss: _propTypes.default.any.isRequired,
366
- truncationCss: _propTypes.default.any.isRequired
375
+ truncationCss: _propTypes.default.any.isRequired,
376
+ hasExplicitTitle: _propTypes.default.bool.isRequired
367
377
  };
368
378
  EuiBreadcrumbPopover.displayName = 'EuiBreadcrumbPopover';
@@ -136,6 +136,7 @@ var EuiComboBoxOptionsList = exports.EuiComboBoxOptionsList = /*#__PURE__*/funct
136
136
  var optionIsFocused = activeOptionIndex === index;
137
137
  var optionIsDisabled = option.hasOwnProperty('disabled') && option.disabled === true;
138
138
  var hasOnFocusBadge = onFocusBadge && optionIsFocused && !optionIsDisabled;
139
+ var hasNativeTruncation = !hasTruncationProps && !searchValue && rowHeight !== 'auto';
139
140
  return (0, _react2.jsx)(_list_item_layout.EuiListItemLayout, _extends({
140
141
  element: "li",
141
142
  role: "option"
@@ -150,8 +151,8 @@ var EuiComboBoxOptionsList = exports.EuiComboBoxOptionsList = /*#__PURE__*/funct
150
151
  // loses focus on selecting an option (due to actively removing it from the list)
151
152
  ,
152
153
  id: rootId("_option-".concat(options.indexOf(option))),
154
+ title: hasNativeTruncation && !toolTipContent ? label : undefined,
153
155
  key: (_option$key = option.key) !== null && _option$key !== void 0 ? _option$key : option.label,
154
- title: label,
155
156
  prepend: option.prepend,
156
157
  append: hasOnFocusBadge ? (0, _react2.jsx)(_react.default.Fragment, null, option.append, hitEnterBadge) : option.append,
157
158
  checked: checked,