@elastic/eui 90.0.0 → 91.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 (552) hide show
  1. package/dist/eui_charts_theme.js +1 -15
  2. package/dist/eui_charts_theme.js.map +1 -1
  3. package/dist/eui_theme_dark.css +302 -203
  4. package/dist/eui_theme_dark.min.css +1 -1
  5. package/dist/eui_theme_light.css +302 -203
  6. package/dist/eui_theme_light.min.css +1 -1
  7. package/es/components/accordion/accordion.a11y.js +1 -3
  8. package/es/components/accordion/accordion.js +13 -2
  9. package/es/components/accordion/accordion_children/accordion_children.js +4 -3
  10. package/es/components/basic_table/action_types.js +5 -0
  11. package/es/components/basic_table/basic_table.a11y.js +1 -2
  12. package/es/components/basic_table/basic_table.js +8 -8
  13. package/es/components/basic_table/collapsed_item_actions.js +120 -249
  14. package/es/components/basic_table/custom_item_action.js +9 -95
  15. package/es/components/basic_table/default_item_action.js +23 -14
  16. package/es/components/basic_table/in_memory_table.a11y.js +13 -11
  17. package/es/components/basic_table/in_memory_table.js +8 -8
  18. package/es/components/breadcrumbs/breadcrumb.js +16 -12
  19. package/es/components/breadcrumbs/breadcrumb.styles.js +5 -0
  20. package/es/components/breadcrumbs/breadcrumbs.js +5 -5
  21. package/es/components/button/button_display/_button_display.js +6 -4
  22. package/es/components/button/button_display/_button_display_content.js +8 -4
  23. package/es/components/button/button_empty/button_empty.js +9 -7
  24. package/es/components/button/button_group/button_group.js +13 -13
  25. package/es/components/button/button_group/button_group_button.js +13 -54
  26. package/es/components/button/button_group/button_group_button.styles.js +2 -12
  27. package/es/components/card/card.a11y.js +5 -18
  28. package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +8 -0
  29. package/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +2 -2
  30. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  31. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  32. package/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +9 -104
  33. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +20 -58
  34. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +89 -37
  35. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +67 -81
  36. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +1 -19
  37. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +7 -102
  38. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  39. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +11 -90
  40. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +150 -130
  41. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +0 -10
  42. package/es/components/combo_box/combo_box.js +8 -6
  43. package/es/components/combo_box/combo_box_input/combo_box_input.js +107 -65
  44. package/es/components/combo_box/combo_box_input/combo_box_pill.js +8 -18
  45. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +6 -6
  46. package/es/components/combo_box/utils.js +23 -0
  47. package/es/components/context_menu/context_menu_item.js +16 -8
  48. package/es/components/context_menu/context_menu_item.styles.js +1 -1
  49. package/es/components/control_bar/control_bar.js +5 -5
  50. package/es/components/datagrid/body/data_grid_body.js +16 -6
  51. package/es/components/datagrid/body/data_grid_body_custom.js +16 -6
  52. package/es/components/datagrid/body/data_grid_body_virtualized.js +16 -6
  53. package/es/components/datagrid/body/data_grid_cell.js +67 -44
  54. package/es/components/datagrid/body/data_grid_cell_actions.js +12 -12
  55. package/es/components/datagrid/body/data_grid_cell_popover.js +43 -10
  56. package/es/components/datagrid/body/header/data_grid_header_cell.js +66 -35
  57. package/es/components/datagrid/body/header/data_grid_header_row.js +16 -6
  58. package/es/components/datagrid/controls/column_selector.js +24 -45
  59. package/es/components/datagrid/controls/column_sorting.js +23 -37
  60. package/es/components/datagrid/controls/data_grid_toolbar_control.js +154 -0
  61. package/es/components/datagrid/controls/display_selector.js +21 -17
  62. package/es/components/datagrid/controls/fullscreen_selector.js +2 -6
  63. package/es/components/datagrid/controls/index.js +2 -1
  64. package/es/components/datagrid/data_grid.js +3 -864
  65. package/es/components/datagrid/index.js +1 -1
  66. package/es/components/datagrid/utils/in_memory.js +16 -6
  67. package/es/components/datagrid/utils/row_heights.js +1 -1
  68. package/es/components/date_picker/auto_refresh/auto_refresh.js +6 -4
  69. package/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +92 -26
  70. package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +1 -1
  71. package/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +1 -2
  72. package/es/components/date_picker/super_date_picker/super_date_picker.js +19 -0
  73. package/es/components/date_picker/super_date_picker/super_update_button.js +1 -1
  74. package/es/components/error_boundary/error_boundary.a11y.js +1 -1
  75. package/es/components/expression/expression.a11y.js +2 -4
  76. package/es/components/facet/facet_button.js +6 -4
  77. package/es/components/filter_group/filter_button.js +2 -2
  78. package/es/components/filter_group/filter_group.styles.js +1 -1
  79. package/es/components/focus_trap/focus_trap.a11y.js +3 -3
  80. package/es/components/form/range/range.a11y.js +5 -10
  81. package/es/components/form/super_select/super_select.js +3 -2
  82. package/es/components/form/super_select/super_select_control.js +13 -20
  83. package/es/components/header/header.a11y.js +1 -1
  84. package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +5 -5
  85. package/es/components/header/header_links/header_link.js +7 -5
  86. package/es/components/header/header_links/header_links.js +5 -5
  87. package/es/components/header/header_section/header_section_item_button.js +7 -5
  88. package/es/components/i18n/i18n.js +1 -0
  89. package/es/components/image/image.a11y.js +1 -2
  90. package/es/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  91. package/es/components/link/external_link_icon.js +51 -0
  92. package/es/components/link/link.js +6 -20
  93. package/es/components/link/link.styles.js +2 -5
  94. package/es/components/list_group/list_group.js +6 -1
  95. package/es/components/list_group/list_group_item.js +14 -4
  96. package/es/components/list_group/list_group_item.styles.js +2 -1
  97. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +12 -2
  98. package/es/components/notification/notification_event.a11y.js +1 -2
  99. package/es/components/notification/notification_event.js +7 -5
  100. package/es/components/page/page_header/page_header_content.js +5 -5
  101. package/es/components/pagination/pagination_button.js +7 -5
  102. package/es/components/popover/input_popover.js +1 -1
  103. package/es/components/popover/popover.js +19 -28
  104. package/es/components/popover/popover_arrow/_popover_arrow.styles.js +2 -4
  105. package/es/components/popover/popover_panel/_popover_panel.js +2 -6
  106. package/es/components/popover/popover_panel/_popover_panel.styles.js +6 -1
  107. package/es/components/resizable_container/resizable_container.a11y.js +4 -8
  108. package/es/components/search_bar/search_bar.a11y.js +3 -6
  109. package/es/components/selectable/selectable.js +16 -1
  110. package/es/components/selectable/selectable_list/selectable_list.js +227 -78
  111. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +29 -12
  112. package/es/components/text/text.styles.js +2 -2
  113. package/es/components/text_truncate/text_truncate.js +33 -10
  114. package/es/components/toast/global_toast_list.js +11 -1
  115. package/es/components/tour/tour_step.js +5 -5
  116. package/es/global_styling/mixins/_states.js +4 -1
  117. package/es/services/color/eui_palettes.js +0 -6
  118. package/es/services/color/index.js +1 -1
  119. package/es/services/hooks/useCombinedRefs.js +16 -9
  120. package/es/services/index.js +1 -2
  121. package/es/test/rtl/component_helpers.d.ts +2 -0
  122. package/es/test/rtl/component_helpers.js +40 -1
  123. package/eui.d.ts +562 -218
  124. package/i18ntokens.json +329 -347
  125. package/lib/components/accordion/accordion.a11y.js +1 -3
  126. package/lib/components/accordion/accordion.js +13 -2
  127. package/lib/components/accordion/accordion_children/accordion_children.js +4 -3
  128. package/lib/components/basic_table/action_types.js +8 -2
  129. package/lib/components/basic_table/basic_table.a11y.js +1 -2
  130. package/lib/components/basic_table/basic_table.js +8 -8
  131. package/lib/components/basic_table/collapsed_item_actions.js +128 -257
  132. package/lib/components/basic_table/custom_item_action.js +18 -104
  133. package/lib/components/basic_table/default_item_action.js +23 -14
  134. package/lib/components/basic_table/in_memory_table.a11y.js +13 -11
  135. package/lib/components/basic_table/in_memory_table.js +8 -8
  136. package/lib/components/breadcrumbs/breadcrumb.js +16 -12
  137. package/lib/components/breadcrumbs/breadcrumb.styles.js +5 -0
  138. package/lib/components/button/button_display/_button_display.js +6 -4
  139. package/lib/components/button/button_display/_button_display_content.js +8 -4
  140. package/lib/components/button/button_empty/button_empty.js +9 -7
  141. package/lib/components/button/button_group/button_group.js +12 -12
  142. package/lib/components/button/button_group/button_group_button.js +13 -54
  143. package/lib/components/button/button_group/button_group_button.styles.js +2 -12
  144. package/lib/components/card/card.a11y.js +5 -18
  145. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +8 -0
  146. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +1 -1
  147. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  148. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  149. package/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +8 -103
  150. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +20 -58
  151. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +89 -37
  152. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +66 -80
  153. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +11 -28
  154. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +7 -104
  155. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  156. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +10 -89
  157. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +150 -130
  158. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +0 -10
  159. package/lib/components/combo_box/combo_box.js +8 -6
  160. package/lib/components/combo_box/combo_box_input/combo_box_input.js +107 -65
  161. package/lib/components/combo_box/combo_box_input/combo_box_pill.js +8 -18
  162. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +6 -6
  163. package/lib/components/combo_box/utils.js +31 -0
  164. package/lib/components/context_menu/context_menu_item.js +16 -8
  165. package/lib/components/context_menu/context_menu_item.styles.js +1 -1
  166. package/lib/components/datagrid/body/data_grid_body.js +16 -6
  167. package/lib/components/datagrid/body/data_grid_body_custom.js +16 -6
  168. package/lib/components/datagrid/body/data_grid_body_virtualized.js +16 -6
  169. package/lib/components/datagrid/body/data_grid_cell.js +67 -44
  170. package/lib/components/datagrid/body/data_grid_cell_actions.js +12 -13
  171. package/lib/components/datagrid/body/data_grid_cell_popover.js +43 -10
  172. package/lib/components/datagrid/body/header/data_grid_header_cell.js +66 -35
  173. package/lib/components/datagrid/body/header/data_grid_header_row.js +16 -6
  174. package/lib/components/datagrid/controls/column_selector.js +24 -45
  175. package/lib/components/datagrid/controls/column_sorting.js +22 -37
  176. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +159 -0
  177. package/lib/components/datagrid/controls/display_selector.js +21 -17
  178. package/lib/components/datagrid/controls/fullscreen_selector.js +2 -7
  179. package/lib/components/datagrid/controls/index.js +8 -1
  180. package/lib/components/datagrid/data_grid.js +2 -863
  181. package/lib/components/datagrid/index.js +8 -1
  182. package/lib/components/datagrid/utils/in_memory.js +16 -6
  183. package/lib/components/datagrid/utils/row_heights.js +1 -1
  184. package/lib/components/date_picker/auto_refresh/auto_refresh.js +6 -4
  185. package/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +91 -26
  186. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +1 -1
  187. package/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +1 -2
  188. package/lib/components/date_picker/super_date_picker/super_date_picker.js +19 -0
  189. package/lib/components/date_picker/super_date_picker/super_update_button.js +1 -1
  190. package/lib/components/error_boundary/error_boundary.a11y.js +1 -1
  191. package/lib/components/expression/expression.a11y.js +2 -4
  192. package/lib/components/facet/facet_button.js +6 -4
  193. package/lib/components/filter_group/filter_button.js +2 -2
  194. package/lib/components/filter_group/filter_group.styles.js +1 -1
  195. package/lib/components/focus_trap/focus_trap.a11y.js +3 -3
  196. package/lib/components/form/range/range.a11y.js +5 -10
  197. package/lib/components/form/super_select/super_select.js +3 -2
  198. package/lib/components/form/super_select/super_select_control.js +12 -19
  199. package/lib/components/header/header.a11y.js +1 -1
  200. package/lib/components/header/header_links/header_link.js +7 -5
  201. package/lib/components/header/header_section/header_section_item_button.js +7 -5
  202. package/lib/components/i18n/i18n.js +1 -0
  203. package/lib/components/image/image.a11y.js +1 -2
  204. package/lib/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  205. package/lib/components/link/external_link_icon.js +57 -0
  206. package/lib/components/link/link.js +6 -20
  207. package/lib/components/link/link.styles.js +1 -4
  208. package/lib/components/list_group/list_group.js +6 -1
  209. package/lib/components/list_group/list_group_item.js +14 -4
  210. package/lib/components/list_group/list_group_item.styles.js +2 -1
  211. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +12 -2
  212. package/lib/components/notification/notification_event.a11y.js +1 -2
  213. package/lib/components/notification/notification_event.js +7 -5
  214. package/lib/components/popover/input_popover.js +1 -1
  215. package/lib/components/popover/popover.js +33 -36
  216. package/lib/components/popover/popover_arrow/_popover_arrow.styles.js +1 -3
  217. package/lib/components/popover/popover_panel/_popover_panel.js +2 -1
  218. package/lib/components/popover/popover_panel/_popover_panel.styles.js +6 -1
  219. package/lib/components/resizable_container/resizable_container.a11y.js +4 -8
  220. package/lib/components/search_bar/search_bar.a11y.js +3 -6
  221. package/lib/components/selectable/selectable.js +16 -1
  222. package/lib/components/selectable/selectable_list/selectable_list.js +227 -78
  223. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +28 -11
  224. package/lib/components/text/text.styles.js +2 -2
  225. package/lib/components/text_truncate/text_truncate.js +32 -9
  226. package/lib/components/toast/global_toast_list.js +11 -1
  227. package/lib/global_styling/mixins/_states.js +4 -1
  228. package/lib/services/color/eui_palettes.js +1 -8
  229. package/lib/services/color/index.js +0 -7
  230. package/lib/services/hooks/useCombinedRefs.js +19 -10
  231. package/lib/services/index.js +0 -15
  232. package/lib/test/rtl/component_helpers.d.ts +2 -0
  233. package/lib/test/rtl/component_helpers.js +41 -3
  234. package/optimize/es/components/accordion/accordion.a11y.js +1 -3
  235. package/optimize/es/components/accordion/accordion.js +5 -2
  236. package/optimize/es/components/accordion/accordion_children/accordion_children.js +4 -3
  237. package/optimize/es/components/basic_table/action_types.js +5 -0
  238. package/optimize/es/components/basic_table/basic_table.a11y.js +1 -2
  239. package/optimize/es/components/basic_table/collapsed_item_actions.js +116 -169
  240. package/optimize/es/components/basic_table/custom_item_action.js +10 -83
  241. package/optimize/es/components/basic_table/default_item_action.js +23 -14
  242. package/optimize/es/components/basic_table/in_memory_table.a11y.js +13 -11
  243. package/optimize/es/components/breadcrumbs/breadcrumb.js +11 -7
  244. package/optimize/es/components/breadcrumbs/breadcrumb.styles.js +5 -0
  245. package/optimize/es/components/button/button_display/_button_display_content.js +3 -1
  246. package/optimize/es/components/button/button_empty/button_empty.js +2 -2
  247. package/optimize/es/components/button/button_group/button_group.js +7 -8
  248. package/optimize/es/components/button/button_group/button_group_button.js +6 -38
  249. package/optimize/es/components/button/button_group/button_group_button.styles.js +2 -12
  250. package/optimize/es/components/card/card.a11y.js +5 -18
  251. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +2 -2
  252. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  253. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  254. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +8 -3
  255. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -3
  256. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +10 -5
  257. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +8 -36
  258. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +1 -19
  259. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -23
  260. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  261. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +10 -10
  262. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +9 -5
  263. package/optimize/es/components/combo_box/combo_box.js +7 -5
  264. package/optimize/es/components/combo_box/combo_box_input/combo_box_input.js +107 -65
  265. package/optimize/es/components/combo_box/combo_box_input/combo_box_pill.js +8 -17
  266. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +6 -6
  267. package/optimize/es/components/combo_box/utils.js +23 -0
  268. package/optimize/es/components/context_menu/context_menu_item.js +9 -6
  269. package/optimize/es/components/context_menu/context_menu_item.styles.js +1 -1
  270. package/optimize/es/components/datagrid/body/data_grid_cell.js +38 -30
  271. package/optimize/es/components/datagrid/body/data_grid_cell_actions.js +12 -12
  272. package/optimize/es/components/datagrid/body/data_grid_cell_popover.js +43 -10
  273. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +50 -29
  274. package/optimize/es/components/datagrid/controls/column_selector.js +24 -45
  275. package/optimize/es/components/datagrid/controls/column_sorting.js +23 -37
  276. package/optimize/es/components/datagrid/controls/data_grid_toolbar_control.js +70 -0
  277. package/optimize/es/components/datagrid/controls/display_selector.js +21 -17
  278. package/optimize/es/components/datagrid/controls/fullscreen_selector.js +2 -6
  279. package/optimize/es/components/datagrid/controls/index.js +2 -1
  280. package/optimize/es/components/datagrid/data_grid.js +3 -3
  281. package/optimize/es/components/datagrid/index.js +1 -1
  282. package/optimize/es/components/datagrid/utils/row_heights.js +1 -1
  283. package/optimize/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +87 -26
  284. package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +1 -2
  285. package/optimize/es/components/date_picker/super_date_picker/super_update_button.js +1 -1
  286. package/optimize/es/components/error_boundary/error_boundary.a11y.js +1 -1
  287. package/optimize/es/components/expression/expression.a11y.js +2 -4
  288. package/optimize/es/components/filter_group/filter_button.js +2 -2
  289. package/optimize/es/components/filter_group/filter_group.styles.js +1 -1
  290. package/optimize/es/components/focus_trap/focus_trap.a11y.js +3 -3
  291. package/optimize/es/components/form/range/range.a11y.js +5 -10
  292. package/optimize/es/components/form/super_select/super_select.js +3 -2
  293. package/optimize/es/components/form/super_select/super_select_control.js +13 -20
  294. package/optimize/es/components/header/header.a11y.js +1 -1
  295. package/optimize/es/components/i18n/i18n.js +1 -0
  296. package/optimize/es/components/image/image.a11y.js +1 -2
  297. package/optimize/es/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  298. package/optimize/es/components/link/external_link_icon.js +41 -0
  299. package/optimize/es/components/link/link.js +6 -20
  300. package/optimize/es/components/link/link.styles.js +2 -5
  301. package/optimize/es/components/list_group/list_group_item.js +8 -3
  302. package/optimize/es/components/list_group/list_group_item.styles.js +2 -1
  303. package/optimize/es/components/notification/notification_event.a11y.js +1 -2
  304. package/optimize/es/components/popover/input_popover.js +1 -1
  305. package/optimize/es/components/popover/popover.js +14 -23
  306. package/optimize/es/components/popover/popover_arrow/_popover_arrow.styles.js +2 -4
  307. package/optimize/es/components/popover/popover_panel/_popover_panel.js +2 -1
  308. package/optimize/es/components/popover/popover_panel/_popover_panel.styles.js +6 -1
  309. package/optimize/es/components/resizable_container/resizable_container.a11y.js +4 -8
  310. package/optimize/es/components/search_bar/search_bar.a11y.js +3 -6
  311. package/optimize/es/components/selectable/selectable_list/selectable_list.js +199 -76
  312. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.js +13 -11
  313. package/optimize/es/components/text/text.styles.js +2 -2
  314. package/optimize/es/components/text_truncate/text_truncate.js +26 -9
  315. package/optimize/es/components/toast/global_toast_list.js +1 -1
  316. package/optimize/es/global_styling/mixins/_states.js +4 -1
  317. package/optimize/es/services/color/eui_palettes.js +0 -6
  318. package/optimize/es/services/color/index.js +1 -1
  319. package/optimize/es/services/hooks/useCombinedRefs.js +16 -9
  320. package/optimize/es/services/index.js +1 -2
  321. package/optimize/es/test/rtl/component_helpers.d.ts +2 -0
  322. package/optimize/es/test/rtl/component_helpers.js +40 -1
  323. package/optimize/lib/components/accordion/accordion.a11y.js +1 -3
  324. package/optimize/lib/components/accordion/accordion.js +5 -2
  325. package/optimize/lib/components/accordion/accordion_children/accordion_children.js +4 -3
  326. package/optimize/lib/components/basic_table/action_types.js +8 -2
  327. package/optimize/lib/components/basic_table/basic_table.a11y.js +1 -2
  328. package/optimize/lib/components/basic_table/collapsed_item_actions.js +123 -174
  329. package/optimize/lib/components/basic_table/custom_item_action.js +17 -91
  330. package/optimize/lib/components/basic_table/default_item_action.js +23 -14
  331. package/optimize/lib/components/basic_table/in_memory_table.a11y.js +13 -11
  332. package/optimize/lib/components/breadcrumbs/breadcrumb.js +11 -7
  333. package/optimize/lib/components/breadcrumbs/breadcrumb.styles.js +5 -0
  334. package/optimize/lib/components/button/button_display/_button_display_content.js +3 -1
  335. package/optimize/lib/components/button/button_empty/button_empty.js +2 -2
  336. package/optimize/lib/components/button/button_group/button_group.js +6 -7
  337. package/optimize/lib/components/button/button_group/button_group_button.js +6 -38
  338. package/optimize/lib/components/button/button_group/button_group_button.styles.js +2 -12
  339. package/optimize/lib/components/card/card.a11y.js +5 -18
  340. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +1 -1
  341. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  342. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  343. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +7 -2
  344. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -3
  345. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +10 -5
  346. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +8 -36
  347. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +11 -28
  348. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -26
  349. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  350. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +9 -9
  351. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +9 -5
  352. package/optimize/lib/components/combo_box/combo_box.js +7 -5
  353. package/optimize/lib/components/combo_box/combo_box_input/combo_box_input.js +107 -65
  354. package/optimize/lib/components/combo_box/combo_box_input/combo_box_pill.js +8 -17
  355. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +6 -6
  356. package/optimize/lib/components/combo_box/utils.js +31 -0
  357. package/optimize/lib/components/context_menu/context_menu_item.js +9 -6
  358. package/optimize/lib/components/context_menu/context_menu_item.styles.js +1 -1
  359. package/optimize/lib/components/datagrid/body/data_grid_cell.js +38 -30
  360. package/optimize/lib/components/datagrid/body/data_grid_cell_actions.js +12 -12
  361. package/optimize/lib/components/datagrid/body/data_grid_cell_popover.js +43 -10
  362. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +56 -37
  363. package/optimize/lib/components/datagrid/controls/column_selector.js +24 -45
  364. package/optimize/lib/components/datagrid/controls/column_sorting.js +22 -36
  365. package/optimize/lib/components/datagrid/controls/data_grid_toolbar_control.js +75 -0
  366. package/optimize/lib/components/datagrid/controls/display_selector.js +21 -17
  367. package/optimize/lib/components/datagrid/controls/fullscreen_selector.js +2 -6
  368. package/optimize/lib/components/datagrid/controls/index.js +8 -1
  369. package/optimize/lib/components/datagrid/data_grid.js +2 -2
  370. package/optimize/lib/components/datagrid/index.js +8 -1
  371. package/optimize/lib/components/datagrid/utils/row_heights.js +1 -1
  372. package/optimize/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +86 -26
  373. package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +1 -2
  374. package/optimize/lib/components/date_picker/super_date_picker/super_update_button.js +1 -1
  375. package/optimize/lib/components/error_boundary/error_boundary.a11y.js +1 -1
  376. package/optimize/lib/components/expression/expression.a11y.js +2 -4
  377. package/optimize/lib/components/filter_group/filter_button.js +2 -2
  378. package/optimize/lib/components/filter_group/filter_group.styles.js +1 -1
  379. package/optimize/lib/components/focus_trap/focus_trap.a11y.js +3 -3
  380. package/optimize/lib/components/form/range/range.a11y.js +5 -10
  381. package/optimize/lib/components/form/super_select/super_select.js +3 -2
  382. package/optimize/lib/components/form/super_select/super_select_control.js +12 -19
  383. package/optimize/lib/components/header/header.a11y.js +1 -1
  384. package/optimize/lib/components/i18n/i18n.js +1 -0
  385. package/optimize/lib/components/image/image.a11y.js +1 -2
  386. package/optimize/lib/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  387. package/optimize/lib/components/link/external_link_icon.js +47 -0
  388. package/optimize/lib/components/link/link.js +6 -20
  389. package/optimize/lib/components/link/link.styles.js +1 -4
  390. package/optimize/lib/components/list_group/list_group_item.js +8 -3
  391. package/optimize/lib/components/list_group/list_group_item.styles.js +2 -1
  392. package/optimize/lib/components/notification/notification_event.a11y.js +1 -2
  393. package/optimize/lib/components/popover/input_popover.js +1 -1
  394. package/optimize/lib/components/popover/popover.js +28 -36
  395. package/optimize/lib/components/popover/popover_arrow/_popover_arrow.styles.js +1 -3
  396. package/optimize/lib/components/popover/popover_panel/_popover_panel.js +2 -1
  397. package/optimize/lib/components/popover/popover_panel/_popover_panel.styles.js +6 -1
  398. package/optimize/lib/components/resizable_container/resizable_container.a11y.js +4 -8
  399. package/optimize/lib/components/search_bar/search_bar.a11y.js +3 -6
  400. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +199 -76
  401. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +12 -10
  402. package/optimize/lib/components/text/text.styles.js +2 -2
  403. package/optimize/lib/components/text_truncate/text_truncate.js +25 -8
  404. package/optimize/lib/components/toast/global_toast_list.js +1 -1
  405. package/optimize/lib/global_styling/mixins/_states.js +4 -1
  406. package/optimize/lib/services/color/eui_palettes.js +1 -8
  407. package/optimize/lib/services/color/index.js +0 -7
  408. package/optimize/lib/services/hooks/useCombinedRefs.js +19 -10
  409. package/optimize/lib/services/index.js +0 -15
  410. package/optimize/lib/test/rtl/component_helpers.d.ts +2 -0
  411. package/optimize/lib/test/rtl/component_helpers.js +41 -3
  412. package/package.json +13 -13
  413. package/src/components/combo_box/_combo_box.scss +46 -14
  414. package/src/components/combo_box/combo_box_input/_combo_box_pill.scss +0 -17
  415. package/src/components/combo_box/combo_box_input/_index.scss +0 -2
  416. package/src/components/datagrid/_data_grid_data_row.scss +139 -101
  417. package/src/components/datagrid/_mixins.scss +2 -2
  418. package/src/components/datagrid/body/header/_data_grid_header_row.scss +36 -28
  419. package/src/components/datagrid/controls/_data_grid_toolbar.scss +0 -5
  420. package/src/components/date_picker/super_date_picker/date_popover/_absolute_tab.scss +21 -0
  421. package/src/components/date_picker/super_date_picker/quick_select_popover/_quick_select_popover.scss +0 -4
  422. package/src/components/form/form_control_layout/_form_control_layout.scss +0 -1
  423. package/src/components/form/form_row/_form_row.scss +1 -1
  424. package/src/components/table/_responsive.scss +19 -0
  425. package/src/components/table/_table.scss +4 -9
  426. package/src/global_styling/variables/_typography.scss +2 -2
  427. package/test-env/components/accordion/accordion.a11y.js +1 -3
  428. package/test-env/components/accordion/accordion.js +13 -2
  429. package/test-env/components/accordion/accordion_children/accordion_children.js +4 -3
  430. package/test-env/components/auto_sizer/auto_sizer.js +10 -3
  431. package/test-env/components/basic_table/action_types.js +8 -2
  432. package/test-env/components/basic_table/basic_table.a11y.js +1 -2
  433. package/test-env/components/basic_table/basic_table.js +8 -8
  434. package/test-env/components/basic_table/collapsed_item_actions.js +124 -251
  435. package/test-env/components/basic_table/custom_item_action.js +18 -100
  436. package/test-env/components/basic_table/default_item_action.js +23 -14
  437. package/test-env/components/basic_table/in_memory_table.a11y.js +13 -11
  438. package/test-env/components/basic_table/in_memory_table.js +8 -8
  439. package/test-env/components/breadcrumbs/breadcrumb.js +16 -12
  440. package/test-env/components/breadcrumbs/breadcrumb.styles.js +5 -0
  441. package/test-env/components/button/button_display/_button_display.js +6 -4
  442. package/test-env/components/button/button_display/_button_display_content.js +8 -4
  443. package/test-env/components/button/button_empty/button_empty.js +9 -7
  444. package/test-env/components/button/button_group/button_group.js +12 -12
  445. package/test-env/components/button/button_group/button_group_button.js +13 -54
  446. package/test-env/components/button/button_group/button_group_button.styles.js +2 -12
  447. package/test-env/components/card/card.a11y.js +5 -18
  448. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +8 -0
  449. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +1 -1
  450. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  451. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  452. package/test-env/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +8 -103
  453. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +20 -58
  454. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +89 -37
  455. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +66 -80
  456. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +11 -28
  457. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +7 -105
  458. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  459. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +10 -89
  460. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +150 -130
  461. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +0 -10
  462. package/test-env/components/combo_box/combo_box.js +8 -6
  463. package/test-env/components/combo_box/combo_box_input/combo_box_input.js +107 -65
  464. package/test-env/components/combo_box/combo_box_input/combo_box_pill.js +8 -18
  465. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +6 -6
  466. package/test-env/components/combo_box/utils.js +31 -0
  467. package/test-env/components/context_menu/context_menu_item.js +16 -8
  468. package/test-env/components/context_menu/context_menu_item.styles.js +1 -1
  469. package/test-env/components/datagrid/body/data_grid_body.js +16 -6
  470. package/test-env/components/datagrid/body/data_grid_body_custom.js +16 -6
  471. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +16 -6
  472. package/test-env/components/datagrid/body/data_grid_cell.js +67 -44
  473. package/test-env/components/datagrid/body/data_grid_cell_actions.js +12 -12
  474. package/test-env/components/datagrid/body/data_grid_cell_popover.js +43 -10
  475. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +72 -43
  476. package/test-env/components/datagrid/body/header/data_grid_header_row.js +16 -6
  477. package/test-env/components/datagrid/controls/column_selector.js +24 -45
  478. package/test-env/components/datagrid/controls/column_sorting.js +22 -36
  479. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +158 -0
  480. package/test-env/components/datagrid/controls/display_selector.js +21 -17
  481. package/test-env/components/datagrid/controls/fullscreen_selector.js +2 -6
  482. package/test-env/components/datagrid/controls/index.js +8 -1
  483. package/test-env/components/datagrid/data_grid.js +2 -863
  484. package/test-env/components/datagrid/index.js +8 -1
  485. package/test-env/components/datagrid/utils/in_memory.js +16 -6
  486. package/test-env/components/datagrid/utils/row_heights.js +1 -1
  487. package/test-env/components/date_picker/auto_refresh/auto_refresh.js +6 -4
  488. package/test-env/components/date_picker/super_date_picker/date_popover/absolute_tab.js +86 -26
  489. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.js +1 -1
  490. package/test-env/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +1 -2
  491. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +19 -0
  492. package/test-env/components/date_picker/super_date_picker/super_update_button.js +1 -1
  493. package/test-env/components/error_boundary/error_boundary.a11y.js +1 -1
  494. package/test-env/components/expression/expression.a11y.js +2 -4
  495. package/test-env/components/facet/facet_button.js +6 -4
  496. package/test-env/components/filter_group/filter_button.js +2 -2
  497. package/test-env/components/filter_group/filter_group.styles.js +1 -1
  498. package/test-env/components/focus_trap/focus_trap.a11y.js +3 -3
  499. package/test-env/components/form/range/range.a11y.js +5 -10
  500. package/test-env/components/form/super_select/super_select.js +3 -2
  501. package/test-env/components/form/super_select/super_select_control.js +12 -19
  502. package/test-env/components/header/header.a11y.js +1 -1
  503. package/test-env/components/header/header_links/header_link.js +7 -5
  504. package/test-env/components/header/header_section/header_section_item_button.js +7 -5
  505. package/test-env/components/i18n/i18n.js +1 -0
  506. package/test-env/components/image/image.a11y.js +1 -2
  507. package/test-env/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  508. package/test-env/components/link/external_link_icon.js +56 -0
  509. package/test-env/components/link/link.js +6 -20
  510. package/test-env/components/link/link.styles.js +1 -4
  511. package/test-env/components/list_group/list_group.js +6 -1
  512. package/test-env/components/list_group/list_group_item.js +14 -4
  513. package/test-env/components/list_group/list_group_item.styles.js +2 -1
  514. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +12 -2
  515. package/test-env/components/notification/notification_event.a11y.js +1 -2
  516. package/test-env/components/notification/notification_event.js +7 -5
  517. package/test-env/components/popover/input_popover.js +1 -1
  518. package/test-env/components/popover/popover.js +33 -36
  519. package/test-env/components/popover/popover_arrow/_popover_arrow.styles.js +1 -3
  520. package/test-env/components/popover/popover_panel/_popover_panel.js +2 -1
  521. package/test-env/components/popover/popover_panel/_popover_panel.styles.js +6 -1
  522. package/test-env/components/resizable_container/resizable_container.a11y.js +4 -8
  523. package/test-env/components/search_bar/search_bar.a11y.js +3 -6
  524. package/test-env/components/selectable/selectable.js +16 -1
  525. package/test-env/components/selectable/selectable_list/selectable_list.js +227 -78
  526. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +28 -11
  527. package/test-env/components/text/text.styles.js +2 -2
  528. package/test-env/components/text_truncate/text_truncate.js +32 -9
  529. package/test-env/components/toast/global_toast_list.js +11 -1
  530. package/test-env/global_styling/mixins/_states.js +4 -1
  531. package/test-env/services/color/eui_palettes.js +1 -8
  532. package/test-env/services/color/index.js +0 -7
  533. package/test-env/services/hooks/useCombinedRefs.js +19 -10
  534. package/test-env/services/index.js +0 -15
  535. package/test-env/test/rtl/component_helpers.js +41 -3
  536. package/es/services/random.js +0 -94
  537. package/es/services/utils.js +0 -25
  538. package/es/test/patch_random.js +0 -18
  539. package/lib/services/random.js +0 -100
  540. package/lib/services/utils.js +0 -35
  541. package/lib/test/patch_random.js +0 -25
  542. package/optimize/es/services/random.js +0 -85
  543. package/optimize/es/services/utils.js +0 -25
  544. package/optimize/es/test/patch_random.js +0 -18
  545. package/optimize/lib/services/random.js +0 -91
  546. package/optimize/lib/services/utils.js +0 -35
  547. package/optimize/lib/test/patch_random.js +0 -25
  548. package/src/components/combo_box/combo_box_input/_combo_box_input.scss +0 -12
  549. package/src/components/combo_box/combo_box_input/_combo_box_placeholder.scss +0 -11
  550. package/test-env/services/random.js +0 -91
  551. package/test-env/services/utils.js +0 -35
  552. package/test-env/test/patch_random.js +0 -25
@@ -79,7 +79,7 @@ export var EuiFilterButton = function EuiFilterButton(_ref) {
79
79
  });
80
80
  var buttonTextClassNames = classNames('euiFilterButton__text', {
81
81
  'euiFilterButton__text-hasNotification': showBadge
82
- }, textProps === null || textProps === void 0 ? void 0 : textProps.className);
82
+ }, textProps && textProps.className);
83
83
  var badgeContent = showBadge && ___EmotionJSX(EuiNotificationBadge, {
84
84
  className: "euiFilterButton__notification",
85
85
  css: [notificationStyles.euiFilterButton__notification, isDisabled && notificationStyles.disabled, ";label:badgeContent;"],
@@ -109,7 +109,7 @@ export var EuiFilterButton = function EuiFilterButton(_ref) {
109
109
  type: type,
110
110
  textProps: _objectSpread(_objectSpread({}, textProps), {}, {
111
111
  className: buttonTextClassNames,
112
- css: [textStyles.euiFilterButton__text, showBadge && textStyles.hasNotification, textProps === null || textProps === void 0 ? void 0 : textProps.css]
112
+ css: [textStyles.euiFilterButton__text, showBadge && textStyles.hasNotification, textProps && textProps.css]
113
113
  }),
114
114
  contentProps: _objectSpread(_objectSpread({}, contentProps), {}, {
115
115
  css: [contentStyles.euiFilterButton__content, iconType && contentStyles.hasIcon, contentProps === null || contentProps === void 0 ? void 0 : contentProps.css]
@@ -28,7 +28,7 @@ export var euiFilterGroupStyles = function euiFilterGroupStyles(euiThemeContext)
28
28
  controlCompressedBorderRadius = _euiFormVariables.controlCompressedBorderRadius,
29
29
  controlCompressedHeight = _euiFormVariables.controlCompressedHeight;
30
30
  return {
31
- euiFilterGroup: /*#__PURE__*/css("display:inline-flex;", logicalCSS('max-width', '100%'), " overflow:hidden;background-color:", backgroundColor, ";box-shadow:inset 0 0 0 ", euiTheme.border.width.thin, " ", borderColor, ";>*:not(.euiFilterButton){", euiFilterButtonDisplay(euiThemeContext), ";}.euiPopover__anchor{display:block;.euiFilterButton{", logicalCSS('width', '100%'), ";}}", euiBreakpoint(euiThemeContext, ['xs', 's']), "{flex-wrap:wrap;}", euiBreakpoint(euiThemeContext, ['xs']), "{display:flex;.euiFilterButton{flex-grow:1;}};label:euiFilterGroup;"),
31
+ euiFilterGroup: /*#__PURE__*/css("display:inline-flex;", logicalCSS('max-width', '100%'), " overflow:hidden;background-color:", backgroundColor, ";box-shadow:inset 0 0 0 ", euiTheme.border.width.thin, " ", borderColor, ";>*:not(.euiFilterButton){", euiFilterButtonDisplay(euiThemeContext), ";}.euiPopover>.euiFilterButton{", logicalCSS('width', '100%'), ";}", euiBreakpoint(euiThemeContext, ['xs', 's']), "{flex-wrap:wrap;}", euiBreakpoint(euiThemeContext, ['xs']), "{display:flex;.euiFilterButton{flex-grow:1;}};label:euiFilterGroup;"),
32
32
  fullWidth: _ref,
33
33
  uncompressed: /*#__PURE__*/css("border-radius:", controlBorderRadius, ";", buttonChildrenBorderRadii(controlBorderRadius), ";;label:uncompressed;"),
34
34
  compressed: /*#__PURE__*/css("border-radius:", controlCompressedBorderRadius, ";", buttonChildrenBorderRadii(controlCompressedBorderRadius), " .euiFilterButton{", logicalCSS('height', controlCompressedHeight), ";};label:compressed;"),
@@ -108,12 +108,12 @@ describe('EuiFocusTrap', function () {
108
108
  });
109
109
  describe('Accessibility checks for keyboard navigation', function () {
110
110
  it('allows the button outside the FocusTrap to receive focus', function () {
111
- cy.repeatRealPress('Tab', 5);
112
- cy.get('button[data-test-subj="cy-external-button"]').should('have.focus');
111
+ cy.get('button[data-test-subj="cy-external-button"]').focus();
113
112
  cy.checkAxe();
114
113
  });
115
114
  it('prevents the button outside the FocusTrap from receiving focus', function () {
116
- cy.repeatRealPress('Tab', 4);
115
+ cy.get('input[data-test-subj="cy-input-one"]').focus();
116
+ cy.repeatRealPress('Tab', 3);
117
117
  cy.realPress('Enter');
118
118
  cy.realPress('Tab');
119
119
  cy.get('input[data-test-subj="cy-input-one"]').should('have.focus');
@@ -54,15 +54,13 @@ describe('Single EuiRange', function () {
54
54
  });
55
55
  describe('Keyboard accessibility check', function () {
56
56
  it('has zero violations when the range slider is increased', function () {
57
- cy.realPress('Tab');
58
- cy.get('input#cy-range-single').should('have.focus');
57
+ cy.get('input#cy-range-single').focus();
59
58
  cy.repeatRealPress('ArrowRight', 10);
60
59
  cy.get('output.euiRangeTooltip__value').contains('100 - 110');
61
60
  cy.checkAxe();
62
61
  });
63
62
  it('has zero violations when the range slider is decreased', function () {
64
- cy.realPress('Tab');
65
- cy.get('input#cy-range-single').should('have.focus');
63
+ cy.get('input#cy-range-single').focus();
66
64
  cy.repeatRealPress('ArrowLeft', 10);
67
65
  cy.get('output.euiRangeTooltip__value').contains('100 - 100');
68
66
  cy.checkAxe();
@@ -101,8 +99,7 @@ describe('Dual EuiRange', function () {
101
99
  });
102
100
  describe('Keyboard accessibility check', function () {
103
101
  it('has zero violations when the range sliders are adjusted', function () {
104
- cy.realPress('Tab');
105
- cy.get('div[role="slider"]').first().should('have.focus');
102
+ cy.get('div[role="slider"]').first().focus();
106
103
  cy.repeatRealPress('ArrowLeft', 3);
107
104
  cy.get('div[role="slider"]').first().invoke('attr', 'aria-valuenow').should('eq', '70');
108
105
  cy.realPress('Tab');
@@ -143,8 +140,7 @@ describe('Highlight Area EuiRange', function () {
143
140
  });
144
141
  describe('Keyboard accessibility check', function () {
145
142
  it('has zero violations when the highlight area is adjusted using arrow keys', function () {
146
- cy.realPress('Tab');
147
- cy.get('div[role="slider"]').first().should('have.focus');
143
+ cy.get('div[role="slider"]').first().focus();
148
144
  cy.repeatRealPress('ArrowLeft', 3);
149
145
  cy.get('div[role="slider"]').first().invoke('attr', 'aria-valuetext').should('eq', '37, 57');
150
146
  cy.checkAxe();
@@ -189,8 +185,7 @@ describe('Highlight Area EuiRange', function () {
189
185
  });
190
186
  describe('Keyboard accessibility check', function () {
191
187
  it('updates the range value using arrow keys with input[type="number"]', function () {
192
- cy.realPress('Tab');
193
- cy.get('input#cy-range-in-dropdown').should('have.focus');
188
+ cy.get('input#cy-range-in-dropdown').focus();
194
189
  cy.repeatRealPress('ArrowUp', 10);
195
190
  cy.get('input[type="range"]').first().invoke('attr', 'value').should('eq', '30');
196
191
  cy.checkAxe();
@@ -221,6 +221,7 @@ export var EuiSuperSelect = /*#__PURE__*/function (_Component) {
221
221
  dropdownDisplay = option.dropdownDisplay,
222
222
  inputDisplay = option.inputDisplay,
223
223
  optionRest = _objectWithoutProperties(option, _excluded2);
224
+ if (value == null) return;
224
225
  return ___EmotionJSX(EuiContextMenuItem, _extends({
225
226
  key: index,
226
227
  className: itemClasses,
@@ -234,7 +235,7 @@ export var EuiSuperSelect = /*#__PURE__*/function (_Component) {
234
235
  return _this2.setItemNode(node, index);
235
236
  },
236
237
  role: "option",
237
- id: value,
238
+ id: String(value),
238
239
  "aria-selected": valueOfSelected === value
239
240
  }, optionRest), dropdownDisplay || inputDisplay);
240
241
  });
@@ -260,7 +261,7 @@ export var EuiSuperSelect = /*#__PURE__*/function (_Component) {
260
261
  "aria-describedby": _this2.describedById,
261
262
  className: "euiSuperSelect__listbox",
262
263
  role: "listbox",
263
- "aria-activedescendant": valueOfSelected,
264
+ "aria-activedescendant": valueOfSelected != null ? String(valueOfSelected) : undefined,
264
265
  tabIndex: 0
265
266
  }, items);
266
267
  }));
@@ -10,7 +10,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
10
10
  * Side Public License, v 1.
11
11
  */
12
12
 
13
- import React, { Fragment } from 'react';
13
+ import React, { useMemo } from 'react';
14
14
  import classNames from 'classnames';
15
15
  import { EuiFormControlLayout } from '../form_control_layout';
16
16
  import { getFormControlClassNameForIconCount } from '../form_control_layout/_num_icons';
@@ -20,8 +20,7 @@ export var EuiSuperSelectControl = function EuiSuperSelectControl(props) {
20
20
  var _useFormContext = useFormContext(),
21
21
  defaultFullWidth = _useFormContext.defaultFullWidth;
22
22
  var className = props.className,
23
- _props$options = props.options,
24
- options = _props$options === void 0 ? [] : _props$options,
23
+ options = props.options,
25
24
  id = props.id,
26
25
  name = props.name,
27
26
  _props$fullWidth = props.fullWidth,
@@ -52,27 +51,21 @@ export var EuiSuperSelectControl = function EuiSuperSelectControl(props) {
52
51
  'euiSuperSelectControl-isLoading': isLoading,
53
52
  'euiSuperSelectControl-isInvalid': isInvalid
54
53
  }, className);
55
-
56
- // React HTML input can not have both value and defaultValue properties.
57
- // https://reactjs.org/docs/uncontrolled-components.html#default-values
58
- var selectDefaultValue;
59
- if (value == null) {
60
- selectDefaultValue = defaultValue || '';
61
- }
62
- var selectedValue;
63
- if (value) {
64
- var selectedOption = options.find(function (option) {
65
- return option.value === value;
66
- });
67
- selectedValue = selectedOption ? selectedOption.inputDisplay : selectedValue;
68
- }
54
+ var inputValue = value != null ? value : defaultValue;
55
+ var selectedValue = useMemo(function () {
56
+ if (inputValue != null) {
57
+ var selectedOption = options === null || options === void 0 ? void 0 : options.find(function (option) {
58
+ return option.value === inputValue;
59
+ });
60
+ return selectedOption ? selectedOption.inputDisplay : undefined;
61
+ }
62
+ }, [inputValue, options]);
69
63
  var showPlaceholder = !!placeholder && !selectedValue;
70
- return ___EmotionJSX(Fragment, null, ___EmotionJSX("input", {
64
+ return ___EmotionJSX(React.Fragment, null, ___EmotionJSX("input", {
71
65
  type: "hidden",
72
66
  id: id,
73
67
  name: name,
74
- defaultValue: selectDefaultValue,
75
- value: value,
68
+ value: String(inputValue !== null && inputValue !== void 0 ? inputValue : ''),
76
69
  readOnly: readOnly
77
70
  }), ___EmotionJSX(EuiFormControlLayout, {
78
71
  isDropdown: true,
@@ -332,7 +332,7 @@ describe('EuiHeader', function () {
332
332
  cy.checkAxe();
333
333
  });
334
334
  it('has zero violations when a hidden breadcrumb is expanded', function () {
335
- cy.get('button[aria-label="See collapsed breadcrumbs"]').realClick();
335
+ cy.get('button[title="See collapsed breadcrumbs"]').realClick();
336
336
  cy.get('a[data-test-subj="cy-breadcrumb-hidden"]').should('exist');
337
337
  cy.checkAxe();
338
338
  });
@@ -101,6 +101,8 @@ EuiHeaderBreadcrumbs.propTypes = {
101
101
  popoverProps: PropTypes.shape({
102
102
  /**
103
103
  * Class name passed to the direct parent of the button
104
+ *
105
+ * @deprecated Use `className` instead
104
106
  */
105
107
  anchorClassName: PropTypes.string,
106
108
  /**
@@ -112,6 +114,9 @@ EuiHeaderBreadcrumbs.propTypes = {
112
114
  * Intended for use with inputs as anchors, e.g. EuiInputPopover
113
115
  */
114
116
  attachToAnchor: PropTypes.bool,
117
+ /**
118
+ * @deprecated Use `popoverRef` instead
119
+ */
115
120
  buttonRef: PropTypes.any,
116
121
  /**
117
122
  * Restrict the popover's position within this element
@@ -180,11 +185,6 @@ EuiHeaderBreadcrumbs.propTypes = {
180
185
  */
181
186
  grow: PropTypes.bool,
182
187
  panelRef: PropTypes.any,
183
- /**
184
- * Background color of the panel;
185
- * Usually a lightened form of the brand colors
186
- */
187
- color: PropTypes.any,
188
188
  className: PropTypes.string,
189
189
  "aria-label": PropTypes.string,
190
190
  "data-test-subj": PropTypes.string,
@@ -77,10 +77,10 @@ EuiHeaderLink.propTypes = {
77
77
  type: PropTypes.oneOf(["button", "submit"]),
78
78
  buttonRef: PropTypes.any,
79
79
  /**
80
- * Object of props passed to the <span/> wrapping the button's content
80
+ * Object of props passed to the `<span>` wrapping the button's content
81
81
  */
82
82
  /**
83
- * Object of props passed to the <span/> wrapping the button's content
83
+ * Object of props passed to the `<span>` wrapping the button's content
84
84
  */
85
85
  contentProps: PropTypes.shape({
86
86
  className: PropTypes.string,
@@ -97,16 +97,18 @@ EuiHeaderLink.propTypes = {
97
97
  */
98
98
  iconSide: PropTypes.oneOfType([PropTypes.any.isRequired, PropTypes.oneOf([undefined])]),
99
99
  /**
100
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
100
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
101
+ *
102
+ * This span wrapper can be removed by passing `textProps={false}`.
101
103
  */
102
- textProps: PropTypes.shape({
104
+ textProps: PropTypes.oneOfType([PropTypes.shape({
103
105
  className: PropTypes.string,
104
106
  "aria-label": PropTypes.string,
105
107
  "data-test-subj": PropTypes.string,
106
108
  css: PropTypes.any,
107
109
  ref: PropTypes.any,
108
110
  "data-text": PropTypes.string
109
- }),
111
+ }).isRequired, PropTypes.oneOf([false])]),
110
112
  iconSize: PropTypes.any,
111
113
  className: PropTypes.string,
112
114
  "aria-label": PropTypes.string,
@@ -132,6 +132,8 @@ EuiHeaderLinks.propTypes = {
132
132
  popoverProps: PropTypes.shape({
133
133
  /**
134
134
  * Class name passed to the direct parent of the button
135
+ *
136
+ * @deprecated Use `className` instead
135
137
  */
136
138
  anchorClassName: PropTypes.string,
137
139
  /**
@@ -143,6 +145,9 @@ EuiHeaderLinks.propTypes = {
143
145
  * Intended for use with inputs as anchors, e.g. EuiInputPopover
144
146
  */
145
147
  attachToAnchor: PropTypes.bool,
148
+ /**
149
+ * @deprecated Use `popoverRef` instead
150
+ */
146
151
  buttonRef: PropTypes.any,
147
152
  /**
148
153
  * Restrict the popover's position within this element
@@ -211,11 +216,6 @@ EuiHeaderLinks.propTypes = {
211
216
  */
212
217
  grow: PropTypes.bool,
213
218
  panelRef: PropTypes.any,
214
- /**
215
- * Background color of the panel;
216
- * Usually a lightened form of the brand colors
217
- */
218
- color: PropTypes.any,
219
219
  className: PropTypes.string,
220
220
  "aria-label": PropTypes.string,
221
221
  "data-test-subj": PropTypes.string,
@@ -217,10 +217,10 @@ EuiHeaderSectionItemButton.propTypes = {
217
217
  type: PropTypes.oneOf(["button", "submit"]),
218
218
  buttonRef: PropTypes.any,
219
219
  /**
220
- * Object of props passed to the <span/> wrapping the button's content
220
+ * Object of props passed to the `<span>` wrapping the button's content
221
221
  */
222
222
  /**
223
- * Object of props passed to the <span/> wrapping the button's content
223
+ * Object of props passed to the `<span>` wrapping the button's content
224
224
  */
225
225
  contentProps: PropTypes.shape({
226
226
  className: PropTypes.string,
@@ -237,16 +237,18 @@ EuiHeaderSectionItemButton.propTypes = {
237
237
  */
238
238
  iconSide: PropTypes.oneOfType([PropTypes.any.isRequired, PropTypes.oneOf([undefined])]),
239
239
  /**
240
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
240
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
241
+ *
242
+ * This span wrapper can be removed by passing `textProps={false}`.
241
243
  */
242
- textProps: PropTypes.shape({
244
+ textProps: PropTypes.oneOfType([PropTypes.shape({
243
245
  className: PropTypes.string,
244
246
  "aria-label": PropTypes.string,
245
247
  "data-test-subj": PropTypes.string,
246
248
  css: PropTypes.any,
247
249
  ref: PropTypes.any,
248
250
  "data-text": PropTypes.string
249
- }),
251
+ }).isRequired, PropTypes.oneOf([false])]),
250
252
  iconSize: PropTypes.any,
251
253
  className: PropTypes.string,
252
254
  "aria-label": PropTypes.string,
@@ -75,6 +75,7 @@ var EuiI18n = function EuiI18n(props) {
75
75
  i18nMapping: mapping,
76
76
  i18nMappingFunc: mappingFunc,
77
77
  valueDefault: props.defaults[idx],
78
+ values: props.values,
78
79
  render: render
79
80
  });
80
81
  }));
@@ -42,8 +42,7 @@ describe('EuiImage', function () {
42
42
  cy.checkAxe();
43
43
  });
44
44
  it('has zero violations on keyboard interaction', function () {
45
- cy.realPress('Tab');
46
- cy.get('button[data-test-subj="activateFullScreenButton"]').should('have.focus');
45
+ cy.get('button[data-test-subj="activateFullScreenButton"]').focus();
47
46
  cy.realPress('Enter');
48
47
  cy.get('button[data-test-subj="deactivateFullScreenButton"]').should('exist');
49
48
  cy.get('button[data-test-subj="deactivateFullScreenButton"]').should('have.focus');
@@ -132,20 +132,20 @@ describe('EuiKeyPadMenu', function () {
132
132
  });
133
133
  it('has zero violations on item click', function () {
134
134
  cy.get('a[data-test-subj="cy-keypad-link-2"]').realClick();
135
- cy.get('a[data-test-subj="cy-keypad-link-2"]').should('have.class', 'euiKeyPadMenuItem-isSelected');
135
+ cy.get('a[data-test-subj="cy-keypad-link-2"]').should('have.attr', 'aria-current', 'true');
136
136
  cy.checkAxe();
137
137
  });
138
138
  it('has zero violations on item keypress', function () {
139
139
  cy.repeatRealPress('Tab', 3);
140
140
  cy.get('button[data-test-subj="cy-keypad-button-3"]').should('have.focus');
141
141
  cy.realPress('Space');
142
- cy.get('button[data-test-subj="cy-keypad-button-3"]').should('have.class', 'euiKeyPadMenuItem-isSelected');
142
+ cy.get('button[data-test-subj="cy-keypad-button-3"]').should('have.attr', 'aria-pressed', 'true');
143
143
  cy.checkAxe();
144
144
  cy.realPress(['Shift', 'Tab']);
145
- cy.get('button[data-test-subj="cy-keypad-button-2"]').should('have.focus');
145
+ cy.get('button[data-test-subj="cy-keypad-button-2"]').should('have.attr', 'aria-pressed', 'false');
146
146
  cy.realPress('Space');
147
- cy.get('button[data-test-subj="cy-keypad-button-2"]').should('have.class', 'euiKeyPadMenuItem-isSelected');
148
- cy.get('button[data-test-subj="cy-keypad-button-3"]').should('not.have.class', 'euiKeyPadMenuItem-isSelected');
147
+ cy.get('button[data-test-subj="cy-keypad-button-2"]').invoke('attr', 'aria-pressed').should('equal', 'true');
148
+ cy.get('button[data-test-subj="cy-keypad-button-3"]').invoke('attr', 'aria-pressed').should('equal', 'false');
149
149
  cy.checkAxe();
150
150
  });
151
151
  });
@@ -0,0 +1,51 @@
1
+ var _excluded = ["target", "external"];
2
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
3
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
4
+ 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; }
5
+ /*
6
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
7
+ * or more contributor license agreements. Licensed under the Elastic License
8
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
9
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
10
+ * Side Public License, v 1.
11
+ */
12
+
13
+ import React from 'react';
14
+ import PropTypes from "prop-types";
15
+ import { useEuiTheme } from '../../services';
16
+ import { logicalStyle } from '../../global_styling';
17
+ import { EuiIcon } from '../icon';
18
+ import { EuiI18n, useEuiI18n } from '../i18n';
19
+ import { EuiScreenReaderOnly } from '../accessibility';
20
+
21
+ /**
22
+ * DRY util for indicating external links both via icon and to
23
+ * screen readers. Used internally by at EuiLink and EuiListGroupItem
24
+ */
25
+ import { jsx as ___EmotionJSX } from "@emotion/react";
26
+ export var EuiExternalLinkIcon = function EuiExternalLinkIcon(_ref) {
27
+ var target = _ref.target,
28
+ external = _ref.external,
29
+ rest = _objectWithoutProperties(_ref, _excluded);
30
+ var _useEuiTheme = useEuiTheme(),
31
+ euiTheme = _useEuiTheme.euiTheme;
32
+ var showExternalLinkIcon = target === '_blank' && external !== false || external === true;
33
+ var iconAriaLabel = useEuiI18n('euiExternalLinkIcon.ariaLabel', 'External link');
34
+ return ___EmotionJSX(React.Fragment, null, showExternalLinkIcon && ___EmotionJSX(EuiIcon, _extends({
35
+ css: logicalStyle('margin-left', euiTheme.size.xs),
36
+ "aria-label": iconAriaLabel,
37
+ size: "s",
38
+ type: "popout"
39
+ }, rest)), target === '_blank' && ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("span", null, ___EmotionJSX(EuiI18n, {
40
+ token: "euiExternalLinkIcon.newTarget.screenReaderOnlyText",
41
+ default: "(opens in a new tab or window)"
42
+ }))));
43
+ };
44
+ EuiExternalLinkIcon.propTypes = {
45
+ target: PropTypes.any,
46
+ /**
47
+ * Set to true to show an icon indicating that it is an external link;
48
+ * Defaults to true if `target="_blank"`
49
+ */
50
+ external: PropTypes.bool
51
+ };
@@ -20,11 +20,9 @@ import React, { forwardRef } from 'react';
20
20
  import PropTypes from "prop-types";
21
21
  import classNames from 'classnames';
22
22
  import { getSecureRelForTarget, useEuiTheme } from '../../services';
23
- import { euiLinkStyles } from './link.styles';
24
- import { EuiIcon } from '../icon';
25
- import { EuiI18n, useEuiI18n } from '../i18n';
26
- import { EuiScreenReaderOnly } from '../accessibility';
27
23
  import { validateHref } from '../../services/security/href_validator';
24
+ import { EuiExternalLinkIcon } from './external_link_icon';
25
+ import { euiLinkStyles } from './link.styles';
28
26
  import { jsx as ___EmotionJSX } from "@emotion/react";
29
27
  export var COLORS = ['primary', 'subdued', 'success', 'accent', 'danger', 'warning', 'text', 'ghost'];
30
28
  var EuiLink = /*#__PURE__*/forwardRef(function (_ref, ref) {
@@ -44,22 +42,8 @@ var EuiLink = /*#__PURE__*/forwardRef(function (_ref, ref) {
44
42
  var euiTheme = useEuiTheme();
45
43
  var styles = euiLinkStyles(euiTheme);
46
44
  var cssStyles = [styles.euiLink];
47
- var cssScreenReaderTextStyles = [styles.euiLink__screenReaderText];
48
- var cssExternalLinkIconStyles = [styles.euiLink__externalIcon];
49
45
  var isHrefValid = !href || validateHref(href);
50
46
  var disabled = _disabled || !isHrefValid;
51
- var newTargetScreenreaderText = ___EmotionJSX(EuiScreenReaderOnly, {
52
- css: cssScreenReaderTextStyles
53
- }, ___EmotionJSX("span", null, ___EmotionJSX(EuiI18n, {
54
- token: "euiLink.newTarget.screenReaderOnlyText",
55
- default: "(opens in a new tab or window)"
56
- })));
57
- var externalLinkIcon = ___EmotionJSX(EuiIcon, {
58
- "aria-label": useEuiI18n('euiLink.external.ariaLabel', 'External link'),
59
- size: "s",
60
- css: cssExternalLinkIconStyles,
61
- type: "popout"
62
- });
63
47
  if (href === undefined || !isHrefValid) {
64
48
  var buttonProps = _objectSpread({
65
49
  className: classNames('euiLink', className),
@@ -85,10 +69,12 @@ var EuiLink = /*#__PURE__*/forwardRef(function (_ref, ref) {
85
69
  rel: secureRel,
86
70
  onClick: onClick
87
71
  }, rest);
88
- var showExternalLinkIcon = target === '_blank' && external !== false || external === true;
89
72
  return ___EmotionJSX("a", _extends({
90
73
  ref: ref
91
- }, anchorProps), children, showExternalLinkIcon && externalLinkIcon, target === '_blank' && newTargetScreenreaderText);
74
+ }, anchorProps), children, ___EmotionJSX(EuiExternalLinkIcon, {
75
+ external: external,
76
+ target: target
77
+ }));
92
78
  });
93
79
  EuiLink.propTypes = {
94
80
  className: PropTypes.string,
@@ -8,7 +8,7 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
8
8
  */
9
9
 
10
10
  import { css } from '@emotion/react';
11
- import { euiFocusRing, logicalCSS, logicalTextAlignCSS } from '../../global_styling';
11
+ import { euiFocusRing, logicalTextAlignCSS } from '../../global_styling';
12
12
  var _colorCSS = function _colorCSS(color) {
13
13
  return "\n color: ".concat(color, ";\n\n &:target {\n color: darken(").concat(color, ", 10%);\n }\n ");
14
14
  };
@@ -43,9 +43,6 @@ export var euiLinkStyles = function euiLinkStyles(euiThemeContext) {
43
43
  danger: /*#__PURE__*/css(_colorCSS(euiTheme.colors.dangerText), ";label:danger;"),
44
44
  warning: /*#__PURE__*/css(_colorCSS(euiTheme.colors.warningText), ";label:warning;"),
45
45
  ghost: /*#__PURE__*/css(_colorCSS(euiTheme.colors.ghost), ";label:ghost;"),
46
- text: /*#__PURE__*/css(_colorCSS(euiTheme.colors.text), ";label:text;"),
47
- // Children
48
- euiLink__screenReaderText: /*#__PURE__*/css(logicalCSS('left', '0px'), ";;label:euiLink__screenReaderText;"),
49
- euiLink__externalIcon: /*#__PURE__*/css(logicalCSS('margin-left', euiTheme.size.xs), ";;label:euiLink__externalIcon;")
46
+ text: /*#__PURE__*/css(_colorCSS(euiTheme.colors.text), ";label:text;")
50
47
  };
51
48
  };
@@ -141,8 +141,13 @@ EuiListGroup.propTypes = {
141
141
  * While permitted, `href` and `onClick` should not be used together in most cases and may create problems.
142
142
  */
143
143
  href: PropTypes.string,
144
- target: PropTypes.string,
145
144
  rel: PropTypes.string,
145
+ target: PropTypes.string,
146
+ /**
147
+ * Set to true to show an icon indicating that it is an external link;
148
+ * Defaults to true if `target="_blank"`
149
+ */
150
+ external: PropTypes.bool,
146
151
  /**
147
152
  * Adds `EuiIcon` of `EuiIcon.type`
148
153
  */
@@ -1,5 +1,5 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- var _excluded = ["label", "isActive", "isDisabled", "href", "target", "rel", "className", "css", "style", "iconType", "icon", "iconProps", "extraAction", "onClick", "size", "color", "showToolTip", "wrapText", "buttonRef", "toolTipText", "toolTipProps"],
2
+ var _excluded = ["label", "isActive", "isDisabled", "href", "rel", "target", "external", "className", "css", "style", "iconType", "icon", "iconProps", "extraAction", "onClick", "size", "color", "showToolTip", "wrapText", "buttonRef", "toolTipText", "toolTipProps"],
3
3
  _excluded2 = ["iconType", "alwaysShow", "isDisabled"];
4
4
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -32,6 +32,7 @@ import { useInnerText } from '../inner_text';
32
32
  import { EuiListGroupItemExtraAction } from './list_group_item_extra_action';
33
33
  import { getSecureRelForTarget, useEuiTheme, cloneElementWithCss } from '../../services';
34
34
  import { validateHref } from '../../services/security/href_validator';
35
+ import { EuiExternalLinkIcon } from '../link/external_link_icon';
35
36
  import { euiListGroupItemStyles, euiListGroupItemIconStyles, euiListGroupItemInnerStyles, euiListGroupItemTooltipStyles, euiListGroupItemLabelStyles } from './list_group_item.styles';
36
37
  import { jsx as ___EmotionJSX } from "@emotion/react";
37
38
  export var SIZES = ['xs', 's', 'm', 'l'];
@@ -43,8 +44,9 @@ export var EuiListGroupItem = function EuiListGroupItem(_ref) {
43
44
  _ref$isDisabled = _ref.isDisabled,
44
45
  _isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
45
46
  href = _ref.href,
46
- target = _ref.target,
47
47
  rel = _ref.rel,
48
+ target = _ref.target,
49
+ external = _ref.external,
48
50
  className = _ref.className,
49
51
  customCss = _ref.css,
50
52
  style = _ref.style,
@@ -144,7 +146,10 @@ export var EuiListGroupItem = function EuiListGroupItem(_ref) {
144
146
  target: target
145
147
  }),
146
148
  onClick: onClick
147
- }, rest), iconNode, labelContent);
149
+ }, rest), iconNode, labelContent, ___EmotionJSX(EuiExternalLinkIcon, {
150
+ external: external,
151
+ target: target
152
+ }));
148
153
  } else if (href && isDisabled || onClick) {
149
154
  itemContent = ___EmotionJSX("button", _extends({
150
155
  type: "button",
@@ -223,8 +228,13 @@ EuiListGroupItem.propTypes = {
223
228
  * While permitted, `href` and `onClick` should not be used together in most cases and may create problems.
224
229
  */
225
230
  href: PropTypes.string,
226
- target: PropTypes.string,
227
231
  rel: PropTypes.string,
232
+ target: PropTypes.string,
233
+ /**
234
+ * Set to true to show an icon indicating that it is an external link;
235
+ * Defaults to true if `target="_blank"`
236
+ */
237
+ external: PropTypes.bool,
228
238
  /**
229
239
  * Adds `EuiIcon` of `EuiIcon.type`
230
240
  */
@@ -67,7 +67,8 @@ export var euiListGroupItemInnerStyles = function euiListGroupItemInnerStyles(eu
67
67
  // Variants
68
68
  isDisabled: /*#__PURE__*/css("cursor:not-allowed;&,&:hover,&:focus{color:", euiButtonColor(euiThemeContext, 'disabled').color, ";cursor:not-allowed;background-color:transparent;text-decoration:none;};label:isDisabled;"),
69
69
  isActive: /*#__PURE__*/css(";label:isActive;"),
70
- isClickable: _ref
70
+ isClickable: _ref,
71
+ externalIcon: /*#__PURE__*/css(logicalCSS('margin-left', euiTheme.size.xs), ";;label:externalIcon;")
71
72
  };
72
73
  };
73
74
  export var euiListGroupItemLabelStyles = function euiListGroupItemLabelStyles() {
@@ -138,8 +138,13 @@ EuiPinnableListGroup.propTypes = {
138
138
  * While permitted, `href` and `onClick` should not be used together in most cases and may create problems.
139
139
  */
140
140
  href: PropTypes.string,
141
- target: PropTypes.string,
142
141
  rel: PropTypes.string,
142
+ target: PropTypes.string,
143
+ /**
144
+ * Set to true to show an icon indicating that it is an external link;
145
+ * Defaults to true if `target="_blank"`
146
+ */
147
+ external: PropTypes.bool,
143
148
  /**
144
149
  * Adds `EuiIcon` of `EuiIcon.type`
145
150
  */
@@ -269,8 +274,13 @@ EuiPinnableListGroup.propTypes = {
269
274
  * While permitted, `href` and `onClick` should not be used together in most cases and may create problems.
270
275
  */
271
276
  href: PropTypes.string,
272
- target: PropTypes.string,
273
277
  rel: PropTypes.string,
278
+ target: PropTypes.string,
279
+ /**
280
+ * Set to true to show an icon indicating that it is an external link;
281
+ * Defaults to true if `target="_blank"`
282
+ */
283
+ external: PropTypes.bool,
274
284
  /**
275
285
  * Adds `EuiIcon` of `EuiIcon.type`
276
286
  */
@@ -92,8 +92,7 @@ describe('EuiNotificationEvent', function () {
92
92
  });
93
93
  describe('Keyboard accessibility', function () {
94
94
  it('has zero violations when the popover is opened by keyboard', function () {
95
- cy.repeatRealPress('Tab');
96
- cy.get('button[data-test-subj="cy-eui-notification-1-notificationEventMetaButton"]').should('have.focus');
95
+ cy.get('button[data-test-subj="cy-eui-notification-1-notificationEventMetaButton"]').focus();
97
96
  cy.realPress('Enter');
98
97
  cy.get('div.euiPopover__panel').should('exist');
99
98
  cy.checkAxe();