@elastic/eui 91.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 (382) hide show
  1. package/dist/eui_theme_dark.css +191 -124
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +191 -124
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/accordion/accordion.a11y.js +1 -3
  6. package/es/components/basic_table/action_types.js +5 -0
  7. package/es/components/basic_table/basic_table.a11y.js +1 -2
  8. package/es/components/basic_table/basic_table.js +8 -8
  9. package/es/components/basic_table/collapsed_item_actions.js +120 -249
  10. package/es/components/basic_table/custom_item_action.js +9 -95
  11. package/es/components/basic_table/default_item_action.js +23 -14
  12. package/es/components/basic_table/in_memory_table.a11y.js +13 -11
  13. package/es/components/basic_table/in_memory_table.js +8 -8
  14. package/es/components/breadcrumbs/breadcrumb.js +11 -7
  15. package/es/components/breadcrumbs/breadcrumb.styles.js +5 -0
  16. package/es/components/button/button_display/_button_display.js +5 -3
  17. package/es/components/button/button_display/_button_display_content.js +8 -4
  18. package/es/components/button/button_empty/button_empty.js +9 -7
  19. package/es/components/button/button_group/button_group.js +5 -3
  20. package/es/components/button/button_group/button_group_button.js +5 -3
  21. package/es/components/card/card.a11y.js +5 -18
  22. package/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +2 -2
  23. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  24. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  25. package/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +1 -101
  26. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +20 -58
  27. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +89 -37
  28. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +67 -81
  29. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +1 -19
  30. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +7 -102
  31. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  32. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +7 -90
  33. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +150 -130
  34. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +0 -10
  35. package/es/components/combo_box/combo_box.js +1 -1
  36. package/es/components/context_menu/context_menu_item.js +16 -8
  37. package/es/components/context_menu/context_menu_item.styles.js +1 -1
  38. package/es/components/datagrid/body/data_grid_body.js +16 -6
  39. package/es/components/datagrid/body/data_grid_body_custom.js +16 -6
  40. package/es/components/datagrid/body/data_grid_body_virtualized.js +16 -6
  41. package/es/components/datagrid/body/data_grid_cell.js +67 -44
  42. package/es/components/datagrid/body/data_grid_cell_actions.js +12 -12
  43. package/es/components/datagrid/body/data_grid_cell_popover.js +43 -10
  44. package/es/components/datagrid/body/header/data_grid_header_cell.js +65 -34
  45. package/es/components/datagrid/body/header/data_grid_header_row.js +16 -6
  46. package/es/components/datagrid/controls/column_selector.js +19 -39
  47. package/es/components/datagrid/controls/column_sorting.js +18 -29
  48. package/es/components/datagrid/controls/data_grid_toolbar_control.js +154 -0
  49. package/es/components/datagrid/controls/display_selector.js +0 -1
  50. package/es/components/datagrid/controls/fullscreen_selector.js +2 -6
  51. package/es/components/datagrid/controls/index.js +2 -1
  52. package/es/components/datagrid/index.js +1 -1
  53. package/es/components/datagrid/utils/in_memory.js +16 -6
  54. package/es/components/datagrid/utils/row_heights.js +1 -1
  55. package/es/components/date_picker/auto_refresh/auto_refresh.js +6 -4
  56. package/es/components/date_picker/super_date_picker/super_update_button.js +1 -1
  57. package/es/components/error_boundary/error_boundary.a11y.js +1 -1
  58. package/es/components/expression/expression.a11y.js +2 -4
  59. package/es/components/facet/facet_button.js +5 -3
  60. package/es/components/filter_group/filter_button.js +2 -2
  61. package/es/components/focus_trap/focus_trap.a11y.js +3 -3
  62. package/es/components/form/range/range.a11y.js +5 -10
  63. package/es/components/form/super_select/super_select.js +3 -2
  64. package/es/components/form/super_select/super_select_control.js +13 -20
  65. package/es/components/header/header.a11y.js +1 -1
  66. package/es/components/header/header_links/header_link.js +7 -5
  67. package/es/components/header/header_section/header_section_item_button.js +7 -5
  68. package/es/components/image/image.a11y.js +1 -2
  69. package/es/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  70. package/es/components/link/external_link_icon.js +51 -0
  71. package/es/components/link/link.js +6 -20
  72. package/es/components/link/link.styles.js +2 -5
  73. package/es/components/list_group/list_group.js +6 -1
  74. package/es/components/list_group/list_group_item.js +14 -4
  75. package/es/components/list_group/list_group_item.styles.js +2 -1
  76. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +12 -2
  77. package/es/components/notification/notification_event.a11y.js +1 -2
  78. package/es/components/notification/notification_event.js +7 -5
  79. package/es/components/pagination/pagination_button.js +7 -5
  80. package/es/components/popover/popover.js +4 -1
  81. package/es/components/resizable_container/resizable_container.a11y.js +4 -8
  82. package/es/components/search_bar/search_bar.a11y.js +3 -6
  83. package/es/components/selectable/selectable.js +16 -1
  84. package/es/components/selectable/selectable_list/selectable_list.js +227 -78
  85. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +16 -1
  86. package/es/components/text/text.styles.js +2 -2
  87. package/es/components/text_truncate/text_truncate.js +33 -10
  88. package/eui.d.ts +466 -136
  89. package/i18ntokens.json +224 -260
  90. package/lib/components/accordion/accordion.a11y.js +1 -3
  91. package/lib/components/basic_table/action_types.js +8 -2
  92. package/lib/components/basic_table/basic_table.a11y.js +1 -2
  93. package/lib/components/basic_table/basic_table.js +8 -8
  94. package/lib/components/basic_table/collapsed_item_actions.js +128 -257
  95. package/lib/components/basic_table/custom_item_action.js +18 -104
  96. package/lib/components/basic_table/default_item_action.js +23 -14
  97. package/lib/components/basic_table/in_memory_table.a11y.js +13 -11
  98. package/lib/components/basic_table/in_memory_table.js +8 -8
  99. package/lib/components/breadcrumbs/breadcrumb.js +11 -7
  100. package/lib/components/breadcrumbs/breadcrumb.styles.js +5 -0
  101. package/lib/components/button/button_display/_button_display.js +5 -3
  102. package/lib/components/button/button_display/_button_display_content.js +8 -4
  103. package/lib/components/button/button_empty/button_empty.js +9 -7
  104. package/lib/components/button/button_group/button_group.js +5 -3
  105. package/lib/components/button/button_group/button_group_button.js +5 -3
  106. package/lib/components/card/card.a11y.js +5 -18
  107. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +1 -1
  108. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  109. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  110. package/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +1 -101
  111. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +20 -58
  112. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +89 -37
  113. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +66 -80
  114. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +11 -28
  115. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +7 -104
  116. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  117. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +7 -90
  118. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +150 -130
  119. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +0 -10
  120. package/lib/components/combo_box/combo_box.js +1 -1
  121. package/lib/components/context_menu/context_menu_item.js +16 -8
  122. package/lib/components/context_menu/context_menu_item.styles.js +1 -1
  123. package/lib/components/datagrid/body/data_grid_body.js +16 -6
  124. package/lib/components/datagrid/body/data_grid_body_custom.js +16 -6
  125. package/lib/components/datagrid/body/data_grid_body_virtualized.js +16 -6
  126. package/lib/components/datagrid/body/data_grid_cell.js +67 -44
  127. package/lib/components/datagrid/body/data_grid_cell_actions.js +12 -13
  128. package/lib/components/datagrid/body/data_grid_cell_popover.js +43 -10
  129. package/lib/components/datagrid/body/header/data_grid_header_cell.js +65 -34
  130. package/lib/components/datagrid/body/header/data_grid_header_row.js +16 -6
  131. package/lib/components/datagrid/controls/column_selector.js +19 -39
  132. package/lib/components/datagrid/controls/column_sorting.js +18 -30
  133. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +159 -0
  134. package/lib/components/datagrid/controls/display_selector.js +0 -1
  135. package/lib/components/datagrid/controls/fullscreen_selector.js +2 -7
  136. package/lib/components/datagrid/controls/index.js +8 -1
  137. package/lib/components/datagrid/index.js +8 -1
  138. package/lib/components/datagrid/utils/in_memory.js +16 -6
  139. package/lib/components/datagrid/utils/row_heights.js +1 -1
  140. package/lib/components/date_picker/auto_refresh/auto_refresh.js +6 -4
  141. package/lib/components/date_picker/super_date_picker/super_update_button.js +1 -1
  142. package/lib/components/error_boundary/error_boundary.a11y.js +1 -1
  143. package/lib/components/expression/expression.a11y.js +2 -4
  144. package/lib/components/facet/facet_button.js +5 -3
  145. package/lib/components/filter_group/filter_button.js +2 -2
  146. package/lib/components/focus_trap/focus_trap.a11y.js +3 -3
  147. package/lib/components/form/range/range.a11y.js +5 -10
  148. package/lib/components/form/super_select/super_select.js +3 -2
  149. package/lib/components/form/super_select/super_select_control.js +12 -19
  150. package/lib/components/header/header.a11y.js +1 -1
  151. package/lib/components/header/header_links/header_link.js +7 -5
  152. package/lib/components/header/header_section/header_section_item_button.js +7 -5
  153. package/lib/components/image/image.a11y.js +1 -2
  154. package/lib/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  155. package/lib/components/link/external_link_icon.js +57 -0
  156. package/lib/components/link/link.js +6 -20
  157. package/lib/components/link/link.styles.js +1 -4
  158. package/lib/components/list_group/list_group.js +6 -1
  159. package/lib/components/list_group/list_group_item.js +14 -4
  160. package/lib/components/list_group/list_group_item.styles.js +2 -1
  161. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +12 -2
  162. package/lib/components/notification/notification_event.a11y.js +1 -2
  163. package/lib/components/notification/notification_event.js +7 -5
  164. package/lib/components/popover/popover.js +4 -1
  165. package/lib/components/resizable_container/resizable_container.a11y.js +4 -8
  166. package/lib/components/search_bar/search_bar.a11y.js +3 -6
  167. package/lib/components/selectable/selectable.js +16 -1
  168. package/lib/components/selectable/selectable_list/selectable_list.js +227 -78
  169. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +16 -1
  170. package/lib/components/text/text.styles.js +2 -2
  171. package/lib/components/text_truncate/text_truncate.js +32 -9
  172. package/optimize/es/components/accordion/accordion.a11y.js +1 -3
  173. package/optimize/es/components/basic_table/action_types.js +5 -0
  174. package/optimize/es/components/basic_table/basic_table.a11y.js +1 -2
  175. package/optimize/es/components/basic_table/collapsed_item_actions.js +116 -169
  176. package/optimize/es/components/basic_table/custom_item_action.js +10 -83
  177. package/optimize/es/components/basic_table/default_item_action.js +23 -14
  178. package/optimize/es/components/basic_table/in_memory_table.a11y.js +13 -11
  179. package/optimize/es/components/breadcrumbs/breadcrumb.js +11 -7
  180. package/optimize/es/components/breadcrumbs/breadcrumb.styles.js +5 -0
  181. package/optimize/es/components/button/button_display/_button_display_content.js +3 -1
  182. package/optimize/es/components/button/button_empty/button_empty.js +2 -2
  183. package/optimize/es/components/card/card.a11y.js +5 -18
  184. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +2 -2
  185. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  186. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  187. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -3
  188. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +10 -5
  189. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +8 -36
  190. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +1 -19
  191. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -23
  192. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  193. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +6 -10
  194. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +9 -5
  195. package/optimize/es/components/context_menu/context_menu_item.js +9 -6
  196. package/optimize/es/components/context_menu/context_menu_item.styles.js +1 -1
  197. package/optimize/es/components/datagrid/body/data_grid_cell.js +38 -30
  198. package/optimize/es/components/datagrid/body/data_grid_cell_actions.js +12 -12
  199. package/optimize/es/components/datagrid/body/data_grid_cell_popover.js +43 -10
  200. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +49 -28
  201. package/optimize/es/components/datagrid/controls/column_selector.js +19 -39
  202. package/optimize/es/components/datagrid/controls/column_sorting.js +18 -29
  203. package/optimize/es/components/datagrid/controls/data_grid_toolbar_control.js +70 -0
  204. package/optimize/es/components/datagrid/controls/display_selector.js +0 -1
  205. package/optimize/es/components/datagrid/controls/fullscreen_selector.js +2 -6
  206. package/optimize/es/components/datagrid/controls/index.js +2 -1
  207. package/optimize/es/components/datagrid/index.js +1 -1
  208. package/optimize/es/components/datagrid/utils/row_heights.js +1 -1
  209. package/optimize/es/components/date_picker/super_date_picker/super_update_button.js +1 -1
  210. package/optimize/es/components/error_boundary/error_boundary.a11y.js +1 -1
  211. package/optimize/es/components/expression/expression.a11y.js +2 -4
  212. package/optimize/es/components/filter_group/filter_button.js +2 -2
  213. package/optimize/es/components/focus_trap/focus_trap.a11y.js +3 -3
  214. package/optimize/es/components/form/range/range.a11y.js +5 -10
  215. package/optimize/es/components/form/super_select/super_select.js +3 -2
  216. package/optimize/es/components/form/super_select/super_select_control.js +13 -20
  217. package/optimize/es/components/header/header.a11y.js +1 -1
  218. package/optimize/es/components/image/image.a11y.js +1 -2
  219. package/optimize/es/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  220. package/optimize/es/components/link/external_link_icon.js +41 -0
  221. package/optimize/es/components/link/link.js +6 -20
  222. package/optimize/es/components/link/link.styles.js +2 -5
  223. package/optimize/es/components/list_group/list_group_item.js +8 -3
  224. package/optimize/es/components/list_group/list_group_item.styles.js +2 -1
  225. package/optimize/es/components/notification/notification_event.a11y.js +1 -2
  226. package/optimize/es/components/popover/popover.js +4 -1
  227. package/optimize/es/components/resizable_container/resizable_container.a11y.js +4 -8
  228. package/optimize/es/components/search_bar/search_bar.a11y.js +3 -6
  229. package/optimize/es/components/selectable/selectable_list/selectable_list.js +199 -76
  230. package/optimize/es/components/text/text.styles.js +2 -2
  231. package/optimize/es/components/text_truncate/text_truncate.js +26 -9
  232. package/optimize/lib/components/accordion/accordion.a11y.js +1 -3
  233. package/optimize/lib/components/basic_table/action_types.js +8 -2
  234. package/optimize/lib/components/basic_table/basic_table.a11y.js +1 -2
  235. package/optimize/lib/components/basic_table/collapsed_item_actions.js +123 -174
  236. package/optimize/lib/components/basic_table/custom_item_action.js +17 -91
  237. package/optimize/lib/components/basic_table/default_item_action.js +23 -14
  238. package/optimize/lib/components/basic_table/in_memory_table.a11y.js +13 -11
  239. package/optimize/lib/components/breadcrumbs/breadcrumb.js +11 -7
  240. package/optimize/lib/components/breadcrumbs/breadcrumb.styles.js +5 -0
  241. package/optimize/lib/components/button/button_display/_button_display_content.js +3 -1
  242. package/optimize/lib/components/button/button_empty/button_empty.js +2 -2
  243. package/optimize/lib/components/card/card.a11y.js +5 -18
  244. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +1 -1
  245. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  246. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  247. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -3
  248. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +10 -5
  249. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +8 -36
  250. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +11 -28
  251. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -26
  252. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  253. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +6 -10
  254. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +9 -5
  255. package/optimize/lib/components/context_menu/context_menu_item.js +9 -6
  256. package/optimize/lib/components/context_menu/context_menu_item.styles.js +1 -1
  257. package/optimize/lib/components/datagrid/body/data_grid_cell.js +38 -30
  258. package/optimize/lib/components/datagrid/body/data_grid_cell_actions.js +12 -12
  259. package/optimize/lib/components/datagrid/body/data_grid_cell_popover.js +43 -10
  260. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +55 -36
  261. package/optimize/lib/components/datagrid/controls/column_selector.js +19 -39
  262. package/optimize/lib/components/datagrid/controls/column_sorting.js +18 -29
  263. package/optimize/lib/components/datagrid/controls/data_grid_toolbar_control.js +75 -0
  264. package/optimize/lib/components/datagrid/controls/display_selector.js +0 -1
  265. package/optimize/lib/components/datagrid/controls/fullscreen_selector.js +2 -6
  266. package/optimize/lib/components/datagrid/controls/index.js +8 -1
  267. package/optimize/lib/components/datagrid/index.js +8 -1
  268. package/optimize/lib/components/datagrid/utils/row_heights.js +1 -1
  269. package/optimize/lib/components/date_picker/super_date_picker/super_update_button.js +1 -1
  270. package/optimize/lib/components/error_boundary/error_boundary.a11y.js +1 -1
  271. package/optimize/lib/components/expression/expression.a11y.js +2 -4
  272. package/optimize/lib/components/filter_group/filter_button.js +2 -2
  273. package/optimize/lib/components/focus_trap/focus_trap.a11y.js +3 -3
  274. package/optimize/lib/components/form/range/range.a11y.js +5 -10
  275. package/optimize/lib/components/form/super_select/super_select.js +3 -2
  276. package/optimize/lib/components/form/super_select/super_select_control.js +12 -19
  277. package/optimize/lib/components/header/header.a11y.js +1 -1
  278. package/optimize/lib/components/image/image.a11y.js +1 -2
  279. package/optimize/lib/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  280. package/optimize/lib/components/link/external_link_icon.js +47 -0
  281. package/optimize/lib/components/link/link.js +6 -20
  282. package/optimize/lib/components/link/link.styles.js +1 -4
  283. package/optimize/lib/components/list_group/list_group_item.js +8 -3
  284. package/optimize/lib/components/list_group/list_group_item.styles.js +2 -1
  285. package/optimize/lib/components/notification/notification_event.a11y.js +1 -2
  286. package/optimize/lib/components/popover/popover.js +4 -1
  287. package/optimize/lib/components/resizable_container/resizable_container.a11y.js +4 -8
  288. package/optimize/lib/components/search_bar/search_bar.a11y.js +3 -6
  289. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +199 -76
  290. package/optimize/lib/components/text/text.styles.js +2 -2
  291. package/optimize/lib/components/text_truncate/text_truncate.js +25 -8
  292. package/package.json +4 -4
  293. package/src/components/datagrid/_data_grid_data_row.scss +139 -100
  294. package/src/components/datagrid/_mixins.scss +2 -2
  295. package/src/components/datagrid/body/header/_data_grid_header_row.scss +36 -28
  296. package/src/components/datagrid/controls/_data_grid_toolbar.scss +0 -5
  297. package/src/components/form/form_row/_form_row.scss +1 -1
  298. package/src/components/table/_responsive.scss +19 -0
  299. package/src/components/table/_table.scss +4 -9
  300. package/test-env/components/accordion/accordion.a11y.js +1 -3
  301. package/test-env/components/auto_sizer/auto_sizer.js +10 -3
  302. package/test-env/components/basic_table/action_types.js +8 -2
  303. package/test-env/components/basic_table/basic_table.a11y.js +1 -2
  304. package/test-env/components/basic_table/basic_table.js +8 -8
  305. package/test-env/components/basic_table/collapsed_item_actions.js +124 -251
  306. package/test-env/components/basic_table/custom_item_action.js +18 -100
  307. package/test-env/components/basic_table/default_item_action.js +23 -14
  308. package/test-env/components/basic_table/in_memory_table.a11y.js +13 -11
  309. package/test-env/components/basic_table/in_memory_table.js +8 -8
  310. package/test-env/components/breadcrumbs/breadcrumb.js +11 -7
  311. package/test-env/components/breadcrumbs/breadcrumb.styles.js +5 -0
  312. package/test-env/components/button/button_display/_button_display.js +5 -3
  313. package/test-env/components/button/button_display/_button_display_content.js +8 -4
  314. package/test-env/components/button/button_empty/button_empty.js +9 -7
  315. package/test-env/components/button/button_group/button_group.js +5 -3
  316. package/test-env/components/button/button_group/button_group_button.js +5 -3
  317. package/test-env/components/card/card.a11y.js +5 -18
  318. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +1 -1
  319. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  320. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  321. package/test-env/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +1 -101
  322. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +20 -58
  323. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +89 -37
  324. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +66 -80
  325. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +11 -28
  326. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +7 -105
  327. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  328. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +7 -90
  329. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +150 -130
  330. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +0 -10
  331. package/test-env/components/combo_box/combo_box.js +1 -1
  332. package/test-env/components/context_menu/context_menu_item.js +16 -8
  333. package/test-env/components/context_menu/context_menu_item.styles.js +1 -1
  334. package/test-env/components/datagrid/body/data_grid_body.js +16 -6
  335. package/test-env/components/datagrid/body/data_grid_body_custom.js +16 -6
  336. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +16 -6
  337. package/test-env/components/datagrid/body/data_grid_cell.js +67 -44
  338. package/test-env/components/datagrid/body/data_grid_cell_actions.js +12 -12
  339. package/test-env/components/datagrid/body/data_grid_cell_popover.js +43 -10
  340. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +71 -42
  341. package/test-env/components/datagrid/body/header/data_grid_header_row.js +16 -6
  342. package/test-env/components/datagrid/controls/column_selector.js +19 -39
  343. package/test-env/components/datagrid/controls/column_sorting.js +18 -29
  344. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +158 -0
  345. package/test-env/components/datagrid/controls/display_selector.js +0 -1
  346. package/test-env/components/datagrid/controls/fullscreen_selector.js +2 -6
  347. package/test-env/components/datagrid/controls/index.js +8 -1
  348. package/test-env/components/datagrid/index.js +8 -1
  349. package/test-env/components/datagrid/utils/in_memory.js +16 -6
  350. package/test-env/components/datagrid/utils/row_heights.js +1 -1
  351. package/test-env/components/date_picker/auto_refresh/auto_refresh.js +6 -4
  352. package/test-env/components/date_picker/super_date_picker/super_update_button.js +1 -1
  353. package/test-env/components/error_boundary/error_boundary.a11y.js +1 -1
  354. package/test-env/components/expression/expression.a11y.js +2 -4
  355. package/test-env/components/facet/facet_button.js +5 -3
  356. package/test-env/components/filter_group/filter_button.js +2 -2
  357. package/test-env/components/focus_trap/focus_trap.a11y.js +3 -3
  358. package/test-env/components/form/range/range.a11y.js +5 -10
  359. package/test-env/components/form/super_select/super_select.js +3 -2
  360. package/test-env/components/form/super_select/super_select_control.js +12 -19
  361. package/test-env/components/header/header.a11y.js +1 -1
  362. package/test-env/components/header/header_links/header_link.js +7 -5
  363. package/test-env/components/header/header_section/header_section_item_button.js +7 -5
  364. package/test-env/components/image/image.a11y.js +1 -2
  365. package/test-env/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  366. package/test-env/components/link/external_link_icon.js +56 -0
  367. package/test-env/components/link/link.js +6 -20
  368. package/test-env/components/link/link.styles.js +1 -4
  369. package/test-env/components/list_group/list_group.js +6 -1
  370. package/test-env/components/list_group/list_group_item.js +14 -4
  371. package/test-env/components/list_group/list_group_item.styles.js +2 -1
  372. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +12 -2
  373. package/test-env/components/notification/notification_event.a11y.js +1 -2
  374. package/test-env/components/notification/notification_event.js +7 -5
  375. package/test-env/components/popover/popover.js +4 -1
  376. package/test-env/components/resizable_container/resizable_container.a11y.js +4 -8
  377. package/test-env/components/search_bar/search_bar.a11y.js +3 -6
  378. package/test-env/components/selectable/selectable.js +16 -1
  379. package/test-env/components/selectable/selectable_list/selectable_list.js +227 -78
  380. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +16 -1
  381. package/test-env/components/text/text.styles.js +2 -2
  382. package/test-env/components/text_truncate/text_truncate.js +32 -9
@@ -227,10 +227,10 @@ EuiHeaderSectionItemButton.propTypes = {
227
227
  type: _propTypes.default.oneOf(["button", "submit"]),
228
228
  buttonRef: _propTypes.default.any,
229
229
  /**
230
- * Object of props passed to the <span/> wrapping the button's content
230
+ * Object of props passed to the `<span>` wrapping the button's content
231
231
  */
232
232
  /**
233
- * Object of props passed to the <span/> wrapping the button's content
233
+ * Object of props passed to the `<span>` wrapping the button's content
234
234
  */
235
235
  contentProps: _propTypes.default.shape({
236
236
  className: _propTypes.default.string,
@@ -247,16 +247,18 @@ EuiHeaderSectionItemButton.propTypes = {
247
247
  */
248
248
  iconSide: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.oneOf([undefined])]),
249
249
  /**
250
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
250
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
251
+ *
252
+ * This span wrapper can be removed by passing `textProps={false}`.
251
253
  */
252
- textProps: _propTypes.default.shape({
254
+ textProps: _propTypes.default.oneOfType([_propTypes.default.shape({
253
255
  className: _propTypes.default.string,
254
256
  "aria-label": _propTypes.default.string,
255
257
  "data-test-subj": _propTypes.default.string,
256
258
  css: _propTypes.default.any,
257
259
  ref: _propTypes.default.any,
258
260
  "data-text": _propTypes.default.string
259
- }),
261
+ }).isRequired, _propTypes.default.oneOf([false])]),
260
262
  iconSize: _propTypes.default.any,
261
263
  className: _propTypes.default.string,
262
264
  "aria-label": _propTypes.default.string,
@@ -45,8 +45,7 @@ describe('EuiImage', function () {
45
45
  cy.checkAxe();
46
46
  });
47
47
  it('has zero violations on keyboard interaction', function () {
48
- cy.realPress('Tab');
49
- cy.get('button[data-test-subj="activateFullScreenButton"]').should('have.focus');
48
+ cy.get('button[data-test-subj="activateFullScreenButton"]').focus();
50
49
  cy.realPress('Enter');
51
50
  cy.get('button[data-test-subj="deactivateFullScreenButton"]').should('exist');
52
51
  cy.get('button[data-test-subj="deactivateFullScreenButton"]').should('have.focus');
@@ -133,20 +133,20 @@ describe('EuiKeyPadMenu', function () {
133
133
  });
134
134
  it('has zero violations on item click', function () {
135
135
  cy.get('a[data-test-subj="cy-keypad-link-2"]').realClick();
136
- cy.get('a[data-test-subj="cy-keypad-link-2"]').should('have.class', 'euiKeyPadMenuItem-isSelected');
136
+ cy.get('a[data-test-subj="cy-keypad-link-2"]').should('have.attr', 'aria-current', 'true');
137
137
  cy.checkAxe();
138
138
  });
139
139
  it('has zero violations on item keypress', function () {
140
140
  cy.repeatRealPress('Tab', 3);
141
141
  cy.get('button[data-test-subj="cy-keypad-button-3"]').should('have.focus');
142
142
  cy.realPress('Space');
143
- cy.get('button[data-test-subj="cy-keypad-button-3"]').should('have.class', 'euiKeyPadMenuItem-isSelected');
143
+ cy.get('button[data-test-subj="cy-keypad-button-3"]').should('have.attr', 'aria-pressed', 'true');
144
144
  cy.checkAxe();
145
145
  cy.realPress(['Shift', 'Tab']);
146
- cy.get('button[data-test-subj="cy-keypad-button-2"]').should('have.focus');
146
+ cy.get('button[data-test-subj="cy-keypad-button-2"]').should('have.attr', 'aria-pressed', 'false');
147
147
  cy.realPress('Space');
148
- cy.get('button[data-test-subj="cy-keypad-button-2"]').should('have.class', 'euiKeyPadMenuItem-isSelected');
149
- cy.get('button[data-test-subj="cy-keypad-button-3"]').should('not.have.class', 'euiKeyPadMenuItem-isSelected');
148
+ cy.get('button[data-test-subj="cy-keypad-button-2"]').invoke('attr', 'aria-pressed').should('equal', 'true');
149
+ cy.get('button[data-test-subj="cy-keypad-button-3"]').invoke('attr', 'aria-pressed').should('equal', 'false');
150
150
  cy.checkAxe();
151
151
  });
152
152
  });
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EuiExternalLinkIcon = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _services = require("../../services");
10
+ var _global_styling = require("../../global_styling");
11
+ var _icon = require("../icon");
12
+ var _i18n = require("../i18n");
13
+ var _accessibility = require("../accessibility");
14
+ var _react2 = require("@emotion/react");
15
+ var _excluded = ["target", "external"];
16
+ /*
17
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
18
+ * or more contributor license agreements. Licensed under the Elastic License
19
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
20
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
21
+ * Side Public License, v 1.
22
+ */
23
+ /**
24
+ * DRY util for indicating external links both via icon and to
25
+ * screen readers. Used internally by at EuiLink and EuiListGroupItem
26
+ */
27
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
+ 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); }
29
+ 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; }
30
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
31
+ var EuiExternalLinkIcon = function EuiExternalLinkIcon(_ref) {
32
+ var target = _ref.target,
33
+ external = _ref.external,
34
+ rest = _objectWithoutProperties(_ref, _excluded);
35
+ var _useEuiTheme = (0, _services.useEuiTheme)(),
36
+ euiTheme = _useEuiTheme.euiTheme;
37
+ var showExternalLinkIcon = target === '_blank' && external !== false || external === true;
38
+ var iconAriaLabel = (0, _i18n.useEuiI18n)('euiExternalLinkIcon.ariaLabel', 'External link');
39
+ return (0, _react2.jsx)(_react.default.Fragment, null, showExternalLinkIcon && (0, _react2.jsx)(_icon.EuiIcon, _extends({
40
+ css: (0, _global_styling.logicalStyle)('margin-left', euiTheme.size.xs),
41
+ "aria-label": iconAriaLabel,
42
+ size: "s",
43
+ type: "popout"
44
+ }, rest)), target === '_blank' && (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("span", null, (0, _react2.jsx)(_i18n.EuiI18n, {
45
+ token: "euiExternalLinkIcon.newTarget.screenReaderOnlyText",
46
+ default: "(opens in a new tab or window)"
47
+ }))));
48
+ };
49
+ exports.EuiExternalLinkIcon = EuiExternalLinkIcon;
50
+ EuiExternalLinkIcon.propTypes = {
51
+ target: _propTypes.default.any,
52
+ /**
53
+ * Set to true to show an icon indicating that it is an external link;
54
+ * Defaults to true if `target="_blank"`
55
+ */
56
+ external: _propTypes.default.bool
57
+ };
@@ -9,11 +9,9 @@ var _react = _interopRequireWildcard(require("react"));
9
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
  var _services = require("../../services");
12
- var _link = require("./link.styles");
13
- var _icon = require("../icon");
14
- var _i18n = require("../i18n");
15
- var _accessibility = require("../accessibility");
16
12
  var _href_validator = require("../../services/security/href_validator");
13
+ var _external_link_icon = require("./external_link_icon");
14
+ var _link = require("./link.styles");
17
15
  var _react2 = require("@emotion/react");
18
16
  var _excluded = ["children", "color", "className", "href", "external", "target", "rel", "type", "onClick", "disabled"];
19
17
  /*
@@ -53,22 +51,8 @@ var EuiLink = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
53
51
  var euiTheme = (0, _services.useEuiTheme)();
54
52
  var styles = (0, _link.euiLinkStyles)(euiTheme);
55
53
  var cssStyles = [styles.euiLink];
56
- var cssScreenReaderTextStyles = [styles.euiLink__screenReaderText];
57
- var cssExternalLinkIconStyles = [styles.euiLink__externalIcon];
58
54
  var isHrefValid = !href || (0, _href_validator.validateHref)(href);
59
55
  var disabled = _disabled || !isHrefValid;
60
- var newTargetScreenreaderText = (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, {
61
- css: cssScreenReaderTextStyles
62
- }, (0, _react2.jsx)("span", null, (0, _react2.jsx)(_i18n.EuiI18n, {
63
- token: "euiLink.newTarget.screenReaderOnlyText",
64
- default: "(opens in a new tab or window)"
65
- })));
66
- var externalLinkIcon = (0, _react2.jsx)(_icon.EuiIcon, {
67
- "aria-label": (0, _i18n.useEuiI18n)('euiLink.external.ariaLabel', 'External link'),
68
- size: "s",
69
- css: cssExternalLinkIconStyles,
70
- type: "popout"
71
- });
72
56
  if (href === undefined || !isHrefValid) {
73
57
  var buttonProps = _objectSpread({
74
58
  className: (0, _classnames.default)('euiLink', className),
@@ -94,10 +78,12 @@ var EuiLink = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
94
78
  rel: secureRel,
95
79
  onClick: onClick
96
80
  }, rest);
97
- var showExternalLinkIcon = target === '_blank' && external !== false || external === true;
98
81
  return (0, _react2.jsx)("a", _extends({
99
82
  ref: ref
100
- }, anchorProps), children, showExternalLinkIcon && externalLinkIcon, target === '_blank' && newTargetScreenreaderText);
83
+ }, anchorProps), children, (0, _react2.jsx)(_external_link_icon.EuiExternalLinkIcon, {
84
+ external: external,
85
+ target: target
86
+ }));
101
87
  });
102
88
  exports.EuiLink = EuiLink;
103
89
  EuiLink.propTypes = {
@@ -50,10 +50,7 @@ var euiLinkStyles = function euiLinkStyles(euiThemeContext) {
50
50
  danger: /*#__PURE__*/(0, _react.css)(_colorCSS(euiTheme.colors.dangerText), ";label:danger;"),
51
51
  warning: /*#__PURE__*/(0, _react.css)(_colorCSS(euiTheme.colors.warningText), ";label:warning;"),
52
52
  ghost: /*#__PURE__*/(0, _react.css)(_colorCSS(euiTheme.colors.ghost), ";label:ghost;"),
53
- text: /*#__PURE__*/(0, _react.css)(_colorCSS(euiTheme.colors.text), ";label:text;"),
54
- // Children
55
- euiLink__screenReaderText: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('left', '0px'), ";;label:euiLink__screenReaderText;"),
56
- euiLink__externalIcon: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-left', euiTheme.size.xs), ";;label:euiLink__externalIcon;")
53
+ text: /*#__PURE__*/(0, _react.css)(_colorCSS(euiTheme.colors.text), ";label:text;")
57
54
  };
58
55
  };
59
56
  exports.euiLinkStyles = euiLinkStyles;
@@ -149,8 +149,13 @@ EuiListGroup.propTypes = {
149
149
  * While permitted, `href` and `onClick` should not be used together in most cases and may create problems.
150
150
  */
151
151
  href: _propTypes.default.string,
152
- target: _propTypes.default.string,
153
152
  rel: _propTypes.default.string,
153
+ target: _propTypes.default.string,
154
+ /**
155
+ * Set to true to show an icon indicating that it is an external link;
156
+ * Defaults to true if `target="_blank"`
157
+ */
158
+ external: _propTypes.default.bool,
154
159
  /**
155
160
  * Adds `EuiIcon` of `EuiIcon.type`
156
161
  */
@@ -14,9 +14,10 @@ var _inner_text = require("../inner_text");
14
14
  var _list_group_item_extra_action = require("./list_group_item_extra_action");
15
15
  var _services = require("../../services");
16
16
  var _href_validator = require("../../services/security/href_validator");
17
+ var _external_link_icon = require("../link/external_link_icon");
17
18
  var _list_group_item = require("./list_group_item.styles");
18
19
  var _react2 = require("@emotion/react");
19
- var _excluded = ["label", "isActive", "isDisabled", "href", "target", "rel", "className", "css", "style", "iconType", "icon", "iconProps", "extraAction", "onClick", "size", "color", "showToolTip", "wrapText", "buttonRef", "toolTipText", "toolTipProps"],
20
+ var _excluded = ["label", "isActive", "isDisabled", "href", "rel", "target", "external", "className", "css", "style", "iconType", "icon", "iconProps", "extraAction", "onClick", "size", "color", "showToolTip", "wrapText", "buttonRef", "toolTipText", "toolTipProps"],
20
21
  _excluded2 = ["iconType", "alwaysShow", "isDisabled"];
21
22
  /*
22
23
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -53,8 +54,9 @@ var EuiListGroupItem = function EuiListGroupItem(_ref) {
53
54
  _ref$isDisabled = _ref.isDisabled,
54
55
  _isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
55
56
  href = _ref.href,
56
- target = _ref.target,
57
57
  rel = _ref.rel,
58
+ target = _ref.target,
59
+ external = _ref.external,
58
60
  className = _ref.className,
59
61
  customCss = _ref.css,
60
62
  style = _ref.style,
@@ -154,7 +156,10 @@ var EuiListGroupItem = function EuiListGroupItem(_ref) {
154
156
  target: target
155
157
  }),
156
158
  onClick: onClick
157
- }, rest), iconNode, labelContent);
159
+ }, rest), iconNode, labelContent, (0, _react2.jsx)(_external_link_icon.EuiExternalLinkIcon, {
160
+ external: external,
161
+ target: target
162
+ }));
158
163
  } else if (href && isDisabled || onClick) {
159
164
  itemContent = (0, _react2.jsx)("button", _extends({
160
165
  type: "button",
@@ -234,8 +239,13 @@ EuiListGroupItem.propTypes = {
234
239
  * While permitted, `href` and `onClick` should not be used together in most cases and may create problems.
235
240
  */
236
241
  href: _propTypes.default.string,
237
- target: _propTypes.default.string,
238
242
  rel: _propTypes.default.string,
243
+ target: _propTypes.default.string,
244
+ /**
245
+ * Set to true to show an icon indicating that it is an external link;
246
+ * Defaults to true if `target="_blank"`
247
+ */
248
+ external: _propTypes.default.bool,
239
249
  /**
240
250
  * Adds `EuiIcon` of `EuiIcon.type`
241
251
  */
@@ -72,7 +72,8 @@ var euiListGroupItemInnerStyles = function euiListGroupItemInnerStyles(euiThemeC
72
72
  // Variants
73
73
  isDisabled: /*#__PURE__*/(0, _react.css)("cursor:not-allowed;&,&:hover,&:focus{color:", (0, _button.euiButtonColor)(euiThemeContext, 'disabled').color, ";cursor:not-allowed;background-color:transparent;text-decoration:none;};label:isDisabled;"),
74
74
  isActive: /*#__PURE__*/(0, _react.css)(";label:isActive;"),
75
- isClickable: _ref
75
+ isClickable: _ref,
76
+ externalIcon: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-left', euiTheme.size.xs), ";;label:externalIcon;")
76
77
  };
77
78
  };
78
79
  exports.euiListGroupItemInnerStyles = euiListGroupItemInnerStyles;
@@ -145,8 +145,13 @@ EuiPinnableListGroup.propTypes = {
145
145
  * While permitted, `href` and `onClick` should not be used together in most cases and may create problems.
146
146
  */
147
147
  href: _propTypes.default.string,
148
- target: _propTypes.default.string,
149
148
  rel: _propTypes.default.string,
149
+ target: _propTypes.default.string,
150
+ /**
151
+ * Set to true to show an icon indicating that it is an external link;
152
+ * Defaults to true if `target="_blank"`
153
+ */
154
+ external: _propTypes.default.bool,
150
155
  /**
151
156
  * Adds `EuiIcon` of `EuiIcon.type`
152
157
  */
@@ -276,8 +281,13 @@ EuiPinnableListGroup.propTypes = {
276
281
  * While permitted, `href` and `onClick` should not be used together in most cases and may create problems.
277
282
  */
278
283
  href: _propTypes.default.string,
279
- target: _propTypes.default.string,
280
284
  rel: _propTypes.default.string,
285
+ target: _propTypes.default.string,
286
+ /**
287
+ * Set to true to show an icon indicating that it is an external link;
288
+ * Defaults to true if `target="_blank"`
289
+ */
290
+ external: _propTypes.default.bool,
281
291
  /**
282
292
  * Adds `EuiIcon` of `EuiIcon.type`
283
293
  */
@@ -93,8 +93,7 @@ describe('EuiNotificationEvent', function () {
93
93
  });
94
94
  describe('Keyboard accessibility', function () {
95
95
  it('has zero violations when the popover is opened by keyboard', function () {
96
- cy.repeatRealPress('Tab');
97
- cy.get('button[data-test-subj="cy-eui-notification-1-notificationEventMetaButton"]').should('have.focus');
96
+ cy.get('button[data-test-subj="cy-eui-notification-1-notificationEventMetaButton"]').focus();
98
97
  cy.realPress('Enter');
99
98
  cy.get('div.euiPopover__panel').should('exist');
100
99
  cy.checkAxe();
@@ -236,10 +236,10 @@ EuiNotificationEvent.propTypes = {
236
236
  type: _propTypes.default.oneOf(["button", "submit"]),
237
237
  buttonRef: _propTypes.default.any,
238
238
  /**
239
- * Object of props passed to the <span/> wrapping the button's content
239
+ * Object of props passed to the `<span>` wrapping the button's content
240
240
  */
241
241
  /**
242
- * Object of props passed to the <span/> wrapping the button's content
242
+ * Object of props passed to the `<span>` wrapping the button's content
243
243
  */
244
244
  contentProps: _propTypes.default.shape({
245
245
  className: _propTypes.default.string,
@@ -256,16 +256,18 @@ EuiNotificationEvent.propTypes = {
256
256
  */
257
257
  iconSide: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.oneOf([undefined])]),
258
258
  /**
259
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
259
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
260
+ *
261
+ * This span wrapper can be removed by passing `textProps={false}`.
260
262
  */
261
- textProps: _propTypes.default.shape({
263
+ textProps: _propTypes.default.oneOfType([_propTypes.default.shape({
262
264
  className: _propTypes.default.string,
263
265
  "aria-label": _propTypes.default.string,
264
266
  "data-test-subj": _propTypes.default.string,
265
267
  css: _propTypes.default.any,
266
268
  ref: _propTypes.default.any,
267
269
  "data-text": _propTypes.default.string
268
- }),
270
+ }).isRequired, _propTypes.default.oneOf([false])]),
269
271
  iconSize: _propTypes.default.any,
270
272
  className: _propTypes.default.string,
271
273
  "aria-label": _propTypes.default.string,
@@ -223,9 +223,12 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
223
223
  anchor: _this.button,
224
224
  popover: _this.panel,
225
225
  offset: _this.props.attachToAnchor ? offset : _this.props.hasArrow ? 16 + offset : 8 + offset,
226
- arrowConfig: {
226
+ arrowConfig: _this.props.hasArrow ? {
227
227
  arrowWidth: 24,
228
228
  arrowBuffer: 10
229
+ } : {
230
+ arrowWidth: 0,
231
+ arrowBuffer: 0
229
232
  },
230
233
  returnBoundingBox: _this.props.attachToAnchor,
231
234
  allowCrossAxis: _this.props.repositionToCrossAxis,
@@ -52,22 +52,19 @@ describe('Horizontal EuiResizableContainer', function () {
52
52
  });
53
53
  describe('Keyboard accessibility check', function () {
54
54
  it('has zero violations when first panel is scrolled vertically', function () {
55
- cy.realPress('Tab');
56
- cy.get('div.euiPanel').first().should('have.focus');
55
+ cy.get('div.euiPanel').first().focus();
57
56
  cy.realPress('End');
58
57
  cy.get('a[data-test-subj="hello-world-link"]').should('be.visible');
59
58
  cy.checkAxe();
60
59
  });
61
60
  it('has zero violations when second panel is scrolled vertically', function () {
62
- cy.repeatRealPress('Tab', 4);
63
- cy.get('div.euiPanel').last().should('have.focus');
61
+ cy.get('div.euiPanel').last().focus();
64
62
  cy.realPress('End');
65
63
  cy.realPress('Home');
66
64
  cy.checkAxe();
67
65
  });
68
66
  it('has zero violations when the horizontal panels are resized', function () {
69
- cy.repeatRealPress('Tab', 3);
70
- cy.get('button.euiResizableButton').should('have.focus');
67
+ cy.get('button.euiResizableButton').focus();
71
68
  cy.repeatRealPress('ArrowRight', 10);
72
69
  cy.checkAxe();
73
70
  });
@@ -102,8 +99,7 @@ describe('Vertical EuiResizableContainer', function () {
102
99
  cy.checkAxe();
103
100
  });
104
101
  it('has zero violations when the vertical panels are resized', function () {
105
- cy.repeatRealPress('Tab');
106
- cy.get('button.euiResizableButton').should('have.focus');
102
+ cy.get('button.euiResizableButton').focus();
107
103
  cy.repeatRealPress('ArrowDown', 10);
108
104
  cy.checkAxe();
109
105
  });
@@ -183,8 +183,7 @@ describe('EuiSearchBar', function () {
183
183
  });
184
184
  describe('Keyboard accessibility', function () {
185
185
  it('has zero violations after a full-text search', function () {
186
- cy.realPress('Tab');
187
- cy.get('input[type="search"]').should('have.focus');
186
+ cy.get('input[type="search"]').focus();
188
187
  cy.get('input[type="search"]').type('watch');
189
188
  cy.realPress('Enter');
190
189
  cy.get('table.euiTable tbody').find('tr').should('have.length', 1);
@@ -196,8 +195,7 @@ describe('EuiSearchBar', function () {
196
195
  cy.checkAxe();
197
196
  });
198
197
  it('has zero violations after filtering on Open items', function () {
199
- cy.repeatRealPress('Tab');
200
- cy.get('button.euiButtonEmpty').first().should('have.focus');
198
+ cy.get('button.euiButtonEmpty').first().focus();
201
199
  cy.realPress('Enter');
202
200
  cy.get('table.euiTable tbody').find('tr').should('have.length', 3);
203
201
  cy.checkAxe();
@@ -208,8 +206,7 @@ describe('EuiSearchBar', function () {
208
206
  cy.checkAxe();
209
207
  });
210
208
  it('has zero violations after filtering by Tags', function () {
211
- cy.repeatRealPress('Tab', 4);
212
- cy.get('button.euiButtonEmpty').last().should('have.focus');
209
+ cy.get('button.euiButtonEmpty').last().focus();
213
210
  cy.realPress('Enter');
214
211
  cy.realPress('Tab');
215
212
  cy.realPress('ArrowDown');
@@ -631,7 +631,22 @@ EuiSelectable.propTypes = {
631
631
  * Option data to pass through to the `renderOptions` element.
632
632
  * Bypass `EuiSelectableItem` and avoid DOM attribute warnings.
633
633
  */
634
- data: _propTypes.default.shape({})
634
+ data: _propTypes.default.shape({}),
635
+ /**
636
+ * How to handle long text within the item.
637
+ * Wrapping only works if `isVirtualization` is false.
638
+ * @default 'truncate'
639
+ */
640
+ textWrap: _propTypes.default.oneOf(["truncate", "wrap"]),
641
+ /**
642
+ * If textWrap is set to `truncate`, you can pass a custom truncation configuration
643
+ * that accepts any [EuiTextTruncate](/#/utilities/text-truncation) prop except for
644
+ * `text` and `children`.
645
+ *
646
+ * Note: when searching, custom truncation props are ignored. The highlighted search
647
+ * text will always take precedence.
648
+ */
649
+ truncationProps: _propTypes.default.any
635
650
  }).isRequired).isRequired,
636
651
  /**
637
652
  * Passes back the altered `options` array with selected options having `checked: 'on'`.