@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
@@ -129,7 +129,7 @@ EuiFacetButton.propTypes = {
129
129
  * Adds a notification indicator for displaying the quantity provided
130
130
  */
131
131
  quantity: _propTypes.default.number,
132
- element: _propTypes.default.oneOf(["a", "button", "span", "label"]),
132
+ element: _propTypes.default.oneOf(["a", "button", "span"]),
133
133
  size: _propTypes.default.any,
134
134
  /**
135
135
  * Extends the button to 100% width
@@ -158,16 +158,18 @@ EuiFacetButton.propTypes = {
158
158
  */
159
159
  iconSide: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.oneOf([undefined])]),
160
160
  /**
161
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
161
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
162
+ *
163
+ * This span wrapper can be removed by passing `textProps={false}`.
162
164
  */
163
- textProps: _propTypes.default.shape({
165
+ textProps: _propTypes.default.oneOfType([_propTypes.default.shape({
164
166
  className: _propTypes.default.string,
165
167
  "aria-label": _propTypes.default.string,
166
168
  "data-test-subj": _propTypes.default.string,
167
169
  css: _propTypes.default.any,
168
170
  ref: _propTypes.default.any,
169
171
  "data-text": _propTypes.default.string
170
- }),
172
+ }).isRequired, _propTypes.default.oneOf([false])]),
171
173
  iconSize: _propTypes.default.any,
172
174
  className: _propTypes.default.string,
173
175
  "aria-label": _propTypes.default.string,
@@ -85,7 +85,7 @@ var EuiFilterButton = function EuiFilterButton(_ref) {
85
85
  });
86
86
  var buttonTextClassNames = (0, _classnames.default)('euiFilterButton__text', {
87
87
  'euiFilterButton__text-hasNotification': showBadge
88
- }, textProps === null || textProps === void 0 ? void 0 : textProps.className);
88
+ }, textProps && textProps.className);
89
89
  var badgeContent = showBadge && (0, _react2.jsx)(_badge.EuiNotificationBadge, {
90
90
  className: "euiFilterButton__notification",
91
91
  css: [notificationStyles.euiFilterButton__notification, isDisabled && notificationStyles.disabled, ";label:badgeContent;"],
@@ -115,7 +115,7 @@ var EuiFilterButton = function EuiFilterButton(_ref) {
115
115
  type: type,
116
116
  textProps: _objectSpread(_objectSpread({}, textProps), {}, {
117
117
  className: buttonTextClassNames,
118
- css: [textStyles.euiFilterButton__text, showBadge && textStyles.hasNotification, textProps === null || textProps === void 0 ? void 0 : textProps.css]
118
+ css: [textStyles.euiFilterButton__text, showBadge && textStyles.hasNotification, textProps && textProps.css]
119
119
  }),
120
120
  contentProps: _objectSpread(_objectSpread({}, contentProps), {}, {
121
121
  css: [contentStyles.euiFilterButton__content, iconType && contentStyles.hasIcon, contentProps === null || contentProps === void 0 ? void 0 : contentProps.css]
@@ -32,7 +32,7 @@ var euiFilterGroupStyles = function euiFilterGroupStyles(euiThemeContext) {
32
32
  controlCompressedBorderRadius = _euiFormVariables.controlCompressedBorderRadius,
33
33
  controlCompressedHeight = _euiFormVariables.controlCompressedHeight;
34
34
  return {
35
- euiFilterGroup: /*#__PURE__*/(0, _react.css)("display:inline-flex;", (0, _global_styling.logicalCSS)('max-width', '100%'), " overflow:hidden;background-color:", backgroundColor, ";box-shadow:inset 0 0 0 ", euiTheme.border.width.thin, " ", borderColor, ";>*:not(.euiFilterButton){", (0, _filter_button.euiFilterButtonDisplay)(euiThemeContext), ";}.euiPopover__anchor{display:block;.euiFilterButton{", (0, _global_styling.logicalCSS)('width', '100%'), ";}}", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs', 's']), "{flex-wrap:wrap;}", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs']), "{display:flex;.euiFilterButton{flex-grow:1;}};label:euiFilterGroup;"),
35
+ euiFilterGroup: /*#__PURE__*/(0, _react.css)("display:inline-flex;", (0, _global_styling.logicalCSS)('max-width', '100%'), " overflow:hidden;background-color:", backgroundColor, ";box-shadow:inset 0 0 0 ", euiTheme.border.width.thin, " ", borderColor, ";>*:not(.euiFilterButton){", (0, _filter_button.euiFilterButtonDisplay)(euiThemeContext), ";}.euiPopover>.euiFilterButton{", (0, _global_styling.logicalCSS)('width', '100%'), ";}", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs', 's']), "{flex-wrap:wrap;}", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs']), "{display:flex;.euiFilterButton{flex-grow:1;}};label:euiFilterGroup;"),
36
36
  fullWidth: _ref,
37
37
  uncompressed: /*#__PURE__*/(0, _react.css)("border-radius:", controlBorderRadius, ";", buttonChildrenBorderRadii(controlBorderRadius), ";;label:uncompressed;"),
38
38
  compressed: /*#__PURE__*/(0, _react.css)("border-radius:", controlCompressedBorderRadius, ";", buttonChildrenBorderRadii(controlCompressedBorderRadius), " .euiFilterButton{", (0, _global_styling.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');
@@ -55,15 +55,13 @@ describe('Single EuiRange', function () {
55
55
  });
56
56
  describe('Keyboard accessibility check', function () {
57
57
  it('has zero violations when the range slider is increased', function () {
58
- cy.realPress('Tab');
59
- cy.get('input#cy-range-single').should('have.focus');
58
+ cy.get('input#cy-range-single').focus();
60
59
  cy.repeatRealPress('ArrowRight', 10);
61
60
  cy.get('output.euiRangeTooltip__value').contains('100 - 110');
62
61
  cy.checkAxe();
63
62
  });
64
63
  it('has zero violations when the range slider is decreased', function () {
65
- cy.realPress('Tab');
66
- cy.get('input#cy-range-single').should('have.focus');
64
+ cy.get('input#cy-range-single').focus();
67
65
  cy.repeatRealPress('ArrowLeft', 10);
68
66
  cy.get('output.euiRangeTooltip__value').contains('100 - 100');
69
67
  cy.checkAxe();
@@ -102,8 +100,7 @@ describe('Dual EuiRange', function () {
102
100
  });
103
101
  describe('Keyboard accessibility check', function () {
104
102
  it('has zero violations when the range sliders are adjusted', function () {
105
- cy.realPress('Tab');
106
- cy.get('div[role="slider"]').first().should('have.focus');
103
+ cy.get('div[role="slider"]').first().focus();
107
104
  cy.repeatRealPress('ArrowLeft', 3);
108
105
  cy.get('div[role="slider"]').first().invoke('attr', 'aria-valuenow').should('eq', '70');
109
106
  cy.realPress('Tab');
@@ -144,8 +141,7 @@ describe('Highlight Area EuiRange', function () {
144
141
  });
145
142
  describe('Keyboard accessibility check', function () {
146
143
  it('has zero violations when the highlight area is adjusted using arrow keys', function () {
147
- cy.realPress('Tab');
148
- cy.get('div[role="slider"]').first().should('have.focus');
144
+ cy.get('div[role="slider"]').first().focus();
149
145
  cy.repeatRealPress('ArrowLeft', 3);
150
146
  cy.get('div[role="slider"]').first().invoke('attr', 'aria-valuetext').should('eq', '37, 57');
151
147
  cy.checkAxe();
@@ -190,8 +186,7 @@ describe('Highlight Area EuiRange', function () {
190
186
  });
191
187
  describe('Keyboard accessibility check', function () {
192
188
  it('updates the range value using arrow keys with input[type="number"]', function () {
193
- cy.realPress('Tab');
194
- cy.get('input#cy-range-in-dropdown').should('have.focus');
189
+ cy.get('input#cy-range-in-dropdown').focus();
195
190
  cy.repeatRealPress('ArrowUp', 10);
196
191
  cy.get('input[type="range"]').first().invoke('attr', 'value').should('eq', '30');
197
192
  cy.checkAxe();
@@ -228,6 +228,7 @@ var EuiSuperSelect = /*#__PURE__*/function (_Component) {
228
228
  dropdownDisplay = option.dropdownDisplay,
229
229
  inputDisplay = option.inputDisplay,
230
230
  optionRest = _objectWithoutProperties(option, _excluded2);
231
+ if (value == null) return;
231
232
  return (0, _react2.jsx)(_context_menu.EuiContextMenuItem, _extends({
232
233
  key: index,
233
234
  className: itemClasses,
@@ -241,7 +242,7 @@ var EuiSuperSelect = /*#__PURE__*/function (_Component) {
241
242
  return _this2.setItemNode(node, index);
242
243
  },
243
244
  role: "option",
244
- id: value,
245
+ id: String(value),
245
246
  "aria-selected": valueOfSelected === value
246
247
  }, optionRest), dropdownDisplay || inputDisplay);
247
248
  });
@@ -267,7 +268,7 @@ var EuiSuperSelect = /*#__PURE__*/function (_Component) {
267
268
  "aria-describedby": _this2.describedById,
268
269
  className: "euiSuperSelect__listbox",
269
270
  role: "listbox",
270
- "aria-activedescendant": valueOfSelected,
271
+ "aria-activedescendant": valueOfSelected != null ? String(valueOfSelected) : undefined,
271
272
  tabIndex: 0
272
273
  }, items);
273
274
  }));
@@ -29,8 +29,7 @@ var EuiSuperSelectControl = function EuiSuperSelectControl(props) {
29
29
  var _useFormContext = (0, _eui_form_context.useFormContext)(),
30
30
  defaultFullWidth = _useFormContext.defaultFullWidth;
31
31
  var className = props.className,
32
- _props$options = props.options,
33
- options = _props$options === void 0 ? [] : _props$options,
32
+ options = props.options,
34
33
  id = props.id,
35
34
  name = props.name,
36
35
  _props$fullWidth = props.fullWidth,
@@ -61,27 +60,21 @@ var EuiSuperSelectControl = function EuiSuperSelectControl(props) {
61
60
  'euiSuperSelectControl-isLoading': isLoading,
62
61
  'euiSuperSelectControl-isInvalid': isInvalid
63
62
  }, className);
64
-
65
- // React HTML input can not have both value and defaultValue properties.
66
- // https://reactjs.org/docs/uncontrolled-components.html#default-values
67
- var selectDefaultValue;
68
- if (value == null) {
69
- selectDefaultValue = defaultValue || '';
70
- }
71
- var selectedValue;
72
- if (value) {
73
- var selectedOption = options.find(function (option) {
74
- return option.value === value;
75
- });
76
- selectedValue = selectedOption ? selectedOption.inputDisplay : selectedValue;
77
- }
63
+ var inputValue = value != null ? value : defaultValue;
64
+ var selectedValue = (0, _react.useMemo)(function () {
65
+ if (inputValue != null) {
66
+ var selectedOption = options === null || options === void 0 ? void 0 : options.find(function (option) {
67
+ return option.value === inputValue;
68
+ });
69
+ return selectedOption ? selectedOption.inputDisplay : undefined;
70
+ }
71
+ }, [inputValue, options]);
78
72
  var showPlaceholder = !!placeholder && !selectedValue;
79
- return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)("input", {
73
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("input", {
80
74
  type: "hidden",
81
75
  id: id,
82
76
  name: name,
83
- defaultValue: selectDefaultValue,
84
- value: value,
77
+ value: String(inputValue !== null && inputValue !== void 0 ? inputValue : ''),
85
78
  readOnly: readOnly
86
79
  }), (0, _react2.jsx)(_form_control_layout.EuiFormControlLayout, {
87
80
  isDropdown: true,
@@ -333,7 +333,7 @@ describe('EuiHeader', function () {
333
333
  cy.checkAxe();
334
334
  });
335
335
  it('has zero violations when a hidden breadcrumb is expanded', function () {
336
- cy.get('button[aria-label="See collapsed breadcrumbs"]').realClick();
336
+ cy.get('button[title="See collapsed breadcrumbs"]').realClick();
337
337
  cy.get('a[data-test-subj="cy-breadcrumb-hidden"]').should('exist');
338
338
  cy.checkAxe();
339
339
  });
@@ -84,10 +84,10 @@ EuiHeaderLink.propTypes = {
84
84
  type: _propTypes.default.oneOf(["button", "submit"]),
85
85
  buttonRef: _propTypes.default.any,
86
86
  /**
87
- * Object of props passed to the <span/> wrapping the button's content
87
+ * Object of props passed to the `<span>` wrapping the button's content
88
88
  */
89
89
  /**
90
- * Object of props passed to the <span/> wrapping the button's content
90
+ * Object of props passed to the `<span>` wrapping the button's content
91
91
  */
92
92
  contentProps: _propTypes.default.shape({
93
93
  className: _propTypes.default.string,
@@ -104,16 +104,18 @@ EuiHeaderLink.propTypes = {
104
104
  */
105
105
  iconSide: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.oneOf([undefined])]),
106
106
  /**
107
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
107
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
108
+ *
109
+ * This span wrapper can be removed by passing `textProps={false}`.
108
110
  */
109
- textProps: _propTypes.default.shape({
111
+ textProps: _propTypes.default.oneOfType([_propTypes.default.shape({
110
112
  className: _propTypes.default.string,
111
113
  "aria-label": _propTypes.default.string,
112
114
  "data-test-subj": _propTypes.default.string,
113
115
  css: _propTypes.default.any,
114
116
  ref: _propTypes.default.any,
115
117
  "data-text": _propTypes.default.string
116
- }),
118
+ }).isRequired, _propTypes.default.oneOf([false])]),
117
119
  iconSize: _propTypes.default.any,
118
120
  className: _propTypes.default.string,
119
121
  "aria-label": _propTypes.default.string,
@@ -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,
@@ -83,6 +83,7 @@ var EuiI18n = function EuiI18n(props) {
83
83
  i18nMapping: mapping,
84
84
  i18nMappingFunc: mappingFunc,
85
85
  valueDefault: props.defaults[idx],
86
+ values: props.values,
86
87
  render: render
87
88
  });
88
89
  }));
@@ -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,
@@ -187,7 +187,7 @@ var EuiInputPopover = function EuiInputPopover(_ref) {
187
187
  css: /*#__PURE__*/(0, _react2.css)(fullWidth ? undefined : (0, _global_styling.logicalCSS)('max-width', form.maxWidth), ";label:EuiInputPopover;"),
188
188
  display: display,
189
189
  button: input,
190
- buttonRef: inputRef,
190
+ popoverRef: inputRef,
191
191
  panelRef: panelRef,
192
192
  ref: popoverClassRef,
193
193
  closePopover: closePopover,