@elastic/eui 70.0.0 → 70.2.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 (209) hide show
  1. package/dist/eui_theme_dark.css +11 -180
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +11 -180
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/accessibility/screen_reader_only/screen_reader_only.js +1 -1
  6. package/es/components/accessibility/screen_reader_only/screen_reader_only.styles.js +1 -1
  7. package/es/components/accordion/accordion.a11y.js +35 -0
  8. package/es/components/badge/beta_badge/beta_badge.js +6 -6
  9. package/es/components/basic_table/in_memory_table.js +8 -0
  10. package/es/components/button/button_display/_button_display.js +7 -6
  11. package/es/components/button/button_display/_button_display.styles.js +4 -4
  12. package/es/components/button/button_display/_button_display_content.js +6 -9
  13. package/es/components/button/button_display/_button_display_content.styles.js +3 -41
  14. package/es/components/card/card.js +13 -31
  15. package/es/components/card/card.styles.js +15 -3
  16. package/es/components/card/card_select/card_select.styles.js +4 -4
  17. package/es/components/card/checkable_card/checkable_card.js +3 -2
  18. package/es/components/context_menu/context_menu_panel.a11y.js +34 -0
  19. package/es/components/datagrid/controls/column_selector.js +1 -1
  20. package/es/components/datagrid/controls/column_sorting.js +1 -1
  21. package/es/components/datagrid/controls/data_grid_toolbar.js +6 -2
  22. package/es/components/datagrid/controls/index.js +1 -0
  23. package/es/components/datagrid/controls/keyboard_shortcuts.js +191 -0
  24. package/es/components/datagrid/data_grid.js +12 -2
  25. package/es/components/date_picker/super_date_picker/super_date_picker.js +22 -4
  26. package/es/components/header/header_links/header_links.js +6 -0
  27. package/es/components/loading/loading_spinner.js +14 -3
  28. package/es/components/loading/loading_spinner.styles.js +11 -7
  29. package/es/components/modal/modal.js +17 -2
  30. package/es/components/page_template/page_template.js +6 -9
  31. package/es/components/popover/popover.js +13 -3
  32. package/es/components/popover/popover_arrow/_popover_arrow.js +1 -0
  33. package/es/components/popover/popover_panel/_popover_panel.js +8 -2
  34. package/es/components/popover/popover_panel/_popover_panel.styles.js +15 -1
  35. package/es/components/search_bar/search_bar.js +39 -5
  36. package/es/components/search_bar/search_box.js +37 -4
  37. package/es/components/selectable/selectable.a11y.js +118 -0
  38. package/es/components/selectable/selectable.js +9 -6
  39. package/es/components/tabs/tab.js +31 -7
  40. package/es/components/tabs/tab.styles.js +63 -0
  41. package/es/components/tabs/tabbed_content/tabbed_content.js +17 -1
  42. package/es/components/tabs/tabs.js +20 -14
  43. package/es/components/tabs/tabs.styles.js +21 -0
  44. package/es/components/tour/tour_step.js +6 -0
  45. package/es/services/string/to_initials.js +1 -1
  46. package/eui.d.ts +305 -198
  47. package/i18ntokens.json +442 -10
  48. package/lib/components/accessibility/screen_reader_only/screen_reader_only.js +1 -1
  49. package/lib/components/accessibility/screen_reader_only/screen_reader_only.styles.js +1 -1
  50. package/lib/components/accordion/accordion.a11y.js +44 -0
  51. package/lib/components/badge/beta_badge/beta_badge.js +6 -10
  52. package/lib/components/basic_table/in_memory_table.js +8 -0
  53. package/lib/components/button/button_display/_button_display.js +7 -6
  54. package/lib/components/button/button_display/_button_display.styles.js +4 -4
  55. package/lib/components/button/button_display/_button_display_content.js +6 -9
  56. package/lib/components/button/button_display/_button_display_content.styles.js +10 -40
  57. package/lib/components/card/card.js +14 -33
  58. package/lib/components/card/card.styles.js +15 -3
  59. package/lib/components/card/card_select/card_select.styles.js +4 -4
  60. package/lib/components/card/checkable_card/checkable_card.js +3 -2
  61. package/lib/components/context_menu/context_menu_panel.a11y.js +42 -0
  62. package/lib/components/datagrid/controls/column_selector.js +1 -1
  63. package/lib/components/datagrid/controls/column_sorting.js +1 -1
  64. package/lib/components/datagrid/controls/data_grid_toolbar.js +7 -2
  65. package/lib/components/datagrid/controls/index.js +8 -0
  66. package/lib/components/datagrid/controls/keyboard_shortcuts.js +208 -0
  67. package/lib/components/datagrid/data_grid.js +11 -1
  68. package/lib/components/date_picker/super_date_picker/super_date_picker.js +22 -4
  69. package/lib/components/header/header_links/header_links.js +6 -0
  70. package/lib/components/loading/loading_spinner.js +13 -2
  71. package/lib/components/loading/loading_spinner.styles.js +14 -6
  72. package/lib/components/modal/modal.js +23 -2
  73. package/lib/components/page_template/page_template.js +6 -9
  74. package/lib/components/popover/popover.js +13 -3
  75. package/lib/components/popover/popover_arrow/_popover_arrow.js +1 -0
  76. package/lib/components/popover/popover_panel/_popover_panel.js +8 -2
  77. package/lib/components/popover/popover_panel/_popover_panel.styles.js +16 -1
  78. package/lib/components/search_bar/search_bar.js +40 -5
  79. package/lib/components/search_bar/search_box.js +38 -4
  80. package/lib/components/selectable/selectable.a11y.js +122 -0
  81. package/lib/components/selectable/selectable.js +9 -6
  82. package/lib/components/tabs/tab.js +31 -6
  83. package/lib/components/tabs/tab.styles.js +69 -0
  84. package/lib/components/tabs/tabbed_content/tabbed_content.js +17 -1
  85. package/lib/components/tabs/tabs.js +24 -14
  86. package/lib/components/tabs/tabs.styles.js +32 -0
  87. package/lib/services/string/to_initials.js +1 -1
  88. package/optimize/es/components/accessibility/screen_reader_only/screen_reader_only.styles.js +1 -1
  89. package/optimize/es/components/accordion/accordion.a11y.js +35 -0
  90. package/optimize/es/components/badge/beta_badge/beta_badge.js +6 -6
  91. package/optimize/es/components/button/button_display/_button_display.js +6 -5
  92. package/optimize/es/components/button/button_display/_button_display.styles.js +4 -4
  93. package/optimize/es/components/button/button_display/_button_display_content.js +6 -9
  94. package/optimize/es/components/button/button_display/_button_display_content.styles.js +3 -41
  95. package/optimize/es/components/card/card.js +12 -30
  96. package/optimize/es/components/card/card.styles.js +15 -3
  97. package/optimize/es/components/card/card_select/card_select.styles.js +4 -4
  98. package/optimize/es/components/card/checkable_card/checkable_card.js +3 -2
  99. package/optimize/es/components/context_menu/context_menu_panel.a11y.js +34 -0
  100. package/optimize/es/components/datagrid/controls/column_selector.js +1 -1
  101. package/optimize/es/components/datagrid/controls/column_sorting.js +1 -1
  102. package/optimize/es/components/datagrid/controls/data_grid_toolbar.js +6 -2
  103. package/optimize/es/components/datagrid/controls/index.js +1 -0
  104. package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +181 -0
  105. package/optimize/es/components/datagrid/data_grid.js +6 -2
  106. package/optimize/es/components/date_picker/super_date_picker/super_date_picker.js +12 -4
  107. package/optimize/es/components/loading/loading_spinner.js +13 -3
  108. package/optimize/es/components/loading/loading_spinner.styles.js +11 -7
  109. package/optimize/es/components/modal/modal.js +17 -2
  110. package/optimize/es/components/page_template/page_template.js +6 -9
  111. package/optimize/es/components/popover/popover.js +7 -3
  112. package/optimize/es/components/popover/popover_arrow/_popover_arrow.js +1 -0
  113. package/optimize/es/components/popover/popover_panel/_popover_panel.js +6 -1
  114. package/optimize/es/components/popover/popover_panel/_popover_panel.styles.js +15 -1
  115. package/optimize/es/components/search_bar/search_bar.js +31 -5
  116. package/optimize/es/components/search_bar/search_box.js +29 -3
  117. package/optimize/es/components/selectable/selectable.a11y.js +107 -0
  118. package/optimize/es/components/selectable/selectable.js +9 -6
  119. package/optimize/es/components/tabs/tab.js +19 -7
  120. package/optimize/es/components/tabs/tab.styles.js +63 -0
  121. package/optimize/es/components/tabs/tabs.js +20 -14
  122. package/optimize/es/components/tabs/tabs.styles.js +21 -0
  123. package/optimize/es/services/string/to_initials.js +1 -1
  124. package/optimize/lib/components/accessibility/screen_reader_only/screen_reader_only.styles.js +1 -1
  125. package/optimize/lib/components/accordion/accordion.a11y.js +44 -0
  126. package/optimize/lib/components/badge/beta_badge/beta_badge.js +6 -13
  127. package/optimize/lib/components/button/button_display/_button_display.js +7 -6
  128. package/optimize/lib/components/button/button_display/_button_display.styles.js +4 -4
  129. package/optimize/lib/components/button/button_display/_button_display_content.js +6 -9
  130. package/optimize/lib/components/button/button_display/_button_display_content.styles.js +10 -40
  131. package/optimize/lib/components/card/card.js +13 -32
  132. package/optimize/lib/components/card/card.styles.js +15 -3
  133. package/optimize/lib/components/card/card_select/card_select.styles.js +4 -4
  134. package/optimize/lib/components/card/checkable_card/checkable_card.js +3 -2
  135. package/optimize/lib/components/context_menu/context_menu_panel.a11y.js +42 -0
  136. package/optimize/lib/components/datagrid/controls/column_selector.js +1 -1
  137. package/optimize/lib/components/datagrid/controls/column_sorting.js +1 -1
  138. package/optimize/lib/components/datagrid/controls/data_grid_toolbar.js +7 -2
  139. package/optimize/lib/components/datagrid/controls/index.js +8 -0
  140. package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +207 -0
  141. package/optimize/lib/components/datagrid/data_grid.js +5 -1
  142. package/optimize/lib/components/date_picker/super_date_picker/super_date_picker.js +12 -4
  143. package/optimize/lib/components/loading/loading_spinner.js +14 -2
  144. package/optimize/lib/components/loading/loading_spinner.styles.js +14 -6
  145. package/optimize/lib/components/modal/modal.js +22 -2
  146. package/optimize/lib/components/page_template/page_template.js +6 -9
  147. package/optimize/lib/components/popover/popover.js +7 -3
  148. package/optimize/lib/components/popover/popover_arrow/_popover_arrow.js +1 -0
  149. package/optimize/lib/components/popover/popover_panel/_popover_panel.js +6 -1
  150. package/optimize/lib/components/popover/popover_panel/_popover_panel.styles.js +16 -1
  151. package/optimize/lib/components/search_bar/search_bar.js +31 -5
  152. package/optimize/lib/components/search_bar/search_box.js +30 -3
  153. package/optimize/lib/components/selectable/selectable.a11y.js +122 -0
  154. package/optimize/lib/components/selectable/selectable.js +9 -6
  155. package/optimize/lib/components/tabs/tab.js +19 -6
  156. package/optimize/lib/components/tabs/tab.styles.js +69 -0
  157. package/optimize/lib/components/tabs/tabs.js +24 -14
  158. package/optimize/lib/components/tabs/tabs.styles.js +32 -0
  159. package/optimize/lib/services/string/to_initials.js +1 -1
  160. package/package.json +5 -4
  161. package/src/components/datagrid/_index.scss +1 -0
  162. package/src/components/datagrid/controls/_data_grid_keyboard_shortcuts.scss +17 -0
  163. package/src/components/datagrid/controls/_data_grid_toolbar.scss +0 -8
  164. package/src/components/index.scss +0 -1
  165. package/src/components/modal/_modal.scss +3 -1
  166. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  167. package/test-env/components/accessibility/screen_reader_only/screen_reader_only.js +1 -1
  168. package/test-env/components/accessibility/screen_reader_only/screen_reader_only.styles.js +1 -1
  169. package/test-env/components/accordion/accordion.a11y.js +44 -0
  170. package/test-env/components/badge/beta_badge/beta_badge.js +6 -13
  171. package/test-env/components/basic_table/in_memory_table.js +8 -0
  172. package/test-env/components/button/button_display/_button_display.js +7 -6
  173. package/test-env/components/button/button_display/_button_display.styles.js +4 -4
  174. package/test-env/components/button/button_display/_button_display_content.js +6 -9
  175. package/test-env/components/button/button_display/_button_display_content.styles.js +10 -40
  176. package/test-env/components/card/card.js +14 -33
  177. package/test-env/components/card/card.styles.js +15 -3
  178. package/test-env/components/card/card_select/card_select.styles.js +4 -4
  179. package/test-env/components/card/checkable_card/checkable_card.js +3 -2
  180. package/test-env/components/context_menu/context_menu_panel.a11y.js +42 -0
  181. package/test-env/components/datagrid/controls/column_selector.js +1 -1
  182. package/test-env/components/datagrid/controls/column_sorting.js +1 -1
  183. package/test-env/components/datagrid/controls/data_grid_toolbar.js +7 -2
  184. package/test-env/components/datagrid/controls/index.js +8 -0
  185. package/test-env/components/datagrid/controls/keyboard_shortcuts.js +207 -0
  186. package/test-env/components/datagrid/data_grid.js +11 -1
  187. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +22 -4
  188. package/test-env/components/header/header_links/header_links.js +6 -0
  189. package/test-env/components/loading/loading_spinner.js +14 -2
  190. package/test-env/components/loading/loading_spinner.styles.js +14 -6
  191. package/test-env/components/modal/modal.js +22 -2
  192. package/test-env/components/page_template/page_template.js +6 -9
  193. package/test-env/components/popover/popover.js +13 -3
  194. package/test-env/components/popover/popover_arrow/_popover_arrow.js +1 -0
  195. package/test-env/components/popover/popover_panel/_popover_panel.js +8 -2
  196. package/test-env/components/popover/popover_panel/_popover_panel.styles.js +16 -1
  197. package/test-env/components/search_bar/search_bar.js +39 -5
  198. package/test-env/components/search_bar/search_box.js +38 -4
  199. package/test-env/components/selectable/selectable.a11y.js +122 -0
  200. package/test-env/components/selectable/selectable.js +9 -6
  201. package/test-env/components/tabs/tab.js +31 -6
  202. package/test-env/components/tabs/tab.styles.js +69 -0
  203. package/test-env/components/tabs/tabbed_content/tabbed_content.js +17 -1
  204. package/test-env/components/tabs/tabs.js +24 -14
  205. package/test-env/components/tabs/tabs.styles.js +32 -0
  206. package/test-env/services/string/to_initials.js +1 -1
  207. package/src/components/tabs/_index.scss +0 -1
  208. package/src/components/tabs/_tabs.scss +0 -110
  209. package/src/themes/amsterdam/overrides/_tabs.scss +0 -80
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ var _react = _interopRequireWildcard(require("react"));
6
+
7
+ var _button = require("../button");
8
+
9
+ var _popover = require("../popover");
10
+
11
+ var _selectable = require("./selectable");
12
+
13
+ var _react2 = require("@emotion/react");
14
+
15
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
+
17
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+
19
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
20
+
21
+ 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."); }
22
+
23
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
24
+
25
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
26
+
27
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
28
+
29
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
30
+
31
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
32
+
33
+ var options = [{
34
+ label: 'Titan',
35
+ 'data-test-subj': 'titanOption'
36
+ }, {
37
+ label: 'Enceladus'
38
+ }, {
39
+ label: "Pandora is one of Saturn's moons, named for a Titaness of Greek mythology"
40
+ }];
41
+
42
+ var EuiSelectableListboxOnly = function EuiSelectableListboxOnly(args) {
43
+ return (0, _react2.jsx)(_selectable.EuiSelectable, _extends({
44
+ options: options
45
+ }, args), function (list) {
46
+ return (0, _react2.jsx)(_react.default.Fragment, null, list);
47
+ });
48
+ };
49
+
50
+ var EuiSelectableWithSearchInput = function EuiSelectableWithSearchInput(args) {
51
+ return (0, _react2.jsx)(_selectable.EuiSelectable, _extends({
52
+ searchable: true,
53
+ options: options
54
+ }, args), function (list, search) {
55
+ return (0, _react2.jsx)(_react.default.Fragment, null, search, list);
56
+ });
57
+ };
58
+
59
+ describe('EuiSelectable', function () {
60
+ describe('with a `searchable` configuration', function () {
61
+ it('has no accessibility errors', function () {
62
+ var onChange = cy.stub();
63
+ cy.realMount((0, _react2.jsx)(EuiSelectableWithSearchInput, {
64
+ onChange: onChange
65
+ }));
66
+ cy.checkAxe();
67
+ });
68
+ });
69
+ describe('without a `searchable` configuration', function () {
70
+ it('has no accessibility errors', function () {
71
+ var onChange = cy.stub();
72
+ cy.realMount((0, _react2.jsx)(EuiSelectableListboxOnly, {
73
+ "aria-label": "No search box",
74
+ onChange: onChange
75
+ }));
76
+ cy.checkAxe();
77
+ });
78
+ });
79
+ describe('nested in `EuiPopover` component', function () {
80
+ var EuiSelectableNested = function EuiSelectableNested() {
81
+ var _useState = (0, _react.useState)(false),
82
+ _useState2 = _slicedToArray(_useState, 2),
83
+ isPopoverOpen = _useState2[0],
84
+ setIsPopoverOpen = _useState2[1];
85
+
86
+ var onChange = function onChange() {};
87
+
88
+ var onClosePopover = function onClosePopover() {};
89
+
90
+ var onButtonClick = function onButtonClick() {
91
+ setIsPopoverOpen(!isPopoverOpen);
92
+ };
93
+
94
+ var button = (0, _react2.jsx)(_button.EuiButton, {
95
+ iconType: "arrowDown",
96
+ iconSide: "right",
97
+ onClick: onButtonClick
98
+ }, "Show popover");
99
+ return (0, _react2.jsx)(_popover.EuiPopover, {
100
+ id: "data-cy-popover-1",
101
+ panelPaddingSize: "s",
102
+ button: button,
103
+ isOpen: isPopoverOpen,
104
+ closePopover: onClosePopover
105
+ }, (0, _react2.jsx)(EuiSelectableWithSearchInput, {
106
+ "aria-label": "With popover",
107
+ options: options,
108
+ onChange: onChange
109
+ }, function (list) {
110
+ return (0, _react2.jsx)(_react.default.Fragment, null, list);
111
+ }));
112
+ };
113
+
114
+ it('has no accessibility errors', function () {
115
+ cy.realMount((0, _react2.jsx)(EuiSelectableNested, null));
116
+ cy.get('button').realClick();
117
+ cy.get('li[role=option]').first(); // Make sure the EuiSelectable is rendered before a11y check
118
+
119
+ cy.checkAxe();
120
+ });
121
+ });
122
+ });
@@ -619,25 +619,28 @@ var EuiSelectable = /*#__PURE__*/function (_Component) {
619
619
  }], [{
620
620
  key: "getDerivedStateFromProps",
621
621
  value: function getDerivedStateFromProps(nextProps, prevState) {
622
+ var _stateUpdate$searchVa;
623
+
622
624
  var options = nextProps.options,
623
625
  isPreFiltered = nextProps.isPreFiltered,
624
626
  searchProps = nextProps.searchProps;
625
627
  var activeOptionIndex = prevState.activeOptionIndex,
626
628
  searchValue = prevState.searchValue;
627
- var matchingOptions = (0, _matching_options.getMatchingOptions)(options, searchValue, isPreFiltered);
628
629
  var stateUpdate = {
629
- visibleOptions: matchingOptions,
630
+ searchValue: searchValue,
630
631
  activeOptionIndex: activeOptionIndex
631
632
  };
632
633
 
633
- if (activeOptionIndex != null && activeOptionIndex >= matchingOptions.length) {
634
- stateUpdate.activeOptionIndex = -1;
635
- }
636
-
637
634
  if ((searchProps === null || searchProps === void 0 ? void 0 : searchProps.value) != null && searchProps.value !== searchValue) {
638
635
  stateUpdate.searchValue = searchProps.value;
639
636
  }
640
637
 
638
+ stateUpdate.visibleOptions = (0, _matching_options.getMatchingOptions)(options, (_stateUpdate$searchVa = stateUpdate.searchValue) !== null && _stateUpdate$searchVa !== void 0 ? _stateUpdate$searchVa : '', isPreFiltered);
639
+
640
+ if (activeOptionIndex != null && activeOptionIndex >= stateUpdate.visibleOptions.length) {
641
+ stateUpdate.activeOptionIndex = -1;
642
+ }
643
+
641
644
  return stateUpdate;
642
645
  }
643
646
  }]);
@@ -15,9 +15,11 @@ var _services = require("../../services");
15
15
 
16
16
  var _href_validator = require("../../services/security/href_validator");
17
17
 
18
+ var _tab = require("./tab.styles");
19
+
18
20
  var _react2 = require("@emotion/react");
19
21
 
20
- var _excluded = ["isSelected", "children", "className", "disabled", "href", "target", "rel", "prepend", "append"];
22
+ var _excluded = ["isSelected", "children", "className", "disabled", "href", "target", "rel", "prepend", "append", "size", "expand"];
21
23
 
22
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
25
 
@@ -37,14 +39,21 @@ var EuiTab = function EuiTab(_ref) {
37
39
  rel = _ref.rel,
38
40
  prepend = _ref.prepend,
39
41
  append = _ref.append,
42
+ size = _ref.size,
43
+ expand = _ref.expand,
40
44
  rest = _objectWithoutProperties(_ref, _excluded);
41
45
 
46
+ var euiTheme = (0, _services.useEuiTheme)();
42
47
  var isHrefValid = !href || (0, _href_validator.validateHref)(href);
43
- var disabled = _disabled || !isHrefValid;
48
+ var disabled = _disabled || !isHrefValid; // Keep CSS classnames for reference
49
+
44
50
  var classes = (0, _classnames.default)('euiTab', className, {
45
- 'euiTab-isSelected': isSelected,
46
- 'euiTab-isDisabled': disabled
51
+ 'euiTab-isSelected': isSelected
47
52
  });
53
+ var tabStyles = (0, _tab.euiTabStyles)(euiTheme);
54
+ var cssTabStyles = [tabStyles.euiTab, expand && tabStyles.expanded, disabled && tabStyles.disabled.disabled, isSelected && (disabled ? tabStyles.disabled.selected : tabStyles.selected)];
55
+ var tabContentStyles = (0, _tab.euiTabContentStyles)(euiTheme);
56
+ var cssTabContentStyles = [tabContentStyles.euiTab__content, size && tabContentStyles[size], isSelected && tabContentStyles.selected, disabled && tabContentStyles.disabled];
48
57
  var prependNode = prepend && (0, _react2.jsx)("span", {
49
58
  className: "euiTab__prepend"
50
59
  }, prepend);
@@ -63,11 +72,13 @@ var EuiTab = function EuiTab(_ref) {
63
72
  role: "tab",
64
73
  "aria-selected": !!isSelected,
65
74
  className: classes,
75
+ css: cssTabStyles,
66
76
  href: href,
67
77
  target: target,
68
78
  rel: secureRel
69
79
  }, rest), prependNode, (0, _react2.jsx)("span", {
70
- className: "euiTab__content"
80
+ className: "euiTab__content",
81
+ css: cssTabContentStyles
71
82
  }, children), appendNode);
72
83
  }
73
84
 
@@ -76,9 +87,11 @@ var EuiTab = function EuiTab(_ref) {
76
87
  "aria-selected": !!isSelected,
77
88
  type: "button",
78
89
  className: classes,
90
+ css: cssTabStyles,
79
91
  disabled: disabled
80
92
  }, rest), prependNode, (0, _react2.jsx)("span", {
81
- className: "euiTab__content"
93
+ className: "euiTab__content",
94
+ css: cssTabContentStyles
82
95
  }, children), appendNode);
83
96
  };
84
97
 
@@ -108,6 +121,18 @@ EuiTab.propTypes = {
108
121
  * Will be excluded from interactive effects.
109
122
  */
110
123
  append: _propTypes.default.node,
124
+
125
+ /**
126
+ * Evenly stretches each tab to fill the
127
+ * horizontal space
128
+ */
129
+ expand: _propTypes.default.bool,
130
+
131
+ /**
132
+ * Sizes affect both font size and overall size.
133
+ * Only use the `xl` size when displayed as page titles.
134
+ */
135
+ size: _propTypes.default.any,
111
136
  className: _propTypes.default.string,
112
137
  "aria-label": _propTypes.default.string,
113
138
  "data-test-subj": _propTypes.default.string,
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiTabStyles = exports.euiTabContentStyles = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _global_styling = require("../../global_styling");
11
+
12
+ var _title = require("../title/title.styles");
13
+
14
+ 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)."; }
15
+
16
+ var _ref2 = process.env.NODE_ENV === "production" ? {
17
+ name: "10tso78-expanded",
18
+ styles: "flex-basis:0%;flex-grow:1;justify-content:center;label:expanded;"
19
+ } : {
20
+ name: "10tso78-expanded",
21
+ styles: "flex-basis:0%;flex-grow:1;justify-content:center;label:expanded;",
22
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
23
+ };
24
+
25
+ var euiTabStyles = function euiTabStyles(_ref3) {
26
+ var euiTheme = _ref3.euiTheme;
27
+ return {
28
+ euiTab: /*#__PURE__*/(0, _react.css)("display:flex;cursor:pointer;flex-direction:row;align-items:center;font-weight:", euiTheme.font.weight.semiBold, ";gap:", euiTheme.size.s, ";", (0, _global_styling.logicalCSS)('padding-vertical', 0), " ", (0, _global_styling.logicalCSS)('padding-horizontal', euiTheme.size.xs), " &:focus{background-color:transparent;outline-offset:-", euiTheme.focus.width, ";};label:euiTab;"),
29
+ // variations
30
+ expanded: _ref2,
31
+ selected: /*#__PURE__*/(0, _react.css)("box-shadow:inset 0 -", euiTheme.border.width.thick, " 0 ", euiTheme.colors.primary, ";;label:selected;"),
32
+ disabled: {
33
+ disabled: /*#__PURE__*/(0, _react.css)("cursor:not-allowed;color:", euiTheme.colors.disabledText, ";;label:disabled;"),
34
+ selected: /*#__PURE__*/(0, _react.css)("box-shadow:inset 0 -", euiTheme.border.width.thick, " 0 ", euiTheme.colors.disabledText, ";;label:selected;")
35
+ }
36
+ };
37
+ };
38
+
39
+ exports.euiTabStyles = euiTabStyles;
40
+
41
+ var _ref = process.env.NODE_ENV === "production" ? {
42
+ name: "1yhgei9-euiTab__content",
43
+ styles: "&:hover{text-decoration:none;};label:euiTab__content;"
44
+ } : {
45
+ name: "1yhgei9-euiTab__content",
46
+ styles: "&:hover{text-decoration:none;};label:euiTab__content;",
47
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
48
+ };
49
+
50
+ var euiTabContentStyles = function euiTabContentStyles(euiThemeContext) {
51
+ var euiTheme = euiThemeContext.euiTheme;
52
+ return {
53
+ euiTab__content: _ref,
54
+ // sizes
55
+ s: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 'xxxs'), ";line-height:", euiTheme.size.xl, ";;label:s;"),
56
+ m: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 'xxs'), ";line-height:", euiTheme.size.xxl, ";;label:m;"),
57
+ l: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 'xs'), ";line-height:", (0, _global_styling.mathWithUnits)([euiTheme.size.xl, euiTheme.size.s], function (x, y) {
58
+ return x + y;
59
+ }), ";;label:l;"),
60
+ xl: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 's'), ";line-height:", (0, _global_styling.mathWithUnits)([euiTheme.size.xxxl, euiTheme.size.s], function (x, y) {
61
+ return x + y;
62
+ }), ";;label:xl;"),
63
+ // variations
64
+ selected: /*#__PURE__*/(0, _react.css)("color:", euiTheme.colors.primaryText, ";;label:selected;"),
65
+ disabled: /*#__PURE__*/(0, _react.css)("color:", euiTheme.colors.disabledText, ";;label:disabled;")
66
+ };
67
+ };
68
+
69
+ exports.euiTabContentStyles = euiTabContentStyles;
@@ -254,6 +254,18 @@ EuiTabbedContent.propTypes = {
254
254
  * Will be excluded from interactive effects.
255
255
  */
256
256
  append: _propTypes.default.node,
257
+
258
+ /**
259
+ * Evenly stretches each tab to fill the
260
+ * horizontal space
261
+ */
262
+ expand: _propTypes.default.bool,
263
+
264
+ /**
265
+ * Sizes affect both font size and overall size.
266
+ * Only use the `xl` size when displayed as page titles.
267
+ */
268
+ size: _propTypes.default.any,
257
269
  className: _propTypes.default.string,
258
270
  "aria-label": _propTypes.default.string,
259
271
  "data-test-subj": _propTypes.default.string,
@@ -272,12 +284,14 @@ EuiTabbedContent.propTypes = {
272
284
  disabled: _propTypes.default.bool,
273
285
  prepend: _propTypes.default.node,
274
286
  append: _propTypes.default.node,
287
+ expand: _propTypes.default.bool,
288
+ size: _propTypes.default.any,
275
289
  className: _propTypes.default.string,
276
290
  "aria-label": _propTypes.default.string,
277
291
  "data-test-subj": _propTypes.default.string,
278
292
  css: _propTypes.default.any
279
293
  }),
280
- size: _propTypes.default.oneOf(["s", "m", "l", "xl"]),
294
+ size: _propTypes.default.any,
281
295
 
282
296
  /**
283
297
  * Each tab needs id and content properties, so we can associate it with its panel for accessibility.
@@ -291,6 +305,8 @@ EuiTabbedContent.propTypes = {
291
305
  disabled: _propTypes.default.bool,
292
306
  prepend: _propTypes.default.node,
293
307
  append: _propTypes.default.node,
308
+ expand: _propTypes.default.bool,
309
+ size: _propTypes.default.any,
294
310
  className: _propTypes.default.string,
295
311
  "aria-label": _propTypes.default.string,
296
312
  "data-test-subj": _propTypes.default.string,
@@ -11,7 +11,11 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
14
- var _common = require("../common");
14
+ var _services = require("../../services");
15
+
16
+ var _clone_element = require("../../services/theme/clone_element");
17
+
18
+ var _tabs = require("./tabs.styles");
15
19
 
16
20
  var _react2 = require("@emotion/react");
17
21
 
@@ -29,13 +33,7 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
29
33
 
30
34
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
31
35
 
32
- var sizeToClassNameMap = {
33
- s: 'euiTabs--small',
34
- m: null,
35
- l: 'euiTabs--large',
36
- xl: 'euiTabs--xlarge'
37
- };
38
- var SIZES = (0, _common.keysOf)(sizeToClassNameMap);
36
+ var SIZES = ['s', 'm', 'l', 'xl'];
39
37
  exports.SIZES = SIZES;
40
38
  var EuiTabs = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
41
39
  var children = _ref.children,
@@ -48,16 +46,28 @@ var EuiTabs = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
48
46
  size = _ref$size === void 0 ? 'm' : _ref$size,
49
47
  rest = _objectWithoutProperties(_ref, _excluded);
50
48
 
51
- var classes = (0, _classnames.default)('euiTabs', sizeToClassNameMap[size], {
52
- 'euiTabs--expand': expand,
53
- 'euiTabs--bottomBorder': bottomBorder
54
- }, className);
49
+ var euiTheme = (0, _services.useEuiTheme)();
50
+ var classes = (0, _classnames.default)('euiTabs', className);
51
+ var styles = (0, _tabs.euiTabsStyles)(euiTheme);
52
+ var cssStyles = [styles.euiTabs, styles[size], bottomBorder && styles.bottomBorder];
53
+
54
+ var tabItems = _react.default.Children.map(children, function (child) {
55
+ if ( /*#__PURE__*/_react.default.isValidElement(child)) {
56
+ return (0, _clone_element.cloneElementWithCss)(child, {
57
+ // we're passing the parent `size` and `expand` down to the children
58
+ size: size,
59
+ expand: expand
60
+ });
61
+ }
62
+ });
63
+
55
64
  return (0, _react2.jsx)("div", _extends({
56
65
  ref: ref,
57
- className: classes
66
+ className: classes,
67
+ css: cssStyles
58
68
  }, children && {
59
69
  role: 'tablist'
60
- }, rest), children);
70
+ }, rest), tabItems);
61
71
  });
62
72
  exports.EuiTabs = EuiTabs;
63
73
  EuiTabs.displayName = 'EuiTabs';
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiTabsStyles = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _global_styling = require("../../global_styling");
11
+
12
+ /*
13
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
14
+ * or more contributor license agreements. Licensed under the Elastic License
15
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
16
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
17
+ * Side Public License, v 1.
18
+ */
19
+ var euiTabsStyles = function euiTabsStyles(euiThemeContext) {
20
+ var euiTheme = euiThemeContext.euiTheme;
21
+ return {
22
+ euiTabs: /*#__PURE__*/(0, _react.css)("display:flex;", (0, _global_styling.logicalCSS)('max-width', '100%'), ";", (0, _global_styling.logicalCSSWithFallback)('overflow-x', 'auto'), ";", (0, _global_styling.logicalCSSWithFallback)('overflow-y', 'hidden'), ";position:relative;flex-shrink:0;;label:euiTabs;"),
23
+ bottomBorder: /*#__PURE__*/(0, _react.css)("box-shadow:inset 0 -", euiTheme.border.width.thin, " 0 ", euiTheme.border.color, ";;label:bottomBorder;"),
24
+ // sizes
25
+ s: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.m, ";;label:s;"),
26
+ m: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.base, ";;label:m;"),
27
+ l: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.l, ";;label:l;"),
28
+ xl: /*#__PURE__*/(0, _react.css)("gap:", euiTheme.size.xl, ";;label:xl;")
29
+ };
30
+ };
31
+
32
+ exports.euiTabsStyles = euiTabsStyles;
@@ -32,7 +32,7 @@ exports.MAX_INITIALS = MAX_INITIALS;
32
32
 
33
33
  function toInitials(name, initialsLength, initials) {
34
34
  // Calculate the number of initials to show, maxing out at MAX_INITIALS
35
- var calculatedInitialsLength = initials ? initials.split(' ').length : name.split(' ').length;
35
+ var calculatedInitialsLength = initials ? initials.split('').length : name.split(' ').length;
36
36
  calculatedInitialsLength = calculatedInitialsLength > MAX_INITIALS ? MAX_INITIALS : calculatedInitialsLength; // Check if initialsLength was passed and set to calculated, unless greater than MAX_INITIALS
37
37
 
38
38
  if (initialsLength) {
@@ -21,6 +21,6 @@ export var euiScreenReaderOnly = function euiScreenReaderOnly() {
21
21
 
22
22
  export var euiScreenReaderOnlyStyles = function euiScreenReaderOnlyStyles(showOnFocus) {
23
23
  return {
24
- euiScreenReaderOnly: showOnFocus ? /*#__PURE__*/css("&:not(:focus):not(:active){", euiScreenReaderOnly(), ";};label:euiScreenReaderOnly;") : /*#__PURE__*/css(euiScreenReaderOnly(), ";label:euiScreenReaderOnly;")
24
+ euiScreenReaderOnly: showOnFocus ? /*#__PURE__*/css("&:not(:focus):not(:active):not(:focus-within){", euiScreenReaderOnly(), ";};label:euiScreenReaderOnly;") : /*#__PURE__*/css(euiScreenReaderOnly(), ";label:euiScreenReaderOnly;")
25
25
  };
26
26
  };
@@ -0,0 +1,35 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+ /// <reference types="../../../cypress/support"/>
9
+ import React from 'react';
10
+ import { EuiAccordion } from './index';
11
+ import { EuiPanel } from '../../components/panel';
12
+ import { htmlIdGenerator } from '../../services';
13
+ import { jsx as ___EmotionJSX } from "@emotion/react";
14
+ var baseProps = {
15
+ buttonContent: 'Click me to toggle',
16
+ id: htmlIdGenerator()(),
17
+ initialIsOpen: false
18
+ };
19
+ var noArrow = {
20
+ arrowDisplay: 'none'
21
+ };
22
+ var noArrowProps = Object.assign(baseProps, noArrow);
23
+ describe('EuiAccordion', function () {
24
+ describe('Automated accessibility check', function () {
25
+ it('has zero violations when expanded', function () {
26
+ cy.mount(___EmotionJSX(EuiAccordion, noArrowProps, ___EmotionJSX(EuiPanel, {
27
+ color: "subdued"
28
+ }, "Any content inside of ", ___EmotionJSX("strong", null, "EuiAccordion"), " will appear here. We will include ", ___EmotionJSX("a", {
29
+ href: "#"
30
+ }, "a link"), " to confirm focus.")));
31
+ cy.get('button.euiAccordion__button').click();
32
+ cy.checkAxe();
33
+ });
34
+ });
35
+ });
@@ -10,7 +10,7 @@ var _excluded = ["className", "label", "color", "tooltipContent", "tooltipPositi
10
10
  * in compliance with, at your election, the Elastic License 2.0 or the Server
11
11
  * Side Public License, v 1.
12
12
  */
13
- import React, { Fragment } from 'react';
13
+ import React from 'react';
14
14
  import classNames from 'classnames';
15
15
  import { getSecureRelForTarget, useEuiTheme } from '../../../services';
16
16
  import { EuiToolTip } from '../../tool_tip';
@@ -94,7 +94,7 @@ export var EuiBetaBadge = function EuiBetaBadge(_ref) {
94
94
  anchorProps: anchorProps
95
95
  }, content);
96
96
  } else {
97
- return ___EmotionJSX(Fragment, null, content);
97
+ return ___EmotionJSX("span", anchorProps, content);
98
98
  }
99
99
  } else {
100
100
  if (tooltipContent) {
@@ -116,11 +116,11 @@ export var EuiBetaBadge = function EuiBetaBadge(_ref) {
116
116
  console.warn("Only string titles are permitted on badges that do not use tooltips. Found: ".concat(_typeof(spanTitle)));
117
117
  }
118
118
 
119
- return ___EmotionJSX("span", _extends({
120
- css: cssStyles,
119
+ return ___EmotionJSX("span", anchorProps, ___EmotionJSX("span", _extends({
121
120
  className: classes,
122
- title: spanTitle
123
- }, rest), icon || label);
121
+ title: spanTitle,
122
+ css: cssStyles
123
+ }, rest), icon || label));
124
124
  }
125
125
  }
126
126
  };
@@ -1,5 +1,5 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _extends from "@babel/runtime/helpers/extends";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
4
  var _excluded = ["children", "iconType", "iconSide", "iconSize", "size", "isDisabled", "disabled", "isLoading", "isSelected", "fullWidth", "minWidth", "contentProps", "textProps", "href", "target", "rel", "type", "style"];
5
5
 
@@ -39,7 +39,8 @@ export function isButtonDisabled(_ref) {
39
39
  export var EuiButtonDisplay = /*#__PURE__*/forwardRef(function (_ref2, ref) {
40
40
  var children = _ref2.children,
41
41
  iconType = _ref2.iconType,
42
- iconSide = _ref2.iconSide,
42
+ _ref2$iconSide = _ref2.iconSide,
43
+ iconSide = _ref2$iconSide === void 0 ? 'left' : _ref2$iconSide,
43
44
  iconSize = _ref2.iconSize,
44
45
  _ref2$size = _ref2.size,
45
46
  size = _ref2$size === void 0 ? 'm' : _ref2$size,
@@ -75,7 +76,7 @@ export var EuiButtonDisplay = /*#__PURE__*/forwardRef(function (_ref2, ref) {
75
76
  iconType: iconType,
76
77
  iconSide: iconSide,
77
78
  iconSize: iconSize,
78
- textProps: _objectSpread({}, textProps)
79
+ textProps: textProps
79
80
  }, contentProps), children);
80
81
 
81
82
  var element = href && !buttonIsDisabled ? 'a' : 'button';
@@ -104,8 +105,8 @@ export var EuiButtonDisplay = /*#__PURE__*/forwardRef(function (_ref2, ref) {
104
105
 
105
106
  return createElement(element, _objectSpread(_objectSpread(_objectSpread({
106
107
  css: cssStyles,
107
- style: minWidth ? _objectSpread(_objectSpread({}, style), {}, {
108
- minWidth: minWidth
108
+ style: minWidth != null ? _objectSpread(_objectSpread({}, style), {}, {
109
+ minInlineSize: minWidth
109
110
  }) : style,
110
111
  ref: ref
111
112
  }, elementProps), relObj), rest), innerNode);
@@ -20,11 +20,11 @@ var _buttonSize = function _buttonSize(size) {
20
20
  };
21
21
 
22
22
  var _ref = process.env.NODE_ENV === "production" ? {
23
- name: "vifhyf-isDisabled",
24
- styles: "pointer-events:none;cursor:not-allowed;label:isDisabled;"
23
+ name: "8595p9-isDisabled",
24
+ styles: "cursor:not-allowed;label:isDisabled;"
25
25
  } : {
26
- name: "vifhyf-isDisabled",
27
- styles: "pointer-events:none;cursor:not-allowed;label:isDisabled;",
26
+ name: "8595p9-isDisabled",
27
+ styles: "cursor:not-allowed;label:isDisabled;",
28
28
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
29
29
  };
30
30
 
@@ -28,14 +28,13 @@ export var EuiButtonDisplayContent = function EuiButtonDisplayContent(_ref) {
28
28
  iconType = _ref.iconType,
29
29
  _ref$iconSize = _ref.iconSize,
30
30
  iconSize = _ref$iconSize === void 0 ? 'm' : _ref$iconSize,
31
- iconSide = _ref.iconSide,
31
+ _ref$iconSide = _ref.iconSide,
32
+ iconSide = _ref$iconSide === void 0 ? 'left' : _ref$iconSide,
32
33
  contentProps = _objectWithoutProperties(_ref, _excluded);
33
34
 
34
35
  var theme = useEuiTheme();
35
36
  var styles = euiButtonDisplayContentStyles(theme);
36
- var cssStyles = [styles.euiButtonDisplayContent, iconSide && styles[iconSide]];
37
- var cssSpinnerStyles = [styles.euiButtonDisplayContent__spinner];
38
- var cssIconStyles = [styles.euiButtonDisplayContent__icon, iconSize && styles[iconSize]]; // Add an icon to the button if one exists.
37
+ var cssStyles = [styles.euiButtonDisplayContent]; // Add an icon to the button if one exists.
39
38
 
40
39
  var icon; // When the button is disabled the text gets gray
41
40
  // and in some buttons the background gets a light gray
@@ -44,18 +43,16 @@ export var EuiButtonDisplayContent = function EuiButtonDisplayContent(_ref) {
44
43
  // are always visible. The default spinner color could be very light.
45
44
 
46
45
  var loadingSpinnerColor = isDisabled ? {
47
- border: 'currentColor'
46
+ border: 'currentcolor'
48
47
  } : undefined;
49
48
 
50
49
  if (isLoading) {
51
50
  icon = ___EmotionJSX(EuiLoadingSpinner, {
52
- css: cssSpinnerStyles,
53
51
  size: iconSize,
54
52
  color: loadingSpinnerColor
55
53
  });
56
54
  } else if (iconType) {
57
55
  icon = ___EmotionJSX(EuiIcon, {
58
- css: cssIconStyles,
59
56
  type: iconType,
60
57
  size: iconSize,
61
58
  color: "inherit" // forces the icon to inherit its parent color
@@ -66,7 +63,7 @@ export var EuiButtonDisplayContent = function EuiButtonDisplayContent(_ref) {
66
63
  var isText = typeof children === 'string';
67
64
  return ___EmotionJSX("span", _extends({
68
65
  css: cssStyles
69
- }, contentProps), icon, isText ? ___EmotionJSX("span", _extends({}, textProps, {
66
+ }, contentProps), iconSide === 'left' && icon, isText || textProps ? ___EmotionJSX("span", _extends({}, textProps, {
70
67
  className: classNames('eui-textTruncate', textProps === null || textProps === void 0 ? void 0 : textProps.className)
71
- }), children) : children);
68
+ }), children) : children, iconSide === 'right' && icon);
72
69
  };