@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
@@ -10,6 +10,7 @@ var _button = require("../button");
10
10
  var _tool_tip = require("../tool_tip");
11
11
  var _accessibility = require("../../services/accessibility");
12
12
  var _accessibility2 = require("../accessibility");
13
+ var _action_types = require("./action_types");
13
14
  var _react2 = require("@emotion/react");
14
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
16
  /*
@@ -20,9 +21,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
20
21
  * Side Public License, v 1.
21
22
  */
22
23
 
23
- // In order to use generics with an arrow function inside a .tsx file, it's necessary to use
24
- // this `extends` hack and declare the types as shown, instead of declaring the const as a
25
- // FunctionComponent
26
24
  var DefaultItemAction = function DefaultItemAction(_ref) {
27
25
  var action = _ref.action,
28
26
  enabled = _ref.enabled,
@@ -45,25 +43,36 @@ var DefaultItemAction = function DefaultItemAction(_ref) {
45
43
  icon = (0, _predicate.isString)(buttonIcon) ? buttonIcon : buttonIcon(item);
46
44
  }
47
45
  var button;
48
- var actionContent = typeof action.name === 'function' ? action.name(item) : action.name;
46
+ var actionContent = (0, _action_types.callWithItemIfFunction)(item)(action.name);
47
+ var tooltipContent = (0, _action_types.callWithItemIfFunction)(item)(action.description);
48
+ var href = (0, _action_types.callWithItemIfFunction)(item)(action.href);
49
+ var dataTestSubj = (0, _action_types.callWithItemIfFunction)(item)(action['data-test-subj']);
49
50
  var ariaLabelId = (0, _accessibility.useGeneratedHtmlId)();
51
+ var ariaLabelledBy;
50
52
  if (action.type === 'icon') {
51
53
  if (!icon) {
52
54
  throw new Error("Cannot render item action [".concat(action.name, "]. It is configured to render as an icon but no\n icon is provided. Make sure to set the 'icon' property of the action"));
53
55
  }
54
- button = (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_button.EuiButtonIcon, {
56
+ button = (0, _react2.jsx)(_button.EuiButtonIcon, {
55
57
  className: className,
56
58
  "aria-labelledby": ariaLabelId,
57
59
  isDisabled: !enabled,
58
60
  color: color,
59
61
  iconType: icon,
60
62
  onClick: onClick,
61
- href: action.href,
63
+ href: href,
62
64
  target: action.target,
63
- "data-test-subj": action['data-test-subj']
64
- }), (0, _react2.jsx)(_accessibility2.EuiScreenReaderOnly, null, (0, _react2.jsx)("span", {
65
+ "data-test-subj": dataTestSubj
66
+ // If action is disabled, the normal tooltip can't show - attempt to
67
+ // provide some amount of affordance with a browser title tooltip
68
+ ,
69
+ title: !enabled ? tooltipContent : undefined
70
+ });
71
+ // actionContent (action.name) is a ReactNode and must be rendered
72
+ // to an element and referenced by ID for screen readers
73
+ ariaLabelledBy = (0, _react2.jsx)(_accessibility2.EuiScreenReaderOnly, null, (0, _react2.jsx)("span", {
65
74
  id: ariaLabelId
66
- }, actionContent)));
75
+ }, actionContent));
67
76
  } else {
68
77
  button = (0, _react2.jsx)(_button.EuiButtonEmpty, {
69
78
  className: className,
@@ -72,15 +81,15 @@ var DefaultItemAction = function DefaultItemAction(_ref) {
72
81
  color: color,
73
82
  iconType: icon,
74
83
  onClick: onClick,
75
- href: action.href,
84
+ href: href,
76
85
  target: action.target,
77
- "data-test-subj": action['data-test-subj'],
86
+ "data-test-subj": dataTestSubj,
78
87
  flush: "right"
79
88
  }, actionContent);
80
89
  }
81
- return enabled && action.description ? (0, _react2.jsx)(_tool_tip.EuiToolTip, {
82
- content: action.description,
90
+ return enabled ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_tool_tip.EuiToolTip, {
91
+ content: tooltipContent,
83
92
  delay: "long"
84
- }, button) : button;
93
+ }, button), ariaLabelledBy) : (0, _react2.jsx)(_react.default.Fragment, null, button, ariaLabelledBy);
85
94
  };
86
95
  exports.DefaultItemAction = DefaultItemAction;
@@ -136,24 +136,26 @@ describe('EuiInMemoryTable', function () {
136
136
  cy.checkAxe();
137
137
  });
138
138
  it('has zero violations after sorting on a column', function () {
139
- cy.realPress('Tab');
140
- cy.get('button[data-test-subj="tableHeaderSortButton"]').first().should('have.focus');
141
- cy.realPress('Enter');
139
+ cy.get('button[data-test-subj="tableHeaderSortButton"]').first().focus();
140
+ cy.realPress('{enter}');
142
141
  cy.checkAxe();
143
142
  });
144
143
  it('has zero violations when number of rows is increased by keyboard', function () {
145
- cy.repeatRealPress('Tab', 14);
146
- cy.get('button[data-test-subj="tablePaginationPopoverButton"]').should('have.focus').realPress('Space');
147
- cy.get('div[data-popover-open="true"]').should('exist');
148
- cy.get('div[data-popover-open="true"]').should('have.focus');
144
+ cy.get('button[data-test-subj="tablePaginationPopoverButton"]').focus().realPress('{enter}');
145
+ cy.get('div[data-popover-open="true"]', {
146
+ timeout: 1000
147
+ }).should('exist');
149
148
  cy.repeatRealPress('Tab'); // Switched to Tab from ArrowDown because of flaky test runs
150
- cy.get('button[data-test-subj="tablePagination-25-rows"]').realPress('Space');
151
- cy.get('table.euiTable').find('tr.euiTableRow').should('have.length', 20);
149
+ cy.get('button[data-test-subj="tablePagination-25-rows"]', {
150
+ timeout: 1000
151
+ }).realPress('{enter}');
152
+ cy.get('table.euiTable', {
153
+ timeout: 1000
154
+ }).find('tr.euiTableRow').should('have.length', 20);
152
155
  cy.checkAxe();
153
156
  });
154
157
  it('has zero violations when pagination is pressed', function () {
155
- cy.repeatRealPress('Tab', 15);
156
- cy.get('a[data-test-subj="pagination-button-1"]').should('have.focus').realPress('Enter');
158
+ cy.get('a[data-test-subj="pagination-button-1"]').focus().realPress('{enter}');
157
159
  cy.get('button[data-test-subj="pagination-button-1"]').should('be.disabled');
158
160
  cy.checkAxe();
159
161
  });
@@ -692,19 +692,19 @@ EuiInMemoryTable.propTypes = {
692
692
  */
693
693
  color: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.func.isRequired]),
694
694
  /**
695
- * The display name of the action (will be the button caption)
695
+ * The display name of the action (will render as visible text if rendered within a collapsed menu)
696
696
  */
697
697
  /**
698
- * The display name of the action (will be the button caption)
698
+ * The display name of the action (will render as visible text if rendered within a collapsed menu)
699
699
  */
700
700
  name: _propTypes.default.oneOfType([_propTypes.default.node.isRequired, _propTypes.default.func.isRequired]).isRequired,
701
701
  /**
702
- * Describes the action (will be the button title)
702
+ * Describes the action (will render as tooltip content)
703
703
  */
704
704
  /**
705
- * Describes the action (will be the button title)
705
+ * Describes the action (will render as tooltip content)
706
706
  */
707
- description: _propTypes.default.string.isRequired,
707
+ description: _propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.func.isRequired]).isRequired,
708
708
  /**
709
709
  * A handler function to execute the action
710
710
  */
@@ -712,7 +712,7 @@ EuiInMemoryTable.propTypes = {
712
712
  * A handler function to execute the action
713
713
  */
714
714
  onClick: _propTypes.default.func,
715
- href: _propTypes.default.string,
715
+ href: _propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.func.isRequired]),
716
716
  target: _propTypes.default.string,
717
717
  /**
718
718
  * A callback function that determines whether the action is available
@@ -729,14 +729,14 @@ EuiInMemoryTable.propTypes = {
729
729
  */
730
730
  enabled: _propTypes.default.func,
731
731
  isPrimary: _propTypes.default.bool,
732
- "data-test-subj": _propTypes.default.string,
732
+ "data-test-subj": _propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.func.isRequired]),
733
733
  /**
734
734
  * Associates an icon with the button
735
735
  */
736
736
  icon: _propTypes.default.oneOfType([_propTypes.default.oneOf(["accessibility", "addDataApp", "advancedSettingsApp", "agentApp", "aggregate", "analyzeEvent", "annotation", "apmApp", "apmTrace", "appSearchApp", "apps", "arrowDown", "arrowLeft", "arrowRight", "arrowUp", "arrowStart", "arrowEnd", "article", "asterisk", "at", "auditbeatApp", "beaker", "bell", "bellSlash", "beta", "bolt", "boxesHorizontal", "boxesVertical", "branch", "branchUser", "broom", "brush", "bug", "bullseye", "calendar", "canvasApp", "casesApp", "check", "checkInCircleFilled", "cheer", "classificationJob", "clock", "cloudDrizzle", "cloudStormy", "cloudSunny", "cluster", "codeApp", "color", "compute", "console", "consoleApp", "container", "continuityAbove", "continuityAboveBelow", "continuityBelow", "continuityWithin", "controlsHorizontal", "controlsVertical", "copy", "copyClipboard", "createAdvancedJob", "createMultiMetricJob", "createPopulationJob", "createSingleMetricJob", "cross", "crossClusterReplicationApp", "crosshairs", "currency", "cut", "dashboardApp", "dataVisualizer", "database", "desktop", "devToolsApp", "discoverApp", "discuss", "document", "documentEdit", "documentation", "documents", "dot", "dotInCircle", "doubleArrowLeft", "doubleArrowRight", "download", "editorAlignCenter", "editorAlignLeft", "editorAlignRight", "editorBold", "editorChecklist", "editorCodeBlock", "editorComment", "editorDistributeHorizontal", "editorDistributeVertical", "editorHeading", "editorItalic", "editorItemAlignBottom", "editorItemAlignCenter", "editorItemAlignLeft", "editorItemAlignMiddle", "editorItemAlignRight", "editorItemAlignTop", "editorLink", "editorOrderedList", "editorPositionBottomLeft", "editorPositionBottomRight", "editorPositionTopLeft", "editorPositionTopRight", "editorRedo", "editorStrike", "editorTable", "editorUnderline", "editorUndo", "editorUnorderedList", "email", "empty", "emsApp", "eql", "eraser", "error", "exit", "expand", "expandMini", "exportAction", "eye", "eyeClosed", "faceHappy", "faceNeutral", "faceSad", "filebeatApp", "filter", "filterExclude", "filterIgnore", "filterInclude", "filterInCircle", "flag", "fleetApp", "fold", "folderCheck", "folderClosed", "folderExclamation", "folderOpen", "frameNext", "framePrevious", "fullScreen", "fullScreenExit", "function", "gear", "gisApp", "glasses", "globe", "grab", "grabHorizontal", "grabOmnidirectional", "gradient", "graphApp", "grid", "grokApp", "heart", "heartbeatApp", "heatmap", "help", "home", "iInCircle", "image", "importAction", "indexClose", "indexEdit", "indexFlush", "indexManagementApp", "indexMapping", "indexOpen", "indexPatternApp", "indexRollupApp", "indexRuntime", "indexSettings", "indexTemporary", "infinity", "inputOutput", "inspect", "invert", "ip", "key", "keyboard", "kqlField", "kqlFunction", "kqlOperand", "kqlSelector", "kqlValue", "kubernetesNode", "kubernetesPod", "launch", "layers", "lensApp", "lettering", "lineDashed", "lineDotted", "lineSolid", "link", "list", "listAdd", "lock", "lockOpen", "logoAWS", "logoAWSMono", "logoAerospike", "logoApache", "logoAppSearch", "logoAzure", "logoAzureMono", "logoBeats", "logoBusinessAnalytics", "logoCeph", "logoCloud", "logoCloudEnterprise", "logoCode", "logoCodesandbox", "logoCouchbase", "logoDocker", "logoDropwizard", "logoElastic", "logoElasticStack", "logoElasticsearch", "logoEnterpriseSearch", "logoEtcd", "logoGCP", "logoGCPMono", "logoGithub", "logoGmail", "logoGolang", "logoGoogleG", "logoHAproxy", "logoIBM", "logoIBMMono", "logoKafka", "logoKibana", "logoKubernetes", "logoLogging", "logoLogstash", "logoMaps", "logoMemcached", "logoMetrics", "logoMongodb", "logoMySQL", "logoNginx", "logoObservability", "logoOsquery", "logoPhp", "logoPostgres", "logoPrometheus", "logoRabbitmq", "logoRedis", "logoSecurity", "logoSiteSearch", "logoSketch", "logoSlack", "logoUptime", "logoVulnerabilityManagement", "logoWebhook", "logoWindows", "logoWorkplaceSearch", "logsApp", "logstashFilter", "logstashIf", "logstashInput", "logstashOutput", "logstashQueue", "machineLearningApp", "magnet", "magnifyWithExclamation", "magnifyWithMinus", "magnifyWithPlus", "managementApp", "mapMarker", "memory", "menu", "menuDown", "menuLeft", "menuRight", "menuUp", "merge", "metricbeatApp", "metricsApp", "minimize", "minus", "minusInCircle", "minusInCircleFilled", "mobile", "monitoringApp", "moon", "namespace", "nested", "node", "notebookApp", "number", "offline", "online", "outlierDetectionJob", "package", "packetbeatApp", "pageSelect", "pagesSelect", "palette", "paperClip", "partial", "pause", "payment", "pencil", "percent", "pin", "pinFilled", "pipelineApp", "pivot", "play", "playFilled", "plus", "plusInCircle", "plusInCircleFilled", "popout", "push", "questionInCircle", "quote", "recentlyViewedApp", "refresh", "regressionJob", "reporter", "reportingApp", "returnKey", "save", "savedObjectsApp", "scale", "search", "searchProfilerApp", "securityAnalyticsApp", "securityApp", "securitySignal", "securitySignalDetected", "securitySignalResolved", "sessionViewer", "shard", "share", "snowflake", "sortAscending", "sortDescending", "sortDown", "sortLeft", "sortRight", "sortUp", "sortable", "spaces", "spacesApp", "sparkles", "sqlApp", "starEmpty", "starEmptySpace", "starFilled", "starFilledSpace", "starMinusEmpty", "starMinusFilled", "starPlusEmpty", "starPlusFilled", "stats", "stop", "stopFilled", "stopSlash", "storage", "string", "submodule", "sun", "swatchInput", "symlink", "tableDensityCompact", "tableDensityExpanded", "tableDensityNormal", "tableOfContents", "tag", "tear", "temperature", "timeline", "timelineWithArrow", "timelionApp", "timeRefresh", "timeslider", "training", "transitionLeftIn", "transitionLeftOut", "transitionTopIn", "transitionTopOut", "trash", "unfold", "unlink", "upgradeAssistantApp", "uptimeApp", "user", "userAvatar", "users", "usersRolesApp", "vector", "videoPlayer", "visArea", "visAreaStacked", "visBarHorizontal", "visBarHorizontalStacked", "visBarVertical", "visBarVerticalStacked", "visGauge", "visGoal", "visLine", "visMapCoordinate", "visMapRegion", "visMetric", "visPie", "visTable", "visTagCloud", "visText", "visTimelion", "visVega", "visVisualBuilder", "visualizeApp", "vulnerabilityManagementApp", "warning", "alert", "watchesApp", "wordWrap", "wordWrapDisabled", "workplaceSearchApp", "wrench", "tokenAlias", "tokenAnnotation", "tokenArray", "tokenBinary", "tokenBoolean", "tokenClass", "tokenCompletionSuggester", "tokenConstant", "tokenDate", "tokenElement", "tokenEnum", "tokenEnumMember", "tokenEvent", "tokenException", "tokenField", "tokenFile", "tokenFlattened", "tokenFunction", "tokenGeo", "tokenHistogram", "tokenInterface", "tokenIP", "tokenJoin", "tokenKey", "tokenKeyword", "tokenMethod", "tokenMetricCounter", "tokenMetricGauge", "tokenModule", "tokenNamespace", "tokenNested", "tokenNull", "tokenNumber", "tokenObject", "tokenOperator", "tokenPackage", "tokenParameter", "tokenPercolator", "tokenProperty", "tokenRange", "tokenRankFeature", "tokenRankFeatures", "tokenRepo", "tokenSearchType", "tokenShape", "tokenString", "tokenStruct", "tokenSymbol", "tokenTag", "tokenText", "tokenTokenCount", "tokenVariable", "tokenVectorDense", "tokenDenseVector", "tokenVectorSparse"]).isRequired, _propTypes.default.func.isRequired])
737
737
  }).isRequired, _propTypes.default.shape({
738
738
  /**
739
- * The function that renders the action. Note that the returned node is expected to have `onFocus` and `onBlur` functions
739
+ * Allows rendering a totally custom action
740
740
  */
741
741
  render: _propTypes.default.func.isRequired,
742
742
  /**
@@ -106,10 +106,12 @@ var EuiBreadcrumbContent = function EuiBreadcrumbContent(_ref2) {
106
106
  var popoverAriaLabel = (0, _i18n.useEuiI18n)('euiBreadcrumb.popoverAriaLabel', 'Clicking this button will toggle a popover dialog.');
107
107
  return (0, _react2.jsx)(_inner_text.EuiInnerText, null, function (ref, innerText) {
108
108
  var title = innerText === '' ? undefined : innerText;
109
- var sharedProps = {
109
+ var baseProps = {
110
110
  ref: ref,
111
111
  title: title,
112
- 'aria-current': ariaCurrent,
112
+ 'aria-current': ariaCurrent
113
+ };
114
+ var styleProps = {
113
115
  className: classes,
114
116
  css: cssStyles
115
117
  };
@@ -119,8 +121,10 @@ var EuiBreadcrumbContent = function EuiBreadcrumbContent(_ref2) {
119
121
  closePopover: function closePopover() {
120
122
  return setIsPopoverOpen(false);
121
123
  },
122
- button: (0, _react2.jsx)(_link.EuiLink, _extends({}, sharedProps, {
123
- color: linkColor
124
+ css: !isLastBreadcrumb && styles.euiBreadcrumb__popoverWrapper,
125
+ button: (0, _react2.jsx)(_link.EuiLink, _extends({}, baseProps, {
126
+ color: linkColor,
127
+ css: styles.euiBreadcrumb__popoverButton
124
128
  // Avoid passing href and onClick - should only toggle the popover
125
129
  ,
126
130
  onClick: function onClick() {
@@ -128,14 +132,14 @@ var EuiBreadcrumbContent = function EuiBreadcrumbContent(_ref2) {
128
132
  return !isOpen;
129
133
  });
130
134
  }
131
- }, rest), text, ' ', (0, _react2.jsx)(_icon.EuiIcon, {
135
+ }, rest), (0, _react2.jsx)("span", styleProps, text), (0, _react2.jsx)(_icon.EuiIcon, {
132
136
  type: "arrowDown",
133
137
  size: "s",
134
138
  "aria-label": " - ".concat(popoverAriaLabel)
135
139
  }))
136
140
  }), popoverContent);
137
141
  } else if (isInteractiveBreadcrumb) {
138
- return (0, _react2.jsx)(_link.EuiLink, _extends({}, sharedProps, {
142
+ return (0, _react2.jsx)(_link.EuiLink, _extends({}, baseProps, styleProps, {
139
143
  color: linkColor,
140
144
  onClick: onClick,
141
145
  href: href,
@@ -145,7 +149,7 @@ var EuiBreadcrumbContent = function EuiBreadcrumbContent(_ref2) {
145
149
  return (0, _react2.jsx)(_text.EuiTextColor, {
146
150
  color: plainTextColor,
147
151
  cloneElement: true
148
- }, (0, _react2.jsx)("span", _extends({}, sharedProps, rest), text));
152
+ }, (0, _react2.jsx)("span", _extends({}, baseProps, styleProps, rest), text));
149
153
  }
150
154
  });
151
155
  };
@@ -188,6 +192,8 @@ EuiBreadcrumbContent.propTypes = {
188
192
  popoverProps: _propTypes.default.shape({
189
193
  /**
190
194
  * Class name passed to the direct parent of the button
195
+ *
196
+ * @deprecated Use `className` instead
191
197
  */
192
198
  anchorClassName: _propTypes.default.string,
193
199
  /**
@@ -199,6 +205,9 @@ EuiBreadcrumbContent.propTypes = {
199
205
  * Intended for use with inputs as anchors, e.g. EuiInputPopover
200
206
  */
201
207
  attachToAnchor: _propTypes.default.bool,
208
+ /**
209
+ * @deprecated Use `popoverRef` instead
210
+ */
202
211
  buttonRef: _propTypes.default.any,
203
212
  /**
204
213
  * Restrict the popover's position within this element
@@ -267,11 +276,6 @@ EuiBreadcrumbContent.propTypes = {
267
276
  */
268
277
  grow: _propTypes.default.bool,
269
278
  panelRef: _propTypes.default.any,
270
- /**
271
- * Background color of the panel;
272
- * Usually a lightened form of the brand colors
273
- */
274
- color: _propTypes.default.any,
275
279
  className: _propTypes.default.string,
276
280
  "aria-label": _propTypes.default.string,
277
281
  "data-test-subj": _propTypes.default.string,
@@ -54,6 +54,11 @@ var euiBreadcrumbContentStyles = function euiBreadcrumbContentStyles(euiThemeCon
54
54
  return x * 10;
55
55
  })), ";;label:isTruncated;"),
56
56
  isTruncatedLast: /*#__PURE__*/(0, _react.css)((0, _global_styling.euiTextTruncate)('none'), ";;label:isTruncatedLast;"),
57
+ // Popover styles
58
+ euiBreadcrumb__popoverButton: /*#__PURE__*/(0, _react.css)("max-inline-size:100%;display:inline-flex;align-items:center;gap:", euiTheme.size.xs, ";;label:euiBreadcrumb__popoverButton;"),
59
+ euiBreadcrumb__popoverWrapper: /*#__PURE__*/(0, _react.css)("max-inline-size:calc(\n 100% - ", (0, _global_styling.mathWithUnits)(euiTheme.size.base, function (x) {
60
+ return x + 1;
61
+ }), "\n );;label:euiBreadcrumb__popoverWrapper;"),
57
62
  // Types
58
63
  page: /*#__PURE__*/(0, _react.css)("&:is(a):focus{", (0, _global_styling.euiFocusRing)(euiThemeContext, 'inset'), ";}&:is(button):focus{", (0, _global_styling.euiFocusRing)(euiThemeContext, 'center'), ";};label:page;"),
59
64
  application: /*#__PURE__*/(0, _react.css)((0, _global_styling.euiFontSize)(euiThemeContext, 'xs'), " background-color:", (0, _color.transparentize)(euiTheme.colors.darkestShade, 0.2), ";clip-path:polygon(\n 0 0,\n calc(100% - ", euiTheme.size.s, ") 0,\n 100% 50%,\n calc(100% - ", euiTheme.size.s, ") 100%,\n 0 100%,\n ", euiTheme.size.s, " 50%\n );color:", euiTheme.colors.darkestShade, ";line-height:", euiTheme.size.base, ";", (0, _global_styling.logicalCSS)('padding-vertical', euiTheme.size.xs), " ", (0, _global_styling.logicalCSS)('padding-horizontal', euiTheme.size.base), " &:is(a),&:is(button){background-color:", (0, _color.transparentize)(euiTheme.colors.primary, 0.2), ";color:", euiTheme.colors.link, ";:focus{", (0, _global_styling.euiFocusRing)(euiThemeContext, 'inset'), " :focus-visible{border-radius:", euiTheme.border.radius.medium, ";clip-path:none;}}};label:application;"),
@@ -126,7 +126,7 @@ exports.EuiButtonDisplay = EuiButtonDisplay;
126
126
  EuiButtonDisplay.propTypes = {
127
127
  href: _propTypes.default.string,
128
128
  onClick: _propTypes.default.func,
129
- element: _propTypes.default.oneOf(["a", "button", "span", "label"]),
129
+ element: _propTypes.default.oneOf(["a", "button", "span"]),
130
130
  children: _propTypes.default.node,
131
131
  size: _propTypes.default.any,
132
132
  /**
@@ -181,16 +181,18 @@ EuiButtonDisplay.propTypes = {
181
181
  */
182
182
  iconSide: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.oneOf([undefined])]),
183
183
  /**
184
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
184
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
185
+ *
186
+ * This span wrapper can be removed by passing `textProps={false}`.
185
187
  */
186
- textProps: _propTypes.default.shape({
188
+ textProps: _propTypes.default.oneOfType([_propTypes.default.shape({
187
189
  className: _propTypes.default.string,
188
190
  "aria-label": _propTypes.default.string,
189
191
  "data-test-subj": _propTypes.default.string,
190
192
  css: _propTypes.default.any,
191
193
  ref: _propTypes.default.any,
192
194
  "data-text": _propTypes.default.string
193
- }),
195
+ }).isRequired, _propTypes.default.oneOf([false])]),
194
196
  iconSize: _propTypes.default.any,
195
197
  isDisabled: _propTypes.default.bool,
196
198
  className: _propTypes.default.string,
@@ -75,9 +75,11 @@ var EuiButtonDisplayContent = function EuiButtonDisplayContent(_ref) {
75
75
  }
76
76
 
77
77
  var isText = typeof children === 'string';
78
+ var doNotRenderTextWrapper = textProps === false;
79
+ var renderTextWrapper = (isText || textProps) && !doNotRenderTextWrapper;
78
80
  return (0, _react2.jsx)("span", _extends({
79
81
  css: cssStyles
80
- }, contentProps), iconSide === 'left' && icon, isText || textProps ? (0, _react2.jsx)("span", _extends({}, textProps, {
82
+ }, contentProps), iconSide === 'left' && icon, renderTextWrapper ? (0, _react2.jsx)("span", _extends({}, textProps, {
81
83
  className: (0, _classnames.default)('eui-textTruncate', textProps === null || textProps === void 0 ? void 0 : textProps.className)
82
84
  }), children) : children, iconSide === 'right' && icon);
83
85
  };
@@ -93,16 +95,18 @@ EuiButtonDisplayContent.propTypes = {
93
95
  iconSide: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.oneOf([undefined])]),
94
96
  isLoading: _propTypes.default.bool,
95
97
  /**
96
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
98
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
99
+ *
100
+ * This span wrapper can be removed by passing `textProps={false}`.
97
101
  */
98
- textProps: _propTypes.default.shape({
102
+ textProps: _propTypes.default.oneOfType([_propTypes.default.shape({
99
103
  className: _propTypes.default.string,
100
104
  "aria-label": _propTypes.default.string,
101
105
  "data-test-subj": _propTypes.default.string,
102
106
  css: _propTypes.default.any,
103
107
  ref: _propTypes.default.any,
104
108
  "data-text": _propTypes.default.string
105
- }),
109
+ }).isRequired, _propTypes.default.oneOf([false])]),
106
110
  iconSize: _propTypes.default.any,
107
111
  isDisabled: _propTypes.default.bool,
108
112
  className: _propTypes.default.string,
@@ -79,14 +79,14 @@ var EuiButtonEmpty = function EuiButtonEmpty(_ref) {
79
79
  var cssStyles = [styles.euiButtonEmpty, styles[size], buttonColorStyles[isDisabled ? 'disabled' : color], flush && styles.flush, flush && styles[flush], isDisabled && styles.isDisabled];
80
80
  var classes = (0, _classnames.default)('euiButtonEmpty', className);
81
81
  var contentClassNames = (0, _classnames.default)('euiButtonEmpty__content', contentProps === null || contentProps === void 0 ? void 0 : contentProps.className);
82
- var textClassNames = (0, _classnames.default)('euiButtonEmpty__text', textProps === null || textProps === void 0 ? void 0 : textProps.className);
82
+ var textClassNames = (0, _classnames.default)('euiButtonEmpty__text', textProps && textProps.className);
83
83
  var innerNode = (0, _react2.jsx)(_button_display_content.EuiButtonDisplayContent, _extends({
84
84
  isDisabled: isDisabled,
85
85
  isLoading: isLoading,
86
86
  iconType: iconType,
87
87
  iconSide: iconSide,
88
88
  iconSize: size === 'xs' ? 's' : iconSize,
89
- textProps: _objectSpread(_objectSpread({}, textProps), {}, {
89
+ textProps: textProps === false ? false : _objectSpread(_objectSpread({}, textProps), {}, {
90
90
  className: textClassNames
91
91
  })
92
92
  }, _objectSpread(_objectSpread({}, contentProps), {}, {
@@ -163,10 +163,10 @@ EuiButtonEmpty.propTypes = {
163
163
  type: _propTypes.default.oneOf(["button", "submit"]),
164
164
  buttonRef: _propTypes.default.any,
165
165
  /**
166
- * Object of props passed to the <span/> wrapping the button's content
166
+ * Object of props passed to the `<span>` wrapping the button's content
167
167
  */
168
168
  /**
169
- * Object of props passed to the <span/> wrapping the button's content
169
+ * Object of props passed to the `<span>` wrapping the button's content
170
170
  */
171
171
  contentProps: _propTypes.default.shape({
172
172
  className: _propTypes.default.string,
@@ -183,16 +183,18 @@ EuiButtonEmpty.propTypes = {
183
183
  */
184
184
  iconSide: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.oneOf([undefined])]),
185
185
  /**
186
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
186
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
187
+ *
188
+ * This span wrapper can be removed by passing `textProps={false}`.
187
189
  */
188
- textProps: _propTypes.default.shape({
190
+ textProps: _propTypes.default.oneOfType([_propTypes.default.shape({
189
191
  className: _propTypes.default.string,
190
192
  "aria-label": _propTypes.default.string,
191
193
  "data-test-subj": _propTypes.default.string,
192
194
  css: _propTypes.default.any,
193
195
  ref: _propTypes.default.any,
194
196
  "data-text": _propTypes.default.string
195
- }),
197
+ }).isRequired, _propTypes.default.oneOf([false])]),
196
198
  iconSize: _propTypes.default.any,
197
199
  className: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.string]),
198
200
  "aria-label": _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.string]),
@@ -57,9 +57,6 @@ var EuiButtonGroup = function EuiButtonGroup(_ref) {
57
57
  'euiButtonGroup-isDisabled': isDisabled
58
58
  }, className);
59
59
  var typeIsSingle = type === 'single';
60
- var nameIfSingle = (0, _services.useGeneratedHtmlId)({
61
- conditionalId: name
62
- });
63
60
  return (0, _react2.jsx)("fieldset", _extends({
64
61
  css: wrapperCssStyles,
65
62
  className: classes
@@ -71,15 +68,17 @@ var EuiButtonGroup = function EuiButtonGroup(_ref) {
71
68
  }, options.map(function (option, index) {
72
69
  return (0, _react2.jsx)(_button_group_button.EuiButtonGroupButton, _extends({
73
70
  key: index,
74
- name: nameIfSingle,
75
71
  isDisabled: isDisabled
76
72
  }, option, {
77
- element: typeIsSingle ? 'label' : 'button',
73
+ onClick: typeIsSingle ? function () {
74
+ return onChange(option.id, option.value);
75
+ } : function () {
76
+ return onChange(option.id);
77
+ },
78
78
  isSelected: typeIsSingle ? option.id === idSelected : idToSelectedMap[option.id],
79
79
  color: color,
80
80
  size: buttonSize,
81
- isIconOnly: isIconOnly,
82
- onChange: onChange
81
+ isIconOnly: isIconOnly
83
82
  }));
84
83
  })));
85
84
  };
@@ -153,16 +152,18 @@ EuiButtonGroup.propTypes = {
153
152
  iconSide: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.oneOf([undefined])]),
154
153
  isLoading: _propTypes.default.bool,
155
154
  /**
156
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
155
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
156
+ *
157
+ * This span wrapper can be removed by passing `textProps={false}`.
157
158
  */
158
- textProps: _propTypes.default.shape({
159
+ textProps: _propTypes.default.oneOfType([_propTypes.default.shape({
159
160
  className: _propTypes.default.string,
160
161
  "aria-label": _propTypes.default.string,
161
162
  "data-test-subj": _propTypes.default.string,
162
163
  css: _propTypes.default.any,
163
164
  ref: _propTypes.default.any,
164
165
  "data-text": _propTypes.default.string
165
- }),
166
+ }).isRequired, _propTypes.default.oneOf([false])]),
166
167
  iconSize: _propTypes.default.any,
167
168
  className: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.string]),
168
169
  "aria-label": _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.string]),
@@ -170,8 +171,7 @@ EuiButtonGroup.propTypes = {
170
171
  css: _propTypes.default.oneOfType([_propTypes.default.any, _propTypes.default.any])
171
172
  }).isRequired).isRequired,
172
173
  /**
173
- * The `name` attribute for radio inputs;
174
- * Defaults to a random string
174
+ * @deprecated No longer needed. You can safely remove this prop entirely
175
175
  */
176
176
  name: _propTypes.default.string,
177
177
  /**
@@ -13,7 +13,7 @@ var _inner_text = require("../../inner_text");
13
13
  var _button_display = require("../button_display/_button_display");
14
14
  var _button_group_button = require("./button_group_button.styles");
15
15
  var _react2 = require("@emotion/react");
16
- var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "label", "name", "onChange", "size", "value", "color", "element", "type"];
16
+ var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "label", "value", "size", "color"];
17
17
  /*
18
18
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
19
19
  * or more contributor license agreements. Licensed under the Elastic License
@@ -39,44 +39,11 @@ var EuiButtonGroupButton = function EuiButtonGroupButton(_ref) {
39
39
  _ref$isSelected = _ref.isSelected,
40
40
  isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
41
41
  label = _ref.label,
42
- name = _ref.name,
43
- _onChange = _ref.onChange,
44
- size = _ref.size,
45
42
  value = _ref.value,
43
+ size = _ref.size,
46
44
  _ref$color = _ref.color,
47
45
  _color = _ref$color === void 0 ? 'primary' : _ref$color,
48
- _ref$element = _ref.element,
49
- _element = _ref$element === void 0 ? 'button' : _ref$element,
50
- _ref$type = _ref.type,
51
- type = _ref$type === void 0 ? 'button' : _ref$type,
52
46
  rest = _objectWithoutProperties(_ref, _excluded);
53
- // Force element to be a button if disabled
54
- var element = isDisabled ? 'button' : _element;
55
- var elementProps = {};
56
- var singleInput;
57
- if (element === 'label') {
58
- singleInput = (0, _react2.jsx)("input", {
59
- className: "euiScreenReaderOnly",
60
- name: name,
61
- checked: isSelected,
62
- disabled: isDisabled,
63
- value: value,
64
- type: "radio",
65
- onChange: function onChange() {
66
- return _onChange(id, value);
67
- },
68
- "data-test-subj": id
69
- });
70
- } else {
71
- elementProps = {
72
- 'data-test-subj': id,
73
- isSelected: isSelected,
74
- type: type,
75
- onClick: function onClick() {
76
- return _onChange(id);
77
- }
78
- };
79
- }
80
47
  var isCompressed = size === 'compressed';
81
48
  var color = isDisabled ? 'disabled' : _color;
82
49
  var display = isSelected ? 'fill' : isCompressed ? 'empty' : 'base';
@@ -106,7 +73,6 @@ var EuiButtonGroupButton = function EuiButtonGroupButton(_ref) {
106
73
  return (0, _react2.jsx)(_button_display.EuiButtonDisplay, _extends({
107
74
  css: cssStyles,
108
75
  className: buttonClasses,
109
- element: element,
110
76
  isDisabled: isDisabled,
111
77
  size: size === 'compressed' ? 's' : size,
112
78
  contentProps: {
@@ -117,8 +83,10 @@ var EuiButtonGroupButton = function EuiButtonGroupButton(_ref) {
117
83
  ref: buttonTextRef,
118
84
  'data-text': innerText
119
85
  },
120
- title: innerText
121
- }, elementProps, rest), singleInput, label);
86
+ title: innerText,
87
+ "data-test-subj": id,
88
+ isSelected: isSelected
89
+ }, rest), label);
122
90
  };
123
91
  exports.EuiButtonGroupButton = EuiButtonGroupButton;
124
92
  EuiButtonGroupButton.propTypes = {
@@ -131,13 +99,10 @@ EuiButtonGroupButton.propTypes = {
131
99
  */
132
100
  label: _propTypes.default.node.isRequired,
133
101
  isDisabled: _propTypes.default.bool,
134
- /**
135
- * The value of the radio input for 'single'.
136
- */
137
102
  /**
138
103
  * The value of the radio input.
139
104
  */
140
- value: _propTypes.default.oneOfType([_propTypes.default.any, _propTypes.default.string]),
105
+ value: _propTypes.default.any,
141
106
  /**
142
107
  * The type of the underlying HTML button
143
108
  */
@@ -152,33 +117,27 @@ EuiButtonGroupButton.propTypes = {
152
117
  iconSide: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.oneOf([undefined])]),
153
118
  isLoading: _propTypes.default.bool,
154
119
  /**
155
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
120
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
121
+ *
122
+ * This span wrapper can be removed by passing `textProps={false}`.
156
123
  */
157
- textProps: _propTypes.default.shape({
124
+ textProps: _propTypes.default.oneOfType([_propTypes.default.shape({
158
125
  className: _propTypes.default.string,
159
126
  "aria-label": _propTypes.default.string,
160
127
  "data-test-subj": _propTypes.default.string,
161
128
  css: _propTypes.default.any,
162
129
  ref: _propTypes.default.any,
163
130
  "data-text": _propTypes.default.string
164
- }),
131
+ }).isRequired, _propTypes.default.oneOf([false])]),
165
132
  iconSize: _propTypes.default.any,
166
133
  className: _propTypes.default.string,
167
134
  "aria-label": _propTypes.default.string,
168
135
  "data-test-subj": _propTypes.default.string,
169
136
  css: _propTypes.default.any,
170
- /**
171
- * Element to display based on single or multi
172
- */
173
- element: _propTypes.default.oneOf(["button", "label"]).isRequired,
174
137
  /**
175
138
  * Styles the selected button to look selected (usually with `fill`)
176
139
  */
177
140
  isSelected: _propTypes.default.bool,
178
- /**
179
- * Name of the whole group for 'single'.
180
- */
181
- name: _propTypes.default.string,
182
141
  /**
183
142
  * Inherit from EuiButtonGroup
184
143
  */
@@ -194,5 +153,5 @@ EuiButtonGroupButton.propTypes = {
194
153
  /**
195
154
  * Inherit from EuiButtonGroup
196
155
  */
197
- onChange: _propTypes.default.func.isRequired
156
+ onClick: _propTypes.default.func.isRequired
198
157
  };
@@ -56,25 +56,15 @@ var euiButtonGroupButtonStyles = function euiButtonGroupButtonStyles(euiThemeCon
56
56
  }
57
57
  };
58
58
  };
59
-
60
- /**
61
- * Focus utilities - made complex by the two different button styles
62
- * and the fact that `label`/`input` combos need :focus-within,
63
- * but `button` does not
64
- */
65
59
  exports.euiButtonGroupButtonStyles = euiButtonGroupButtonStyles;
66
- var _outlineSelectors = function _outlineSelectors(outlineCss) {
67
- return /*#__PURE__*/(0, _react.css)("&:is(button){&:focus-visible{", outlineCss, ";}}&:is(label){&:focus-within{", outlineCss, ";}@supports selector(:has(*)){/* Once all evergreen browsers support :has, we can remove\n @supports and the outline: none reset just use this selector */&:focus-within{outline:none;}&:has(:focus-visible){", outlineCss, ";}}}");
68
- };
69
60
  var _compressedButtonFocusColor = function _compressedButtonFocusColor(euiThemeContext, color) {
70
- var euiTheme = euiThemeContext.euiTheme;
71
61
  var _euiButtonFillColor = (0, _button.euiButtonFillColor)(euiThemeContext, color),
72
62
  backgroundColor = _euiButtonFillColor.backgroundColor;
73
- return _outlineSelectors("outline: ".concat(euiTheme.focus.width, " solid ").concat(backgroundColor, ";"));
63
+ return /*#__PURE__*/(0, _react.css)("&:focus-visible{", (0, _global_styling.euiOutline)(euiThemeContext, 'center', backgroundColor), " &:is(.euiButtonGroupButton-isSelected){outline-offset:0;}}");
74
64
  };
75
65
  exports._compressedButtonFocusColor = _compressedButtonFocusColor;
76
66
  var _uncompressedButtonFocus = function _uncompressedButtonFocus(euiThemeContext) {
77
67
  var euiTheme = euiThemeContext.euiTheme;
78
- return _outlineSelectors((0, _global_styling.euiOutline)(euiThemeContext, 'inset', euiTheme.colors.fullShade));
68
+ return /*#__PURE__*/(0, _react.css)("&:focus-visible{", (0, _global_styling.euiOutline)(euiThemeContext, 'inset', euiTheme.colors.fullShade), ";}");
79
69
  };
80
70
  exports._uncompressedButtonFocus = _uncompressedButtonFocus;