@elastic/eui 71.1.0 → 72.1.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/dist/eui_charts_theme.js +13 -1
  2. package/dist/eui_charts_theme.js.map +1 -1
  3. package/dist/eui_theme_dark.css +20 -176
  4. package/dist/eui_theme_dark.min.css +1 -1
  5. package/dist/eui_theme_light.css +20 -176
  6. package/dist/eui_theme_light.min.css +1 -1
  7. package/es/components/basic_table/basic_table.js +2 -2
  8. package/es/components/basic_table/in_memory_table.js +3 -6
  9. package/es/components/basic_table/table.a11y.js +128 -0
  10. package/es/components/color_picker/color_picker.styles.js +16 -0
  11. package/es/components/color_picker/color_stops/color_stop_thumb.js +19 -7
  12. package/es/components/color_picker/color_stops/color_stop_thumb.styles.js +59 -0
  13. package/es/components/color_picker/color_stops/color_stops.js +25 -15
  14. package/es/components/color_picker/color_stops/color_stops.styles.js +65 -0
  15. package/es/components/date_picker/auto_refresh/refresh_interval.js +3 -1
  16. package/es/components/date_picker/super_date_picker/quick_select_popover/commonly_used_time_ranges.js +5 -2
  17. package/es/components/date_picker/super_date_picker/quick_select_popover/quick_select.js +3 -1
  18. package/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +160 -173
  19. package/es/components/date_picker/super_date_picker/quick_select_popover/recently_used.js +5 -2
  20. package/es/components/date_picker/super_date_picker/super_date_picker.js +16 -0
  21. package/es/components/error_boundary/error_boundary.a11y.js +67 -0
  22. package/es/components/expression/expression.a11y.js +254 -0
  23. package/es/components/filter_group/filter_group.a11y.js +281 -0
  24. package/es/components/focus_trap/focus_trap.a11y.js +131 -0
  25. package/es/components/form/file_picker/file_picker.js +1 -0
  26. package/es/components/form/range/range_highlight.styles.js +1 -1
  27. package/es/components/form/range/range_levels.styles.js +1 -1
  28. package/es/components/form/range/range_track.js +5 -2
  29. package/es/components/header/header.a11y.js +374 -0
  30. package/es/components/icon/icon_ML.a11y.js +33 -0
  31. package/es/components/icon/icon_apps.a11y.js +33 -0
  32. package/es/components/icon/icon_editor.a11y.js +33 -0
  33. package/es/components/icon/icon_elastic.a11y.js +33 -0
  34. package/es/components/icon/icon_glyphs.a11y.js +33 -0
  35. package/es/components/icon/icon_tokens.a11y.js +33 -0
  36. package/es/components/image/image.a11y.js +55 -0
  37. package/es/components/key_pad_menu/key_pad_menu.a11y.js +158 -0
  38. package/es/components/markdown_editor/plugins/markdown_default_plugins/parsing_plugins.js +1 -1
  39. package/es/components/popover/popover.js +2 -2
  40. package/es/components/selectable/selectable.js +4 -3
  41. package/es/components/selectable/selectable_list/selectable_list.js +17 -5
  42. package/es/components/table/table_footer_cell.js +1 -1
  43. package/es/components/table/table_header_cell.js +1 -1
  44. package/es/components/table/table_row_cell.js +2 -2
  45. package/es/components/tabs/tab.js +7 -17
  46. package/es/components/tabs/tabbed_content/tabbed_content.js +0 -16
  47. package/es/components/tabs/tabs.js +7 -11
  48. package/es/components/tabs/tabs_context.js +13 -0
  49. package/es/services/color/manipulation.js +9 -0
  50. package/es/services/index.js +11 -11
  51. package/eui.d.ts +195 -138
  52. package/i18ntokens.json +46 -30
  53. package/lib/components/basic_table/basic_table.js +2 -2
  54. package/lib/components/basic_table/in_memory_table.js +3 -6
  55. package/lib/components/basic_table/table.a11y.js +139 -0
  56. package/lib/components/color_picker/color_picker.styles.js +26 -0
  57. package/lib/components/color_picker/color_stops/color_stop_thumb.js +19 -6
  58. package/lib/components/color_picker/color_stops/color_stop_thumb.styles.js +69 -0
  59. package/lib/components/color_picker/color_stops/color_stops.js +25 -14
  60. package/lib/components/color_picker/color_stops/color_stops.styles.js +73 -0
  61. package/lib/components/date_picker/auto_refresh/refresh_interval.js +3 -1
  62. package/lib/components/date_picker/super_date_picker/quick_select_popover/commonly_used_time_ranges.js +5 -2
  63. package/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select.js +3 -1
  64. package/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +155 -168
  65. package/lib/components/date_picker/super_date_picker/quick_select_popover/recently_used.js +5 -2
  66. package/lib/components/date_picker/super_date_picker/super_date_picker.js +16 -0
  67. package/lib/components/error_boundary/error_boundary.a11y.js +75 -0
  68. package/lib/components/expression/expression.a11y.js +262 -0
  69. package/lib/components/filter_group/filter_group.a11y.js +287 -0
  70. package/lib/components/focus_trap/focus_trap.a11y.js +140 -0
  71. package/lib/components/form/file_picker/file_picker.js +1 -0
  72. package/lib/components/form/range/range_highlight.styles.js +1 -1
  73. package/lib/components/form/range/range_levels.styles.js +1 -1
  74. package/lib/components/form/range/range_track.js +6 -2
  75. package/lib/components/header/header.a11y.js +385 -0
  76. package/lib/components/icon/icon_ML.a11y.js +40 -0
  77. package/lib/components/icon/icon_apps.a11y.js +40 -0
  78. package/lib/components/icon/icon_editor.a11y.js +40 -0
  79. package/lib/components/icon/icon_elastic.a11y.js +40 -0
  80. package/lib/components/icon/icon_glyphs.a11y.js +40 -0
  81. package/lib/components/icon/icon_tokens.a11y.js +40 -0
  82. package/lib/components/image/image.a11y.js +61 -0
  83. package/lib/components/key_pad_menu/key_pad_menu.a11y.js +163 -0
  84. package/lib/components/markdown_editor/plugins/markdown_default_plugins/parsing_plugins.js +2 -2
  85. package/lib/components/popover/popover.js +2 -2
  86. package/lib/components/selectable/selectable.js +4 -3
  87. package/lib/components/selectable/selectable_list/selectable_list.js +17 -5
  88. package/lib/components/table/table_footer_cell.js +1 -1
  89. package/lib/components/table/table_header_cell.js +1 -1
  90. package/lib/components/table/table_row_cell.js +2 -2
  91. package/lib/components/tabs/tab.js +14 -17
  92. package/lib/components/tabs/tabbed_content/tabbed_content.js +0 -16
  93. package/lib/components/tabs/tabs.js +8 -14
  94. package/lib/components/tabs/tabs_context.js +23 -0
  95. package/lib/services/color/manipulation.js +14 -2
  96. package/lib/services/index.js +65 -58
  97. package/optimize/es/components/basic_table/table.a11y.js +128 -0
  98. package/optimize/es/components/color_picker/color_picker.styles.js +16 -0
  99. package/optimize/es/components/color_picker/color_stops/color_stop_thumb.js +19 -7
  100. package/optimize/es/components/color_picker/color_stops/color_stop_thumb.styles.js +59 -0
  101. package/optimize/es/components/color_picker/color_stops/color_stops.js +25 -15
  102. package/optimize/es/components/color_picker/color_stops/color_stops.styles.js +65 -0
  103. package/optimize/es/components/date_picker/auto_refresh/refresh_interval.js +3 -1
  104. package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/commonly_used_time_ranges.js +5 -2
  105. package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/quick_select.js +3 -1
  106. package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +145 -169
  107. package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/recently_used.js +5 -2
  108. package/optimize/es/components/date_picker/super_date_picker/super_date_picker.js +2 -0
  109. package/optimize/es/components/error_boundary/error_boundary.a11y.js +67 -0
  110. package/optimize/es/components/expression/expression.a11y.js +243 -0
  111. package/optimize/es/components/filter_group/filter_group.a11y.js +271 -0
  112. package/optimize/es/components/focus_trap/focus_trap.a11y.js +120 -0
  113. package/optimize/es/components/form/file_picker/file_picker.js +1 -0
  114. package/optimize/es/components/form/range/range_highlight.styles.js +1 -1
  115. package/optimize/es/components/form/range/range_levels.styles.js +1 -1
  116. package/optimize/es/components/form/range/range_track.js +5 -2
  117. package/optimize/es/components/header/header.a11y.js +364 -0
  118. package/optimize/es/components/icon/icon_ML.a11y.js +33 -0
  119. package/optimize/es/components/icon/icon_apps.a11y.js +33 -0
  120. package/optimize/es/components/icon/icon_editor.a11y.js +33 -0
  121. package/optimize/es/components/icon/icon_elastic.a11y.js +33 -0
  122. package/optimize/es/components/icon/icon_glyphs.a11y.js +33 -0
  123. package/optimize/es/components/icon/icon_tokens.a11y.js +33 -0
  124. package/optimize/es/components/image/image.a11y.js +55 -0
  125. package/optimize/es/components/key_pad_menu/key_pad_menu.a11y.js +148 -0
  126. package/optimize/es/components/markdown_editor/plugins/markdown_default_plugins/parsing_plugins.js +1 -1
  127. package/optimize/es/components/popover/popover.js +2 -2
  128. package/optimize/es/components/selectable/selectable.js +2 -2
  129. package/optimize/es/components/selectable/selectable_list/selectable_list.js +15 -4
  130. package/optimize/es/components/tabs/tab.js +7 -5
  131. package/optimize/es/components/tabs/tabs.js +7 -11
  132. package/optimize/es/components/tabs/tabs_context.js +13 -0
  133. package/optimize/es/services/color/manipulation.js +9 -0
  134. package/optimize/es/services/index.js +11 -11
  135. package/optimize/lib/components/basic_table/table.a11y.js +139 -0
  136. package/optimize/lib/components/color_picker/color_picker.styles.js +26 -0
  137. package/optimize/lib/components/color_picker/color_stops/color_stop_thumb.js +19 -6
  138. package/optimize/lib/components/color_picker/color_stops/color_stop_thumb.styles.js +69 -0
  139. package/optimize/lib/components/color_picker/color_stops/color_stops.js +25 -14
  140. package/optimize/lib/components/color_picker/color_stops/color_stops.styles.js +73 -0
  141. package/optimize/lib/components/date_picker/auto_refresh/refresh_interval.js +3 -1
  142. package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/commonly_used_time_ranges.js +5 -2
  143. package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select.js +3 -1
  144. package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +146 -167
  145. package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/recently_used.js +5 -2
  146. package/optimize/lib/components/date_picker/super_date_picker/super_date_picker.js +2 -0
  147. package/optimize/lib/components/error_boundary/error_boundary.a11y.js +75 -0
  148. package/optimize/lib/components/expression/expression.a11y.js +254 -0
  149. package/optimize/lib/components/filter_group/filter_group.a11y.js +287 -0
  150. package/optimize/lib/components/focus_trap/focus_trap.a11y.js +140 -0
  151. package/optimize/lib/components/form/file_picker/file_picker.js +1 -0
  152. package/optimize/lib/components/form/range/range_highlight.styles.js +1 -1
  153. package/optimize/lib/components/form/range/range_levels.styles.js +1 -1
  154. package/optimize/lib/components/form/range/range_track.js +6 -2
  155. package/optimize/lib/components/header/header.a11y.js +385 -0
  156. package/optimize/lib/components/icon/icon_ML.a11y.js +40 -0
  157. package/optimize/lib/components/icon/icon_apps.a11y.js +40 -0
  158. package/optimize/lib/components/icon/icon_editor.a11y.js +40 -0
  159. package/optimize/lib/components/icon/icon_elastic.a11y.js +40 -0
  160. package/optimize/lib/components/icon/icon_glyphs.a11y.js +40 -0
  161. package/optimize/lib/components/icon/icon_tokens.a11y.js +40 -0
  162. package/optimize/lib/components/image/image.a11y.js +61 -0
  163. package/optimize/lib/components/key_pad_menu/key_pad_menu.a11y.js +163 -0
  164. package/optimize/lib/components/markdown_editor/plugins/markdown_default_plugins/parsing_plugins.js +2 -2
  165. package/optimize/lib/components/popover/popover.js +2 -2
  166. package/optimize/lib/components/selectable/selectable.js +2 -2
  167. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +15 -4
  168. package/optimize/lib/components/tabs/tab.js +15 -5
  169. package/optimize/lib/components/tabs/tabs.js +8 -14
  170. package/optimize/lib/components/tabs/tabs_context.js +23 -0
  171. package/optimize/lib/services/color/manipulation.js +14 -2
  172. package/optimize/lib/services/index.js +65 -58
  173. package/package.json +4 -6
  174. package/src/components/color_picker/_index.scss +0 -1
  175. package/src/components/date_picker/super_date_picker/quick_select_popover/_quick_select_popover.scss +14 -0
  176. package/src/components/form/file_picker/_file_picker.scss +14 -14
  177. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  178. package/test-env/components/basic_table/basic_table.js +2 -2
  179. package/test-env/components/basic_table/in_memory_table.js +3 -6
  180. package/test-env/components/basic_table/table.a11y.js +139 -0
  181. package/test-env/components/color_picker/color_picker.styles.js +26 -0
  182. package/test-env/components/color_picker/color_stops/color_stop_thumb.js +19 -6
  183. package/test-env/components/color_picker/color_stops/color_stop_thumb.styles.js +69 -0
  184. package/test-env/components/color_picker/color_stops/color_stops.js +25 -14
  185. package/test-env/components/color_picker/color_stops/color_stops.styles.js +73 -0
  186. package/test-env/components/date_picker/auto_refresh/refresh_interval.js +3 -1
  187. package/test-env/components/date_picker/super_date_picker/quick_select_popover/commonly_used_time_ranges.js +5 -2
  188. package/test-env/components/date_picker/super_date_picker/quick_select_popover/quick_select.js +3 -1
  189. package/test-env/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +153 -166
  190. package/test-env/components/date_picker/super_date_picker/quick_select_popover/recently_used.js +5 -2
  191. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +16 -0
  192. package/test-env/components/error_boundary/error_boundary.a11y.js +75 -0
  193. package/test-env/components/expression/expression.a11y.js +254 -0
  194. package/test-env/components/filter_group/filter_group.a11y.js +287 -0
  195. package/test-env/components/focus_trap/focus_trap.a11y.js +140 -0
  196. package/test-env/components/form/file_picker/file_picker.js +1 -0
  197. package/test-env/components/form/range/range_highlight.styles.js +1 -1
  198. package/test-env/components/form/range/range_levels.styles.js +1 -1
  199. package/test-env/components/form/range/range_track.js +6 -2
  200. package/test-env/components/header/header.a11y.js +385 -0
  201. package/test-env/components/icon/icon_ML.a11y.js +40 -0
  202. package/test-env/components/icon/icon_apps.a11y.js +40 -0
  203. package/test-env/components/icon/icon_editor.a11y.js +40 -0
  204. package/test-env/components/icon/icon_elastic.a11y.js +40 -0
  205. package/test-env/components/icon/icon_glyphs.a11y.js +40 -0
  206. package/test-env/components/icon/icon_tokens.a11y.js +40 -0
  207. package/test-env/components/image/image.a11y.js +61 -0
  208. package/test-env/components/key_pad_menu/key_pad_menu.a11y.js +163 -0
  209. package/test-env/components/markdown_editor/plugins/markdown_default_plugins/parsing_plugins.js +2 -2
  210. package/test-env/components/popover/popover.js +2 -2
  211. package/test-env/components/selectable/selectable.js +4 -3
  212. package/test-env/components/selectable/selectable_list/selectable_list.js +17 -5
  213. package/test-env/components/table/table_footer_cell.js +1 -1
  214. package/test-env/components/table/table_header_cell.js +1 -1
  215. package/test-env/components/table/table_row_cell.js +2 -2
  216. package/test-env/components/tabs/tab.js +15 -17
  217. package/test-env/components/tabs/tabbed_content/tabbed_content.js +0 -16
  218. package/test-env/components/tabs/tabs.js +8 -14
  219. package/test-env/components/tabs/tabs_context.js +23 -0
  220. package/test-env/services/color/manipulation.js +14 -2
  221. package/test-env/services/index.js +65 -58
  222. package/src/components/color_picker/color_stops/_color_stops.scss +0 -101
  223. package/src/components/color_picker/color_stops/_index.scss +0 -1
  224. package/src/themes/amsterdam/overrides/_color_stops.scss +0 -58
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
+
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+
11
+ var _react = _interopRequireWildcard(require("react"));
12
+
13
+ var _badge = require("../badge");
14
+
15
+ var _button = require("../button");
16
+
17
+ var _form = require("../form");
18
+
19
+ var _focus_trap = require("./focus_trap");
20
+
21
+ var _spacer = require("../spacer");
22
+
23
+ var _panel = require("../panel");
24
+
25
+ var _text = require("../text");
26
+
27
+ var _services = require("../../services");
28
+
29
+ var _react2 = require("@emotion/react");
30
+
31
+ 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); }
32
+
33
+ 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; }
34
+
35
+ /*
36
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
37
+ * or more contributor license agreements. Licensed under the Elastic License
38
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
39
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
40
+ * Side Public License, v 1.
41
+ */
42
+ /// <reference types="../../../cypress/support"/>
43
+ var CheckboxGroup = function CheckboxGroup() {
44
+ var checkboxGroupItemId__1 = (0, _services.useGeneratedHtmlId)({
45
+ prefix: 'checkboxGroupItem',
46
+ suffix: 'first'
47
+ });
48
+ var checkboxGroupItemId__2 = (0, _services.useGeneratedHtmlId)({
49
+ prefix: 'checkboxGroupItem',
50
+ suffix: 'second'
51
+ });
52
+ var checkboxes = [{
53
+ id: checkboxGroupItemId__1,
54
+ label: 'Option one is checked by default'
55
+ }, {
56
+ id: checkboxGroupItemId__2,
57
+ label: 'Option two'
58
+ }];
59
+
60
+ var _useState = (0, _react.useState)((0, _defineProperty2.default)({}, checkboxGroupItemId__1, true)),
61
+ _useState2 = (0, _slicedToArray2.default)(_useState, 1),
62
+ checkboxIdToSelectedMap = _useState2[0];
63
+
64
+ return (0, _react2.jsx)(_form.EuiCheckboxGroup, {
65
+ options: checkboxes,
66
+ idToSelectedMap: checkboxIdToSelectedMap,
67
+ onChange: function onChange() {}
68
+ });
69
+ };
70
+
71
+ var FocusTrap = function FocusTrap() {
72
+ var _useState4 = (0, _react.useState)(true),
73
+ _useState5 = (0, _slicedToArray2.default)(_useState4, 2),
74
+ isDisabled = _useState5[0],
75
+ changeDisabled = _useState5[1];
76
+
77
+ var toggleDisabled = function toggleDisabled() {
78
+ return changeDisabled(!isDisabled);
79
+ };
80
+
81
+ return (0, _react2.jsx)("div", {
82
+ "data-test-subj": "cy-trap-container"
83
+ }, (0, _react2.jsx)(_badge.EuiBadge, {
84
+ "data-test-subj": "cy-trap-message"
85
+ }, "Trap is ", isDisabled ? 'disabled' : 'enabled'), (0, _react2.jsx)(_spacer.EuiSpacer, {
86
+ size: "s"
87
+ }), (0, _react2.jsx)(_focus_trap.EuiFocusTrap, {
88
+ disabled: isDisabled
89
+ }, (0, _react2.jsx)(_panel.EuiPanel, null, (0, _react2.jsx)(_form.EuiFieldText, {
90
+ "data-test-subj": "cy-input-one",
91
+ placeholder: "Placeholder text first input",
92
+ value: "",
93
+ onChange: function onChange() {},
94
+ "aria-label": "First focusable input"
95
+ }), (0, _react2.jsx)(_spacer.EuiSpacer, {
96
+ size: "m"
97
+ }), (0, _react2.jsx)(CheckboxGroup, null), (0, _react2.jsx)(_spacer.EuiSpacer, {
98
+ size: "m"
99
+ }), (0, _react2.jsx)(_button.EuiButton, {
100
+ onClick: toggleDisabled,
101
+ "data-test-subj": "cy-focus-trap-button"
102
+ }, "".concat(!isDisabled ? 'Disable' : 'Enable', " Focus Trap")))), (0, _react2.jsx)(_spacer.EuiSpacer, {
103
+ size: "l"
104
+ }), (0, _react2.jsx)(_text.EuiText, null, "The button below is not focusable by keyboard as long as the focus trap is enabled."), (0, _react2.jsx)(_button.EuiButton, {
105
+ onClick: function onClick() {},
106
+ "data-test-subj": "cy-external-button"
107
+ }, "External Focusable Element"));
108
+ };
109
+
110
+ beforeEach(function () {
111
+ cy.viewport(1024, 768); // medium breakpoint
112
+
113
+ cy.realMount((0, _react2.jsx)(FocusTrap, null));
114
+ });
115
+ describe('EuiFocusTrap', function () {
116
+ describe('Automated accessibility check', function () {
117
+ it('has zero violations on first render', function () {
118
+ cy.checkAxe();
119
+ });
120
+ it('has zero violations when the focus trap is enabled', function () {
121
+ cy.get('button[data-test-subj="cy-focus-trap-button"]').realClick();
122
+ cy.get('span[ data-test-subj="cy-trap-message"]').should('have.text', 'Trap is enabled');
123
+ cy.checkAxe();
124
+ });
125
+ });
126
+ describe('Accessibility checks for keyboard navigation', function () {
127
+ it('allows the button outside the FocusTrap to receive focus', function () {
128
+ cy.repeatRealPress('Tab', 5);
129
+ cy.get('button[data-test-subj="cy-external-button"]').should('have.focus');
130
+ cy.checkAxe();
131
+ });
132
+ it('prevents the button outside the FocusTrap from receiving focus', function () {
133
+ cy.repeatRealPress('Tab', 4);
134
+ cy.realPress('Enter');
135
+ cy.realPress('Tab');
136
+ cy.get('input[data-test-subj="cy-input-one"]').should('have.focus');
137
+ cy.checkAxe();
138
+ });
139
+ });
140
+ });
@@ -243,6 +243,7 @@ var EuiFilePicker = /*#__PURE__*/function (_Component) {
243
243
  id: promptId
244
244
  }, (0, _react2.jsx)(_icon.EuiIcon, {
245
245
  className: "euiFilePicker__icon",
246
+ color: disabled ? 'subdued' : 'primary',
246
247
  type: "importAction",
247
248
  size: normalFormControl ? 'm' : 'l',
248
249
  "aria-hidden": "true"
@@ -29,7 +29,7 @@ exports.euiRangeHighlightStyles = euiRangeHighlightStyles;
29
29
  var euiRangeHighlightProgressStyles = function euiRangeHighlightProgressStyles(euiThemeContext) {
30
30
  var range = (0, _range.euiRangeVariables)(euiThemeContext);
31
31
  return {
32
- euiRangeHighlight__progress: /*#__PURE__*/(0, _react.css)("block-size:", range.highlightHeight, ";border-radius:", range.trackBorderRadius, ";background-color:", range.highlightColor, ";border-color:", range.highlightColor, ";.euiRangeSlider:focus-visible~.euiRangeHighlight &,.euiRangeThumb:focus-visible~.euiRangeHighlight &,.euiRangeDraggable:focus~.euiRangeHighlight &{background-color:", range.focusColor, ";};label:euiRangeHighlight__progress;")
32
+ euiRangeHighlight__progress: /*#__PURE__*/(0, _react.css)("block-size:", range.highlightHeight, ";border-radius:", range.trackBorderRadius, ";background-color:", range.highlightColor, ";.euiRangeSlider:focus-visible~.euiRangeHighlight &,.euiRangeThumb:focus-visible~.euiRangeHighlight &,.euiRangeDraggable:focus~.euiRangeHighlight &{background-color:", range.focusColor, ";};label:euiRangeHighlight__progress;")
33
33
  };
34
34
  };
35
35
 
@@ -29,7 +29,7 @@ var euiRangeLevelsStyles = function euiRangeLevelsStyles(euiThemeContext) {
29
29
  var stripesBackground = "repeating-linear-gradient(\n -45deg,\n ".concat((0, _services.transparentize)(stripeColor, 0.5), ",\n ").concat((0, _services.transparentize)(stripeColor, 0.5), " 25%,\n ").concat((0, _services.transparentize)(stripeColor, 0.7), " 25%,\n ").concat((0, _services.transparentize)(stripeColor, 0.7), " 50%,\n ").concat((0, _services.transparentize)(stripeColor, 0.5), " 50%\n )");
30
30
  return {
31
31
  euiRangeLevels: /*#__PURE__*/(0, _react.css)("display:flex;justify-content:stretch;position:absolute;inset-inline:0;inset-block-start:", range.trackTopPositionWithoutTicks, ";z-index:", range.levelsZIndex, ";;label:euiRangeLevels;"),
32
- hasRange: /*#__PURE__*/(0, _react.css)("&::after{content:'';position:absolute;block-size:", range.trackHeight, ";inline-size:100%;background-image:", stripesBackground, ";background-size:", euiTheme.size.s, " ", euiTheme.size.s, ";border-radius:", range.trackBorderRadius, ";};label:hasRange;"),
32
+ hasRange: /*#__PURE__*/(0, _react.css)("&::after{content:'';position:absolute;block-size:", range.trackHeight, ";inline-size:100%;background-image:", stripesBackground, ";background-size:", euiTheme.size.xs, " ", euiTheme.size.xs, ";border-radius:", range.trackBorderRadius, ";};label:hasRange;"),
33
33
  hasTicks: /*#__PURE__*/(0, _react.css)("inset-block-start:", range.trackTopPositionWithTicks, ";;label:hasTicks;")
34
34
  };
35
35
  };
@@ -17,6 +17,8 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
17
17
 
18
18
  var _react = _interopRequireWildcard(require("react"));
19
19
 
20
+ var _classnames = _interopRequireDefault(require("classnames"));
21
+
20
22
  var _range = _interopRequireDefault(require("lodash/range"));
21
23
 
22
24
  var _services = require("../../../services");
@@ -29,7 +31,7 @@ var _range_track = require("./range_track.styles");
29
31
 
30
32
  var _react2 = require("@emotion/react");
31
33
 
32
- var _excluded = ["children", "disabled", "max", "min", "step", "showTicks", "tickInterval", "ticks", "levels", "onChange", "value", "compressed", "showRange"];
34
+ var _excluded = ["children", "disabled", "max", "min", "step", "showTicks", "tickInterval", "ticks", "levels", "onChange", "value", "compressed", "showRange", "className"];
33
35
 
34
36
  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); }
35
37
 
@@ -49,6 +51,7 @@ var EuiRangeTrack = function EuiRangeTrack(_ref) {
49
51
  value = _ref.value,
50
52
  compressed = _ref.compressed,
51
53
  showRange = _ref.showRange,
54
+ className = _ref.className,
52
55
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
53
56
  (0, _react.useEffect)(function () {
54
57
  validateValueIsInStep(max, {
@@ -107,8 +110,9 @@ var EuiRangeTrack = function EuiRangeTrack(_ref) {
107
110
  trackWidth = _useState2[0],
108
111
  setTrackWidth = _useState2[1];
109
112
 
113
+ var classes = (0, _classnames.default)('euiRangeTrack', className);
110
114
  return (0, _react2.jsx)("div", (0, _extends2.default)({
111
- className: "euiRangeTrack",
115
+ className: classes,
112
116
  css: cssStyles
113
117
  }, rest, {
114
118
  ref: function ref(node) {
@@ -0,0 +1,385 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
+
9
+ var _react = _interopRequireWildcard(require("react"));
10
+
11
+ var _avatar = require("../avatar");
12
+
13
+ var _flex = require("../flex");
14
+
15
+ var _header_breadcrumbs = require("./header_breadcrumbs");
16
+
17
+ var _header = require("./header");
18
+
19
+ var _header_logo = require("./header_logo");
20
+
21
+ var _header_section = require("./header_section");
22
+
23
+ var _icon = require("../icon");
24
+
25
+ var _key_pad_menu = require("../key_pad_menu");
26
+
27
+ var _link = require("../link");
28
+
29
+ var _popover = require("../popover");
30
+
31
+ var _selectable = require("../selectable");
32
+
33
+ var _spacer = require("../spacer");
34
+
35
+ var _text = require("../text");
36
+
37
+ var _services = require("../../services");
38
+
39
+ var _react2 = require("@emotion/react");
40
+
41
+ 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); }
42
+
43
+ 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; }
44
+
45
+ /*
46
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
47
+ * or more contributor license agreements. Licensed under the Elastic License
48
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
49
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
50
+ * Side Public License, v 1.
51
+ */
52
+ /// <reference types="../../../cypress/support"/>
53
+ var Header = function Header() {
54
+ var renderLogo = function renderLogo() {
55
+ return (0, _react2.jsx)(_header_logo.EuiHeaderLogo, {
56
+ iconType: "logoElastic",
57
+ href: "#",
58
+ onClick: function onClick(e) {
59
+ return e.preventDefault();
60
+ },
61
+ "aria-label": "Go to home page"
62
+ });
63
+ };
64
+
65
+ var renderBreadcrumbs = function renderBreadcrumbs() {
66
+ var breadcrumbs = [{
67
+ text: 'Management',
68
+ href: '#',
69
+ onClick: function onClick(e) {
70
+ e.preventDefault();
71
+ },
72
+ 'data-test-subj': 'breadcrumbsAnimals',
73
+ className: 'customClass'
74
+ }, {
75
+ text: 'Truncation test is here for a really long item',
76
+ href: '#',
77
+ onClick: function onClick(e) {
78
+ e.preventDefault();
79
+ }
80
+ }, {
81
+ text: 'Hidden',
82
+ 'data-test-subj': 'cy-breadcrumb-hidden',
83
+ href: '#',
84
+ onClick: function onClick(e) {
85
+ e.preventDefault();
86
+ }
87
+ }, {
88
+ text: 'Users',
89
+ href: '#',
90
+ onClick: function onClick(e) {
91
+ e.preventDefault();
92
+ }
93
+ }, {
94
+ text: 'Create'
95
+ }];
96
+ return (0, _react2.jsx)(_header_breadcrumbs.EuiHeaderBreadcrumbs, {
97
+ "aria-label": "Header breadcrumbs example",
98
+ breadcrumbs: breadcrumbs
99
+ });
100
+ };
101
+
102
+ var search = (0, _react2.jsx)(_selectable.EuiSelectableTemplateSitewide, {
103
+ options: [],
104
+ searchProps: {
105
+ compressed: true
106
+ },
107
+ popoverButton: (0, _react2.jsx)(_header_section.EuiHeaderSectionItemButton, {
108
+ "aria-label": "Sitewide search"
109
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
110
+ type: "search",
111
+ size: "m"
112
+ })),
113
+ emptyMessage: (0, _react2.jsx)(_selectable.EuiSelectableMessage, {
114
+ style: {
115
+ minHeight: 300
116
+ },
117
+ "data-test-subj": "cy-search-menu"
118
+ }, (0, _react2.jsx)("p", null, "Please see the component page for", ' ', (0, _react2.jsx)("strong", null, "EuiSelectableTemplateSitewide"), "on how to configure your sitewide search."))
119
+ });
120
+ return (0, _react2.jsx)(_header.EuiHeader, null, (0, _react2.jsx)(_header_section.EuiHeaderSection, {
121
+ grow: false
122
+ }, (0, _react2.jsx)(_header_section.EuiHeaderSectionItem, {
123
+ border: "right"
124
+ }, renderLogo()), (0, _react2.jsx)(_header_section.EuiHeaderSectionItem, {
125
+ border: "right"
126
+ }, (0, _react2.jsx)(HeaderSpacesMenu, null))), renderBreadcrumbs(), (0, _react2.jsx)(_header_section.EuiHeaderSection, {
127
+ side: "right"
128
+ }, (0, _react2.jsx)(_header_section.EuiHeaderSectionItem, null, search), (0, _react2.jsx)(_header_section.EuiHeaderSectionItem, null, (0, _react2.jsx)(HeaderUserMenu, null)), (0, _react2.jsx)(_header_section.EuiHeaderSectionItem, null, (0, _react2.jsx)(HeaderAppMenu, null))));
129
+ };
130
+
131
+ var HeaderUserMenu = function HeaderUserMenu() {
132
+ var headerUserPopoverId = (0, _services.useGeneratedHtmlId)({
133
+ prefix: 'headerUserPopover'
134
+ });
135
+
136
+ var _useState = (0, _react.useState)(false),
137
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
138
+ isOpen = _useState2[0],
139
+ setIsOpen = _useState2[1];
140
+
141
+ var onMenuButtonClick = function onMenuButtonClick() {
142
+ setIsOpen(!isOpen);
143
+ };
144
+
145
+ var closeMenu = function closeMenu() {
146
+ setIsOpen(false);
147
+ };
148
+
149
+ var button = (0, _react2.jsx)(_header_section.EuiHeaderSectionItemButton, {
150
+ "aria-controls": headerUserPopoverId,
151
+ "aria-expanded": isOpen,
152
+ "aria-haspopup": "true",
153
+ "aria-label": "Account menu",
154
+ onClick: onMenuButtonClick
155
+ }, (0, _react2.jsx)(_avatar.EuiAvatar, {
156
+ name: "John Username",
157
+ size: "s"
158
+ }));
159
+ return (0, _react2.jsx)(_popover.EuiPopover, {
160
+ id: headerUserPopoverId,
161
+ button: button,
162
+ isOpen: isOpen,
163
+ anchorPosition: "downRight",
164
+ closePopover: closeMenu,
165
+ panelPaddingSize: "none",
166
+ "data-test-subj": "cy-account-menu"
167
+ }, (0, _react2.jsx)("div", {
168
+ style: {
169
+ width: 320
170
+ }
171
+ }, (0, _react2.jsx)(_flex.EuiFlexGroup, {
172
+ gutterSize: "m",
173
+ className: "euiHeaderProfile",
174
+ responsive: false
175
+ }, (0, _react2.jsx)(_flex.EuiFlexItem, {
176
+ grow: false
177
+ }, (0, _react2.jsx)(_avatar.EuiAvatar, {
178
+ name: "John Username",
179
+ size: "xl"
180
+ })), (0, _react2.jsx)(_flex.EuiFlexItem, null, (0, _react2.jsx)(_text.EuiText, null, (0, _react2.jsx)("p", null, "John Username")), (0, _react2.jsx)(_spacer.EuiSpacer, {
181
+ size: "m"
182
+ }), (0, _react2.jsx)(_flex.EuiFlexGroup, null, (0, _react2.jsx)(_flex.EuiFlexItem, null, (0, _react2.jsx)(_flex.EuiFlexGroup, {
183
+ justifyContent: "spaceBetween"
184
+ }, (0, _react2.jsx)(_flex.EuiFlexItem, {
185
+ grow: false
186
+ }, (0, _react2.jsx)(_link.EuiLink, null, "Edit profile")), (0, _react2.jsx)(_flex.EuiFlexItem, {
187
+ grow: false
188
+ }, (0, _react2.jsx)(_link.EuiLink, null, "Log out")))))))));
189
+ };
190
+
191
+ var HeaderSpacesMenu = function HeaderSpacesMenu() {
192
+ var headerSpacesPopoverId = (0, _services.useGeneratedHtmlId)({
193
+ prefix: 'headerSpacesPopover'
194
+ });
195
+ var spacesValues = [{
196
+ label: 'Sales team',
197
+ prepend: (0, _react2.jsx)(_avatar.EuiAvatar, {
198
+ type: "space",
199
+ name: "Sales Team",
200
+ size: "s"
201
+ }),
202
+ checked: 'on'
203
+ }, {
204
+ label: 'Engineering',
205
+ prepend: (0, _react2.jsx)(_avatar.EuiAvatar, {
206
+ type: "space",
207
+ name: "Engineering",
208
+ size: "s"
209
+ })
210
+ }];
211
+
212
+ var _useState3 = (0, _react.useState)(spacesValues),
213
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
214
+ spaces = _useState4[0],
215
+ setSpaces = _useState4[1];
216
+
217
+ var _useState5 = (0, _react.useState)(spaces.filter(function (option) {
218
+ return option.checked;
219
+ })[0]),
220
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
221
+ selectedSpace = _useState6[0],
222
+ setSelectedSpace = _useState6[1];
223
+
224
+ var _useState7 = (0, _react.useState)(false),
225
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
226
+ isOpen = _useState8[0],
227
+ setIsOpen = _useState8[1];
228
+
229
+ var isListExtended = function isListExtended() {
230
+ return spaces.length > 4 ? true : false;
231
+ };
232
+
233
+ var onMenuButtonClick = function onMenuButtonClick() {
234
+ setIsOpen(!isOpen);
235
+ };
236
+
237
+ var closePopover = function closePopover() {
238
+ setIsOpen(false);
239
+ };
240
+
241
+ var onChange = function onChange(options) {
242
+ setSpaces(options);
243
+ setSelectedSpace(options.filter(function (option) {
244
+ return option.checked;
245
+ })[0]);
246
+ setIsOpen(false);
247
+ };
248
+
249
+ var button = (0, _react2.jsx)(_header_section.EuiHeaderSectionItemButton, {
250
+ "aria-controls": headerSpacesPopoverId,
251
+ "aria-expanded": isOpen,
252
+ "aria-haspopup": "true",
253
+ "aria-label": "Spaces menu",
254
+ onClick: onMenuButtonClick
255
+ }, selectedSpace.prepend);
256
+ return (0, _react2.jsx)(_popover.EuiPopover, {
257
+ id: headerSpacesPopoverId,
258
+ button: button,
259
+ isOpen: isOpen,
260
+ anchorPosition: "downLeft",
261
+ closePopover: closePopover,
262
+ panelPaddingSize: "none"
263
+ }, (0, _react2.jsx)(_selectable.EuiSelectable, {
264
+ searchable: isListExtended(),
265
+ searchProps: {
266
+ placeholder: 'Find a space',
267
+ compressed: true
268
+ },
269
+ options: spaces,
270
+ singleSelection: "always",
271
+ style: {
272
+ width: 300
273
+ },
274
+ onChange: onChange,
275
+ listProps: {
276
+ rowHeight: 40,
277
+ showIcons: false
278
+ },
279
+ "data-test-subj": "cy-spaces-menu"
280
+ }, function (list, search) {
281
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_popover.EuiPopoverTitle, {
282
+ paddingSize: "s"
283
+ }, search || 'Your spaces'), list);
284
+ }));
285
+ };
286
+
287
+ var HeaderAppMenu = function HeaderAppMenu() {
288
+ var headerAppPopoverId = (0, _services.useGeneratedHtmlId)({
289
+ prefix: 'headerAppPopover'
290
+ });
291
+ var headerAppKeyPadMenuId = (0, _services.useGeneratedHtmlId)({
292
+ prefix: 'headerAppKeyPadMenu'
293
+ });
294
+
295
+ var _useState9 = (0, _react.useState)(false),
296
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
297
+ isOpen = _useState10[0],
298
+ setIsOpen = _useState10[1];
299
+
300
+ var onMenuButtonClick = function onMenuButtonClick() {
301
+ setIsOpen(!isOpen);
302
+ };
303
+
304
+ var closeMenu = function closeMenu() {
305
+ setIsOpen(false);
306
+ };
307
+
308
+ var button = (0, _react2.jsx)(_header_section.EuiHeaderSectionItemButton, {
309
+ "aria-controls": headerAppKeyPadMenuId,
310
+ "aria-expanded": isOpen,
311
+ "aria-haspopup": "true",
312
+ "aria-label": "Apps menu with 1 new app",
313
+ notification: "1",
314
+ onClick: onMenuButtonClick
315
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
316
+ type: "apps",
317
+ size: "m"
318
+ }));
319
+ return (0, _react2.jsx)(_popover.EuiPopover, {
320
+ id: headerAppPopoverId,
321
+ button: button,
322
+ isOpen: isOpen,
323
+ anchorPosition: "downRight",
324
+ closePopover: closeMenu
325
+ }, (0, _react2.jsx)(_key_pad_menu.EuiKeyPadMenu, {
326
+ id: headerAppKeyPadMenuId,
327
+ style: {
328
+ width: 288
329
+ },
330
+ "data-test-subj": "cy-apps-menu"
331
+ }, (0, _react2.jsx)(_key_pad_menu.EuiKeyPadMenuItem, {
332
+ label: "Discover"
333
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
334
+ type: "discoverApp",
335
+ size: "l"
336
+ })), (0, _react2.jsx)(_key_pad_menu.EuiKeyPadMenuItem, {
337
+ label: "Dashboard"
338
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
339
+ type: "dashboardApp",
340
+ size: "l"
341
+ })), (0, _react2.jsx)(_key_pad_menu.EuiKeyPadMenuItem, {
342
+ label: "Dev Tools"
343
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
344
+ type: "devToolsApp",
345
+ size: "l"
346
+ }))));
347
+ };
348
+
349
+ beforeEach(function () {
350
+ cy.viewport(1024, 768); // medium breakpoint
351
+
352
+ cy.realMount((0, _react2.jsx)(Header, null));
353
+ });
354
+ describe('EuiHeader', function () {
355
+ describe('Automated accessibility check', function () {
356
+ it('has zero violations on first render', function () {
357
+ cy.checkAxe();
358
+ });
359
+ it('has zero violations when Spaces menu is expanded', function () {
360
+ cy.get('button[aria-label="Spaces menu"]').realClick();
361
+ cy.get('div[data-test-subj="cy-spaces-menu"]').should('exist');
362
+ cy.checkAxe();
363
+ });
364
+ it('has zero violations when Account menu is expanded', function () {
365
+ cy.get('button[aria-label="Account menu"]').realClick();
366
+ cy.get('div[data-test-subj="cy-account-menu"]').should('exist');
367
+ cy.checkAxe();
368
+ });
369
+ it('has zero violations when Sitewide search is expanded', function () {
370
+ cy.get('button[aria-label="Sitewide search"]').realClick();
371
+ cy.get('div[data-test-subj="cy-search-menu"]').should('exist');
372
+ cy.checkAxe();
373
+ });
374
+ it('has zero violations when Apps menu is expanded', function () {
375
+ cy.get('button[aria-label="Apps menu with 1 new app"]').realClick();
376
+ cy.get('ul[data-test-subj="cy-apps-menu"]').should('exist');
377
+ cy.checkAxe();
378
+ });
379
+ it('has zero violations when a hidden breadcrumb is expanded', function () {
380
+ cy.get('button[aria-label="See collapsed breadcrumbs"]').realClick();
381
+ cy.get('a[data-test-subj="cy-breadcrumb-hidden"]').should('exist');
382
+ cy.checkAxe();
383
+ });
384
+ });
385
+ });
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _icon = require("./icon");
8
+
9
+ var _react2 = require("@emotion/react");
10
+
11
+ /*
12
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
13
+ * or more contributor license agreements. Licensed under the Elastic License
14
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
15
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
16
+ * Side Public License, v 1.
17
+ */
18
+ /// <reference types="../../../cypress/support"/>
19
+ describe('EuiIcons', function () {
20
+ describe('Automated accessibility check for ML icons', function () {
21
+ var MLIcons = ['dataVisualizer', 'createAdvancedJob', 'classificationJob', 'createMultiMetricJob', 'outlierDetectionJob', 'createPopulationJob', 'regressionJob', 'createSingleMetricJob'];
22
+
23
+ var MLGrid = function MLGrid() {
24
+ return (0, _react2.jsx)("div", null, MLIcons.map(function (glyph) {
25
+ return (0, _react2.jsx)(_icon.EuiIcon, {
26
+ className: "eui-alignMiddle",
27
+ type: glyph
28
+ });
29
+ }));
30
+ };
31
+
32
+ it('has zero violations on first render', function () {
33
+ cy.mount((0, _react2.jsx)(MLGrid, null));
34
+ cy.get('div[data-cy-root]').find('svg', {
35
+ timeout: 5000
36
+ }).should('have.length', 8);
37
+ cy.checkAxe();
38
+ });
39
+ });
40
+ });
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _icon = require("./icon");
8
+
9
+ var _react2 = require("@emotion/react");
10
+
11
+ /*
12
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
13
+ * or more contributor license agreements. Licensed under the Elastic License
14
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
15
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
16
+ * Side Public License, v 1.
17
+ */
18
+ /// <reference types="../../../cypress/support"/>
19
+ describe('EuiIcons', function () {
20
+ describe('Automated accessibility check for app icons', function () {
21
+ var AppIcons = ['addDataApp', 'advancedSettingsApp', 'agentApp', 'apmApp', 'appSearchApp', 'auditbeatApp', 'canvasApp', 'casesApp', 'codeApp', 'consoleApp', 'crossClusterReplicationApp', 'dashboardApp', 'devToolsApp', 'discoverApp', 'emsApp', 'filebeatApp', 'fleetApp', 'gisApp', 'graphApp', 'grokApp', 'heartbeatApp', 'indexManagementApp', 'indexPatternApp', 'indexRollupApp', 'lensApp', 'logsApp', 'machineLearningApp', 'managementApp', 'metricbeatApp', 'metricsApp', 'monitoringApp', 'notebookApp', 'packetbeatApp', 'pipelineApp', 'recentlyViewedApp', 'reportingApp', 'savedObjectsApp', 'searchProfilerApp', 'securityAnalyticsApp', 'securityApp', 'spacesApp', 'sqlApp', 'timelionApp', 'upgradeAssistantApp', 'uptimeApp', 'usersRolesApp', 'visualizeApp', 'watchesApp', 'workplaceSearchApp'];
22
+
23
+ var AppGrid = function AppGrid() {
24
+ return (0, _react2.jsx)("div", null, AppIcons.map(function (glyph) {
25
+ return (0, _react2.jsx)(_icon.EuiIcon, {
26
+ className: "eui-alignMiddle",
27
+ type: glyph
28
+ });
29
+ }));
30
+ };
31
+
32
+ it('has zero violations on first render', function () {
33
+ cy.mount((0, _react2.jsx)(AppGrid, null));
34
+ cy.get('div[data-cy-root]').find('svg', {
35
+ timeout: 5000
36
+ }).should('have.length', 49);
37
+ cy.checkAxe();
38
+ });
39
+ });
40
+ });