@elastic/eui 91.0.0 → 91.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/dist/eui_theme_dark.css +191 -124
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +191 -124
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/accordion/accordion.a11y.js +1 -3
  6. package/es/components/basic_table/action_types.js +5 -0
  7. package/es/components/basic_table/basic_table.a11y.js +1 -2
  8. package/es/components/basic_table/basic_table.js +8 -8
  9. package/es/components/basic_table/collapsed_item_actions.js +120 -249
  10. package/es/components/basic_table/custom_item_action.js +9 -95
  11. package/es/components/basic_table/default_item_action.js +23 -14
  12. package/es/components/basic_table/in_memory_table.a11y.js +13 -11
  13. package/es/components/basic_table/in_memory_table.js +8 -8
  14. package/es/components/breadcrumbs/breadcrumb.js +11 -7
  15. package/es/components/breadcrumbs/breadcrumb.styles.js +5 -0
  16. package/es/components/button/button_display/_button_display.js +5 -3
  17. package/es/components/button/button_display/_button_display_content.js +8 -4
  18. package/es/components/button/button_empty/button_empty.js +9 -7
  19. package/es/components/button/button_group/button_group.js +5 -3
  20. package/es/components/button/button_group/button_group_button.js +5 -3
  21. package/es/components/card/card.a11y.js +5 -18
  22. package/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +2 -2
  23. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  24. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  25. package/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +1 -101
  26. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +20 -58
  27. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +89 -37
  28. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +67 -81
  29. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +1 -19
  30. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +7 -102
  31. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  32. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +7 -90
  33. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +150 -130
  34. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +0 -10
  35. package/es/components/combo_box/combo_box.js +1 -1
  36. package/es/components/context_menu/context_menu_item.js +16 -8
  37. package/es/components/context_menu/context_menu_item.styles.js +1 -1
  38. package/es/components/datagrid/body/data_grid_body.js +16 -6
  39. package/es/components/datagrid/body/data_grid_body_custom.js +16 -6
  40. package/es/components/datagrid/body/data_grid_body_virtualized.js +16 -6
  41. package/es/components/datagrid/body/data_grid_cell.js +67 -44
  42. package/es/components/datagrid/body/data_grid_cell_actions.js +12 -12
  43. package/es/components/datagrid/body/data_grid_cell_popover.js +43 -10
  44. package/es/components/datagrid/body/header/data_grid_header_cell.js +65 -34
  45. package/es/components/datagrid/body/header/data_grid_header_row.js +16 -6
  46. package/es/components/datagrid/controls/column_selector.js +19 -39
  47. package/es/components/datagrid/controls/column_sorting.js +18 -29
  48. package/es/components/datagrid/controls/data_grid_toolbar_control.js +154 -0
  49. package/es/components/datagrid/controls/display_selector.js +0 -1
  50. package/es/components/datagrid/controls/fullscreen_selector.js +2 -6
  51. package/es/components/datagrid/controls/index.js +2 -1
  52. package/es/components/datagrid/index.js +1 -1
  53. package/es/components/datagrid/utils/in_memory.js +16 -6
  54. package/es/components/datagrid/utils/row_heights.js +1 -1
  55. package/es/components/date_picker/auto_refresh/auto_refresh.js +6 -4
  56. package/es/components/date_picker/super_date_picker/super_update_button.js +1 -1
  57. package/es/components/error_boundary/error_boundary.a11y.js +1 -1
  58. package/es/components/expression/expression.a11y.js +2 -4
  59. package/es/components/facet/facet_button.js +5 -3
  60. package/es/components/filter_group/filter_button.js +2 -2
  61. package/es/components/focus_trap/focus_trap.a11y.js +3 -3
  62. package/es/components/form/range/range.a11y.js +5 -10
  63. package/es/components/form/super_select/super_select.js +3 -2
  64. package/es/components/form/super_select/super_select_control.js +13 -20
  65. package/es/components/header/header.a11y.js +1 -1
  66. package/es/components/header/header_links/header_link.js +7 -5
  67. package/es/components/header/header_section/header_section_item_button.js +7 -5
  68. package/es/components/image/image.a11y.js +1 -2
  69. package/es/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  70. package/es/components/link/external_link_icon.js +51 -0
  71. package/es/components/link/link.js +6 -20
  72. package/es/components/link/link.styles.js +2 -5
  73. package/es/components/list_group/list_group.js +6 -1
  74. package/es/components/list_group/list_group_item.js +14 -4
  75. package/es/components/list_group/list_group_item.styles.js +2 -1
  76. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +12 -2
  77. package/es/components/notification/notification_event.a11y.js +1 -2
  78. package/es/components/notification/notification_event.js +7 -5
  79. package/es/components/pagination/pagination_button.js +7 -5
  80. package/es/components/popover/popover.js +4 -1
  81. package/es/components/resizable_container/resizable_container.a11y.js +4 -8
  82. package/es/components/search_bar/search_bar.a11y.js +3 -6
  83. package/es/components/selectable/selectable.js +16 -1
  84. package/es/components/selectable/selectable_list/selectable_list.js +227 -78
  85. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +16 -1
  86. package/es/components/text/text.styles.js +2 -2
  87. package/es/components/text_truncate/text_truncate.js +33 -10
  88. package/eui.d.ts +466 -136
  89. package/i18ntokens.json +224 -260
  90. package/lib/components/accordion/accordion.a11y.js +1 -3
  91. package/lib/components/basic_table/action_types.js +8 -2
  92. package/lib/components/basic_table/basic_table.a11y.js +1 -2
  93. package/lib/components/basic_table/basic_table.js +8 -8
  94. package/lib/components/basic_table/collapsed_item_actions.js +128 -257
  95. package/lib/components/basic_table/custom_item_action.js +18 -104
  96. package/lib/components/basic_table/default_item_action.js +23 -14
  97. package/lib/components/basic_table/in_memory_table.a11y.js +13 -11
  98. package/lib/components/basic_table/in_memory_table.js +8 -8
  99. package/lib/components/breadcrumbs/breadcrumb.js +11 -7
  100. package/lib/components/breadcrumbs/breadcrumb.styles.js +5 -0
  101. package/lib/components/button/button_display/_button_display.js +5 -3
  102. package/lib/components/button/button_display/_button_display_content.js +8 -4
  103. package/lib/components/button/button_empty/button_empty.js +9 -7
  104. package/lib/components/button/button_group/button_group.js +5 -3
  105. package/lib/components/button/button_group/button_group_button.js +5 -3
  106. package/lib/components/card/card.a11y.js +5 -18
  107. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +1 -1
  108. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  109. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  110. package/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +1 -101
  111. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +20 -58
  112. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +89 -37
  113. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +66 -80
  114. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +11 -28
  115. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +7 -104
  116. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  117. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +7 -90
  118. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +150 -130
  119. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +0 -10
  120. package/lib/components/combo_box/combo_box.js +1 -1
  121. package/lib/components/context_menu/context_menu_item.js +16 -8
  122. package/lib/components/context_menu/context_menu_item.styles.js +1 -1
  123. package/lib/components/datagrid/body/data_grid_body.js +16 -6
  124. package/lib/components/datagrid/body/data_grid_body_custom.js +16 -6
  125. package/lib/components/datagrid/body/data_grid_body_virtualized.js +16 -6
  126. package/lib/components/datagrid/body/data_grid_cell.js +67 -44
  127. package/lib/components/datagrid/body/data_grid_cell_actions.js +12 -13
  128. package/lib/components/datagrid/body/data_grid_cell_popover.js +43 -10
  129. package/lib/components/datagrid/body/header/data_grid_header_cell.js +65 -34
  130. package/lib/components/datagrid/body/header/data_grid_header_row.js +16 -6
  131. package/lib/components/datagrid/controls/column_selector.js +19 -39
  132. package/lib/components/datagrid/controls/column_sorting.js +18 -30
  133. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +159 -0
  134. package/lib/components/datagrid/controls/display_selector.js +0 -1
  135. package/lib/components/datagrid/controls/fullscreen_selector.js +2 -7
  136. package/lib/components/datagrid/controls/index.js +8 -1
  137. package/lib/components/datagrid/index.js +8 -1
  138. package/lib/components/datagrid/utils/in_memory.js +16 -6
  139. package/lib/components/datagrid/utils/row_heights.js +1 -1
  140. package/lib/components/date_picker/auto_refresh/auto_refresh.js +6 -4
  141. package/lib/components/date_picker/super_date_picker/super_update_button.js +1 -1
  142. package/lib/components/error_boundary/error_boundary.a11y.js +1 -1
  143. package/lib/components/expression/expression.a11y.js +2 -4
  144. package/lib/components/facet/facet_button.js +5 -3
  145. package/lib/components/filter_group/filter_button.js +2 -2
  146. package/lib/components/focus_trap/focus_trap.a11y.js +3 -3
  147. package/lib/components/form/range/range.a11y.js +5 -10
  148. package/lib/components/form/super_select/super_select.js +3 -2
  149. package/lib/components/form/super_select/super_select_control.js +12 -19
  150. package/lib/components/header/header.a11y.js +1 -1
  151. package/lib/components/header/header_links/header_link.js +7 -5
  152. package/lib/components/header/header_section/header_section_item_button.js +7 -5
  153. package/lib/components/image/image.a11y.js +1 -2
  154. package/lib/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  155. package/lib/components/link/external_link_icon.js +57 -0
  156. package/lib/components/link/link.js +6 -20
  157. package/lib/components/link/link.styles.js +1 -4
  158. package/lib/components/list_group/list_group.js +6 -1
  159. package/lib/components/list_group/list_group_item.js +14 -4
  160. package/lib/components/list_group/list_group_item.styles.js +2 -1
  161. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +12 -2
  162. package/lib/components/notification/notification_event.a11y.js +1 -2
  163. package/lib/components/notification/notification_event.js +7 -5
  164. package/lib/components/popover/popover.js +4 -1
  165. package/lib/components/resizable_container/resizable_container.a11y.js +4 -8
  166. package/lib/components/search_bar/search_bar.a11y.js +3 -6
  167. package/lib/components/selectable/selectable.js +16 -1
  168. package/lib/components/selectable/selectable_list/selectable_list.js +227 -78
  169. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +16 -1
  170. package/lib/components/text/text.styles.js +2 -2
  171. package/lib/components/text_truncate/text_truncate.js +32 -9
  172. package/optimize/es/components/accordion/accordion.a11y.js +1 -3
  173. package/optimize/es/components/basic_table/action_types.js +5 -0
  174. package/optimize/es/components/basic_table/basic_table.a11y.js +1 -2
  175. package/optimize/es/components/basic_table/collapsed_item_actions.js +116 -169
  176. package/optimize/es/components/basic_table/custom_item_action.js +10 -83
  177. package/optimize/es/components/basic_table/default_item_action.js +23 -14
  178. package/optimize/es/components/basic_table/in_memory_table.a11y.js +13 -11
  179. package/optimize/es/components/breadcrumbs/breadcrumb.js +11 -7
  180. package/optimize/es/components/breadcrumbs/breadcrumb.styles.js +5 -0
  181. package/optimize/es/components/button/button_display/_button_display_content.js +3 -1
  182. package/optimize/es/components/button/button_empty/button_empty.js +2 -2
  183. package/optimize/es/components/card/card.a11y.js +5 -18
  184. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +2 -2
  185. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  186. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  187. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -3
  188. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +10 -5
  189. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +8 -36
  190. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +1 -19
  191. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -23
  192. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  193. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +6 -10
  194. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +9 -5
  195. package/optimize/es/components/context_menu/context_menu_item.js +9 -6
  196. package/optimize/es/components/context_menu/context_menu_item.styles.js +1 -1
  197. package/optimize/es/components/datagrid/body/data_grid_cell.js +38 -30
  198. package/optimize/es/components/datagrid/body/data_grid_cell_actions.js +12 -12
  199. package/optimize/es/components/datagrid/body/data_grid_cell_popover.js +43 -10
  200. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +49 -28
  201. package/optimize/es/components/datagrid/controls/column_selector.js +19 -39
  202. package/optimize/es/components/datagrid/controls/column_sorting.js +18 -29
  203. package/optimize/es/components/datagrid/controls/data_grid_toolbar_control.js +70 -0
  204. package/optimize/es/components/datagrid/controls/display_selector.js +0 -1
  205. package/optimize/es/components/datagrid/controls/fullscreen_selector.js +2 -6
  206. package/optimize/es/components/datagrid/controls/index.js +2 -1
  207. package/optimize/es/components/datagrid/index.js +1 -1
  208. package/optimize/es/components/datagrid/utils/row_heights.js +1 -1
  209. package/optimize/es/components/date_picker/super_date_picker/super_update_button.js +1 -1
  210. package/optimize/es/components/error_boundary/error_boundary.a11y.js +1 -1
  211. package/optimize/es/components/expression/expression.a11y.js +2 -4
  212. package/optimize/es/components/filter_group/filter_button.js +2 -2
  213. package/optimize/es/components/focus_trap/focus_trap.a11y.js +3 -3
  214. package/optimize/es/components/form/range/range.a11y.js +5 -10
  215. package/optimize/es/components/form/super_select/super_select.js +3 -2
  216. package/optimize/es/components/form/super_select/super_select_control.js +13 -20
  217. package/optimize/es/components/header/header.a11y.js +1 -1
  218. package/optimize/es/components/image/image.a11y.js +1 -2
  219. package/optimize/es/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  220. package/optimize/es/components/link/external_link_icon.js +41 -0
  221. package/optimize/es/components/link/link.js +6 -20
  222. package/optimize/es/components/link/link.styles.js +2 -5
  223. package/optimize/es/components/list_group/list_group_item.js +8 -3
  224. package/optimize/es/components/list_group/list_group_item.styles.js +2 -1
  225. package/optimize/es/components/notification/notification_event.a11y.js +1 -2
  226. package/optimize/es/components/popover/popover.js +4 -1
  227. package/optimize/es/components/resizable_container/resizable_container.a11y.js +4 -8
  228. package/optimize/es/components/search_bar/search_bar.a11y.js +3 -6
  229. package/optimize/es/components/selectable/selectable_list/selectable_list.js +199 -76
  230. package/optimize/es/components/text/text.styles.js +2 -2
  231. package/optimize/es/components/text_truncate/text_truncate.js +26 -9
  232. package/optimize/lib/components/accordion/accordion.a11y.js +1 -3
  233. package/optimize/lib/components/basic_table/action_types.js +8 -2
  234. package/optimize/lib/components/basic_table/basic_table.a11y.js +1 -2
  235. package/optimize/lib/components/basic_table/collapsed_item_actions.js +123 -174
  236. package/optimize/lib/components/basic_table/custom_item_action.js +17 -91
  237. package/optimize/lib/components/basic_table/default_item_action.js +23 -14
  238. package/optimize/lib/components/basic_table/in_memory_table.a11y.js +13 -11
  239. package/optimize/lib/components/breadcrumbs/breadcrumb.js +11 -7
  240. package/optimize/lib/components/breadcrumbs/breadcrumb.styles.js +5 -0
  241. package/optimize/lib/components/button/button_display/_button_display_content.js +3 -1
  242. package/optimize/lib/components/button/button_empty/button_empty.js +2 -2
  243. package/optimize/lib/components/card/card.a11y.js +5 -18
  244. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +1 -1
  245. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  246. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  247. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -3
  248. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +10 -5
  249. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +8 -36
  250. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +11 -28
  251. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -26
  252. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  253. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +6 -10
  254. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +9 -5
  255. package/optimize/lib/components/context_menu/context_menu_item.js +9 -6
  256. package/optimize/lib/components/context_menu/context_menu_item.styles.js +1 -1
  257. package/optimize/lib/components/datagrid/body/data_grid_cell.js +38 -30
  258. package/optimize/lib/components/datagrid/body/data_grid_cell_actions.js +12 -12
  259. package/optimize/lib/components/datagrid/body/data_grid_cell_popover.js +43 -10
  260. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +55 -36
  261. package/optimize/lib/components/datagrid/controls/column_selector.js +19 -39
  262. package/optimize/lib/components/datagrid/controls/column_sorting.js +18 -29
  263. package/optimize/lib/components/datagrid/controls/data_grid_toolbar_control.js +75 -0
  264. package/optimize/lib/components/datagrid/controls/display_selector.js +0 -1
  265. package/optimize/lib/components/datagrid/controls/fullscreen_selector.js +2 -6
  266. package/optimize/lib/components/datagrid/controls/index.js +8 -1
  267. package/optimize/lib/components/datagrid/index.js +8 -1
  268. package/optimize/lib/components/datagrid/utils/row_heights.js +1 -1
  269. package/optimize/lib/components/date_picker/super_date_picker/super_update_button.js +1 -1
  270. package/optimize/lib/components/error_boundary/error_boundary.a11y.js +1 -1
  271. package/optimize/lib/components/expression/expression.a11y.js +2 -4
  272. package/optimize/lib/components/filter_group/filter_button.js +2 -2
  273. package/optimize/lib/components/focus_trap/focus_trap.a11y.js +3 -3
  274. package/optimize/lib/components/form/range/range.a11y.js +5 -10
  275. package/optimize/lib/components/form/super_select/super_select.js +3 -2
  276. package/optimize/lib/components/form/super_select/super_select_control.js +12 -19
  277. package/optimize/lib/components/header/header.a11y.js +1 -1
  278. package/optimize/lib/components/image/image.a11y.js +1 -2
  279. package/optimize/lib/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  280. package/optimize/lib/components/link/external_link_icon.js +47 -0
  281. package/optimize/lib/components/link/link.js +6 -20
  282. package/optimize/lib/components/link/link.styles.js +1 -4
  283. package/optimize/lib/components/list_group/list_group_item.js +8 -3
  284. package/optimize/lib/components/list_group/list_group_item.styles.js +2 -1
  285. package/optimize/lib/components/notification/notification_event.a11y.js +1 -2
  286. package/optimize/lib/components/popover/popover.js +4 -1
  287. package/optimize/lib/components/resizable_container/resizable_container.a11y.js +4 -8
  288. package/optimize/lib/components/search_bar/search_bar.a11y.js +3 -6
  289. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +199 -76
  290. package/optimize/lib/components/text/text.styles.js +2 -2
  291. package/optimize/lib/components/text_truncate/text_truncate.js +25 -8
  292. package/package.json +4 -4
  293. package/src/components/datagrid/_data_grid_data_row.scss +139 -100
  294. package/src/components/datagrid/_mixins.scss +2 -2
  295. package/src/components/datagrid/body/header/_data_grid_header_row.scss +36 -28
  296. package/src/components/datagrid/controls/_data_grid_toolbar.scss +0 -5
  297. package/src/components/form/form_row/_form_row.scss +1 -1
  298. package/src/components/table/_responsive.scss +19 -0
  299. package/src/components/table/_table.scss +4 -9
  300. package/test-env/components/accordion/accordion.a11y.js +1 -3
  301. package/test-env/components/auto_sizer/auto_sizer.js +10 -3
  302. package/test-env/components/basic_table/action_types.js +8 -2
  303. package/test-env/components/basic_table/basic_table.a11y.js +1 -2
  304. package/test-env/components/basic_table/basic_table.js +8 -8
  305. package/test-env/components/basic_table/collapsed_item_actions.js +124 -251
  306. package/test-env/components/basic_table/custom_item_action.js +18 -100
  307. package/test-env/components/basic_table/default_item_action.js +23 -14
  308. package/test-env/components/basic_table/in_memory_table.a11y.js +13 -11
  309. package/test-env/components/basic_table/in_memory_table.js +8 -8
  310. package/test-env/components/breadcrumbs/breadcrumb.js +11 -7
  311. package/test-env/components/breadcrumbs/breadcrumb.styles.js +5 -0
  312. package/test-env/components/button/button_display/_button_display.js +5 -3
  313. package/test-env/components/button/button_display/_button_display_content.js +8 -4
  314. package/test-env/components/button/button_empty/button_empty.js +9 -7
  315. package/test-env/components/button/button_group/button_group.js +5 -3
  316. package/test-env/components/button/button_group/button_group_button.js +5 -3
  317. package/test-env/components/card/card.a11y.js +5 -18
  318. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +1 -1
  319. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  320. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  321. package/test-env/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +1 -101
  322. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +20 -58
  323. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +89 -37
  324. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +66 -80
  325. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +11 -28
  326. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +7 -105
  327. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  328. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +7 -90
  329. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +150 -130
  330. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +0 -10
  331. package/test-env/components/combo_box/combo_box.js +1 -1
  332. package/test-env/components/context_menu/context_menu_item.js +16 -8
  333. package/test-env/components/context_menu/context_menu_item.styles.js +1 -1
  334. package/test-env/components/datagrid/body/data_grid_body.js +16 -6
  335. package/test-env/components/datagrid/body/data_grid_body_custom.js +16 -6
  336. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +16 -6
  337. package/test-env/components/datagrid/body/data_grid_cell.js +67 -44
  338. package/test-env/components/datagrid/body/data_grid_cell_actions.js +12 -12
  339. package/test-env/components/datagrid/body/data_grid_cell_popover.js +43 -10
  340. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +71 -42
  341. package/test-env/components/datagrid/body/header/data_grid_header_row.js +16 -6
  342. package/test-env/components/datagrid/controls/column_selector.js +19 -39
  343. package/test-env/components/datagrid/controls/column_sorting.js +18 -29
  344. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +158 -0
  345. package/test-env/components/datagrid/controls/display_selector.js +0 -1
  346. package/test-env/components/datagrid/controls/fullscreen_selector.js +2 -6
  347. package/test-env/components/datagrid/controls/index.js +8 -1
  348. package/test-env/components/datagrid/index.js +8 -1
  349. package/test-env/components/datagrid/utils/in_memory.js +16 -6
  350. package/test-env/components/datagrid/utils/row_heights.js +1 -1
  351. package/test-env/components/date_picker/auto_refresh/auto_refresh.js +6 -4
  352. package/test-env/components/date_picker/super_date_picker/super_update_button.js +1 -1
  353. package/test-env/components/error_boundary/error_boundary.a11y.js +1 -1
  354. package/test-env/components/expression/expression.a11y.js +2 -4
  355. package/test-env/components/facet/facet_button.js +5 -3
  356. package/test-env/components/filter_group/filter_button.js +2 -2
  357. package/test-env/components/focus_trap/focus_trap.a11y.js +3 -3
  358. package/test-env/components/form/range/range.a11y.js +5 -10
  359. package/test-env/components/form/super_select/super_select.js +3 -2
  360. package/test-env/components/form/super_select/super_select_control.js +12 -19
  361. package/test-env/components/header/header.a11y.js +1 -1
  362. package/test-env/components/header/header_links/header_link.js +7 -5
  363. package/test-env/components/header/header_section/header_section_item_button.js +7 -5
  364. package/test-env/components/image/image.a11y.js +1 -2
  365. package/test-env/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  366. package/test-env/components/link/external_link_icon.js +56 -0
  367. package/test-env/components/link/link.js +6 -20
  368. package/test-env/components/link/link.styles.js +1 -4
  369. package/test-env/components/list_group/list_group.js +6 -1
  370. package/test-env/components/list_group/list_group_item.js +14 -4
  371. package/test-env/components/list_group/list_group_item.styles.js +2 -1
  372. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +12 -2
  373. package/test-env/components/notification/notification_event.a11y.js +1 -2
  374. package/test-env/components/notification/notification_event.js +7 -5
  375. package/test-env/components/popover/popover.js +4 -1
  376. package/test-env/components/resizable_container/resizable_container.a11y.js +4 -8
  377. package/test-env/components/search_bar/search_bar.a11y.js +3 -6
  378. package/test-env/components/selectable/selectable.js +16 -1
  379. package/test-env/components/selectable/selectable_list/selectable_list.js +227 -78
  380. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +16 -1
  381. package/test-env/components/text/text.styles.js +2 -2
  382. package/test-env/components/text_truncate/text_truncate.js +32 -9
@@ -27,14 +27,21 @@ var _data_grid_header_cell_wrapper = require("./data_grid_header_cell_wrapper");
27
27
  var _react2 = require("@emotion/react");
28
28
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
29
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
30
- /*
31
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
32
- * or more contributor license agreements. Licensed under the Elastic License
33
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
34
- * in compliance with, at your election, the Elastic License 2.0 or the Server
35
- * Side Public License, v 1.
36
- */
37
-
30
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /*
31
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
32
+ * or more contributor license agreements. Licensed under the Elastic License
33
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
34
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
35
+ * Side Public License, v 1.
36
+ */
37
+ var _ref2 = process.env.NODE_ENV === "production" ? {
38
+ name: "mc0thx-EuiDataGridHeaderCell",
39
+ styles: "margin-inline-start:auto;label:EuiDataGridHeaderCell;"
40
+ } : {
41
+ name: "mc0thx-EuiDataGridHeaderCell",
42
+ styles: "margin-inline-start:auto;label:EuiDataGridHeaderCell;",
43
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
44
+ };
38
45
  var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
39
46
  var column = _ref.column,
40
47
  index = _ref.index,
@@ -77,6 +84,7 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
77
84
  setFocusedCell: setFocusedCell
78
85
  });
79
86
  var showColumnActions = columnActions && columnActions.length > 0;
87
+ var actionsButtonRef = (0, _react.useRef)(null);
80
88
  var _useSortingUtils = useSortingUtils({
81
89
  sorting: sorting,
82
90
  id: id,
@@ -93,6 +101,10 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
93
101
  prefix: 'euiDataGridCellHeader',
94
102
  suffix: 'actions'
95
103
  });
104
+ var cellContent = (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", {
105
+ title: displayAsText || id,
106
+ className: "euiDataGridHeaderCell__content"
107
+ }, display || displayAsText || id), sortingArrow);
96
108
  return (0, _react2.jsx)(_data_grid_header_cell_wrapper.EuiDataGridHeaderCellWrapper, (0, _extends2.default)({}, displayHeaderCellProps, {
97
109
  className: classes,
98
110
  id: id,
@@ -104,29 +116,36 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
104
116
  columnId: id,
105
117
  columnWidth: width,
106
118
  setColumnWidth: setColumnWidth
107
- }) : null, !showColumnActions ? (0, _react2.jsx)(_react.default.Fragment, null, sortingArrow, (0, _react2.jsx)("div", {
108
- className: "euiDataGridHeaderCell__content",
109
- title: displayAsText || id
110
- }, display || displayAsText || id), sortingScreenReaderText && (0, _react2.jsx)(_accessibility2.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", null, sortingScreenReaderText))) : (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_popover.EuiPopover, (0, _extends2.default)({
111
- className: "eui-fullWidth",
119
+ }) : null, !showColumnActions ? (0, _react2.jsx)(_react.default.Fragment, null, cellContent, sortingScreenReaderText && (0, _react2.jsx)(_accessibility2.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", null, sortingScreenReaderText))) : (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("button", {
120
+ className: "euiDataGridHeaderCell__button",
121
+ onClick: function onClick() {
122
+ setFocusedCell([index, -1]);
123
+ setIsPopoverOpen(function (isPopoverOpen) {
124
+ return !isPopoverOpen;
125
+ });
126
+ },
127
+ "aria-describedby": "".concat(sortingAriaId, " ").concat(actionsAriaId),
128
+ ref: actionsButtonRef
129
+ }, cellContent, (0, _react2.jsx)(_popover.EuiPopover, (0, _extends2.default)({
112
130
  display: "block",
113
131
  panelPaddingSize: "none",
114
132
  offset: 7,
115
- button: (0, _react2.jsx)("button", {
116
- className: "euiDataGridHeaderCell__button",
117
- onClick: function onClick() {
118
- setFocusedCell([index, -1]);
119
- setIsPopoverOpen(function (isPopoverOpen) {
120
- return !isPopoverOpen;
121
- });
122
- },
123
- "aria-describedby": "".concat(sortingAriaId, " ").concat(actionsAriaId)
124
- }, sortingArrow, (0, _react2.jsx)("div", {
125
- className: "euiDataGridHeaderCell__content",
126
- title: displayAsText || id
127
- }, display || displayAsText || id), (0, _react2.jsx)(_icon.EuiIcon, {
128
- className: "euiDataGridHeaderCell__icon",
129
- type: "arrowDown",
133
+ anchorPosition: "downRight",
134
+ css: _ref2 // Align to right
135
+ ,
136
+ focusTrapProps: {
137
+ // We need to override the default EuiPopover `onClickOutside` since the anchor is separate from the actual button
138
+ onClickOutside: function onClickOutside(event) {
139
+ var _actionsButtonRef$cur;
140
+ if (((_actionsButtonRef$cur = actionsButtonRef.current) === null || _actionsButtonRef$cur === void 0 ? void 0 : _actionsButtonRef$cur.contains(event.target)) === false) {
141
+ setIsPopoverOpen(false);
142
+ }
143
+ }
144
+ },
145
+ button: (0, _react2.jsx)("div", {
146
+ className: "euiDataGridHeaderCell__icon"
147
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
148
+ type: "boxesVertical",
130
149
  size: "s",
131
150
  color: "text",
132
151
  "data-test-subj": "dataGridHeaderCellActionButton-".concat(id)
@@ -139,7 +158,7 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
139
158
  listItems: columnActions,
140
159
  gutterSize: "none",
141
160
  "data-test-subj": "dataGridHeaderCellActionGroup-".concat(id)
142
- })), (0, _react2.jsx)("p", {
161
+ }))), (0, _react2.jsx)("p", {
143
162
  id: sortingAriaId,
144
163
  hidden: true
145
164
  }, sortingScreenReaderText), (0, _react2.jsx)("p", {
@@ -155,11 +174,11 @@ var EuiDataGridHeaderCell = function EuiDataGridHeaderCell(_ref) {
155
174
  * Column sorting utility helpers
156
175
  */
157
176
  exports.EuiDataGridHeaderCell = EuiDataGridHeaderCell;
158
- var useSortingUtils = function useSortingUtils(_ref2) {
177
+ var useSortingUtils = function useSortingUtils(_ref3) {
159
178
  var _sorting$columns;
160
- var sorting = _ref2.sorting,
161
- id = _ref2.id,
162
- showColumnActions = _ref2.showColumnActions;
179
+ var sorting = _ref3.sorting,
180
+ id = _ref3.id,
181
+ showColumnActions = _ref3.showColumnActions;
163
182
  var sortedColumn = (0, _react.useMemo)(function () {
164
183
  return sorting === null || sorting === void 0 ? void 0 : sorting.columns.find(function (col) {
165
184
  return col.id === id;
@@ -193,9 +212,9 @@ var useSortingUtils = function useSortingUtils(_ref2) {
193
212
  var _sorting$columns2;
194
213
  if (!isColumnSorted) return null;
195
214
  if (!showColumnActions && hasOnlyOneSort) return null; // in this scenario, the `aria-sort` attribute will be used by screen readers
196
- return (0, _react2.jsx)(_react.default.Fragment, null, sorting === null || sorting === void 0 ? void 0 : (_sorting$columns2 = sorting.columns) === null || _sorting$columns2 === void 0 ? void 0 : _sorting$columns2.map(function (_ref3, index) {
197
- var columnId = _ref3.id,
198
- direction = _ref3.direction;
215
+ return (0, _react2.jsx)(_react.default.Fragment, null, sorting === null || sorting === void 0 ? void 0 : (_sorting$columns2 = sorting.columns) === null || _sorting$columns2 === void 0 ? void 0 : _sorting$columns2.map(function (_ref4, index) {
216
+ var columnId = _ref4.id,
217
+ direction = _ref4.direction;
199
218
  if (hasOnlyOneSort) {
200
219
  if (direction === 'asc') {
201
220
  return (0, _react2.jsx)(_i18n.EuiI18n, {
@@ -20,6 +20,7 @@ var _drag_and_drop = require("../../drag_and_drop");
20
20
  var _icon = require("../../icon");
21
21
  var _services = require("../../../services");
22
22
  var _data_grid_toolbar = require("./data_grid_toolbar");
23
+ var _data_grid_toolbar_control = require("./data_grid_toolbar_control");
23
24
  var _react2 = require("@emotion/react");
24
25
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -73,9 +74,6 @@ var useDataGridColumnSelector = function useDataGridColumnSelector(availableColu
73
74
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
74
75
  columnSearchText = _useState4[0],
75
76
  setColumnSearchText = _useState4[1];
76
- var controlBtnClasses = (0, _classnames.default)('euiDataGrid__controlBtn', {
77
- 'euiDataGrid__controlBtn--active': numberOfHiddenFields > 0
78
- });
79
77
  var filteredColumns = (0, _react.useMemo)(function () {
80
78
  return sortedColumns.filter(function (id) {
81
79
  return (displayValues[id] || id).toLowerCase().indexOf(columnSearchText.toLowerCase()) !== -1;
@@ -87,23 +85,17 @@ var useDataGridColumnSelector = function useDataGridColumnSelector(availableColu
87
85
  token: "euiColumnSelector.button",
88
86
  default: "Columns"
89
87
  });
90
- if (numberOfHiddenFields === 1) {
91
- buttonText = (0, _react2.jsx)(_i18n.EuiI18n, {
92
- token: "euiColumnSelector.buttonActiveSingular",
93
- default: "{numberOfHiddenFields} column hidden",
94
- values: {
95
- numberOfHiddenFields: numberOfHiddenFields
96
- }
97
- });
98
- } else if (numberOfHiddenFields > 1) {
99
- buttonText = (0, _react2.jsx)(_i18n.EuiI18n, {
100
- token: "euiColumnSelector.buttonActivePlural",
101
- default: "{numberOfHiddenFields} columns hidden",
102
- values: {
103
- numberOfHiddenFields: numberOfHiddenFields
104
- }
88
+ var orderedVisibleColumns = (0, _react.useMemo)(function () {
89
+ return visibleColumns.map(function (columnId) {
90
+ return availableColumns.find(function (_ref3) {
91
+ var id = _ref3.id;
92
+ return id === columnId;
93
+ });
94
+ } // cast to avoid `undefined`, it filters those out next
95
+ ).filter(function (column) {
96
+ return column != null;
105
97
  });
106
- }
98
+ }, [availableColumns, visibleColumns]);
107
99
  var columnSelector = allowColumnHiding || allowColumnReorder ? (0, _react2.jsx)(_popover.EuiPopover, {
108
100
  "data-test-subj": "dataGridColumnSelectorPopover",
109
101
  isOpen: isOpen,
@@ -113,11 +105,9 @@ var useDataGridColumnSelector = function useDataGridColumnSelector(availableColu
113
105
  anchorPosition: "downLeft",
114
106
  panelPaddingSize: "s",
115
107
  hasDragDrop: true,
116
- button: (0, _react2.jsx)(_button.EuiButtonEmpty, {
117
- size: "xs",
118
- iconType: allowColumnHiding ? 'listAdd' : 'list',
119
- color: "text",
120
- className: controlBtnClasses,
108
+ button: (0, _react2.jsx)(_data_grid_toolbar_control.EuiDataGridToolbarControl, {
109
+ badgeContent: numberOfHiddenFields > 0 ? "".concat(orderedVisibleColumns.length, "/").concat(availableColumns.length) : availableColumns.length,
110
+ iconType: "tableDensityNormal",
121
111
  "data-test-subj": "dataGridColumnSelectorButton",
122
112
  onClick: function onClick() {
123
113
  return setIsOpen(!isOpen);
@@ -126,10 +116,10 @@ var useDataGridColumnSelector = function useDataGridColumnSelector(availableColu
126
116
  }, allowColumnHiding && (0, _react2.jsx)(_popover.EuiPopoverTitle, null, (0, _react2.jsx)(_i18n.EuiI18n, {
127
117
  tokens: ['euiColumnSelector.search', 'euiColumnSelector.searchcolumns'],
128
118
  defaults: ['Search', 'Search columns']
129
- }, function (_ref3) {
130
- var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
131
- search = _ref4[0],
132
- searchcolumns = _ref4[1];
119
+ }, function (_ref4) {
120
+ var _ref5 = (0, _slicedToArray2.default)(_ref4, 2),
121
+ search = _ref5[0],
122
+ searchcolumns = _ref5[1];
133
123
  return (0, _react2.jsx)(_form.EuiFieldText, {
134
124
  compressed: true,
135
125
  placeholder: search,
@@ -227,17 +217,7 @@ var useDataGridColumnSelector = function useDataGridColumnSelector(availableColu
227
217
  token: "euiColumnSelector.hideAll",
228
218
  default: "Hide all"
229
219
  })))))) : null;
230
- var orderedVisibleColumns = (0, _react.useMemo)(function () {
231
- return visibleColumns.map(function (columnId) {
232
- return availableColumns.find(function (_ref5) {
233
- var id = _ref5.id;
234
- return id === columnId;
235
- });
236
- } // cast to avoid `undefined`, it filters those out next
237
- ).filter(function (column) {
238
- return column != null;
239
- });
240
- }, [availableColumns, visibleColumns]);
220
+
241
221
  /**
242
222
  * Used for moving columns left/right, available in the headers actions menu
243
223
  */
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.useDataGridColumnSorting = void 0;
9
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _classnames = _interopRequireDefault(require("classnames"));
12
11
  var _react = _interopRequireWildcard(require("react"));
13
12
  var _button = require("../../button");
14
13
  var _drag_and_drop = require("../../drag_and_drop");
@@ -17,6 +16,7 @@ var _i18n = require("../../i18n");
17
16
  var _popover = require("../../popover");
18
17
  var _text = require("../../text");
19
18
  var _token = require("../../token");
19
+ var _data_grid_toolbar_control = require("./data_grid_toolbar_control");
20
20
  var _column_sorting_draggable = require("./column_sorting_draggable");
21
21
  var _data_grid_schema = require("../utils/data_grid_schema");
22
22
  var _react2 = require("@emotion/react");
@@ -61,15 +61,9 @@ var useDataGridColumnSorting = function useDataGridColumnSorting(columns, sortin
61
61
  }
62
62
  }, [columns, sorting]);
63
63
  var sortingButtonText = (0, _i18n.useEuiI18n)('euiColumnSorting.button', 'Sort fields');
64
- var sortingButtonTextActive = (0, _i18n.useEuiI18n)('euiColumnSorting.buttonActive', function (_ref2) {
65
- var numberOfSortedFields = _ref2.numberOfSortedFields;
66
- return "".concat(numberOfSortedFields, " field").concat(numberOfSortedFields === 1 ? '' : 's', " sorted");
67
- }, {
68
- numberOfSortedFields: sorting != null ? sorting.columns.length : 0
69
- });
70
64
  if (sorting == null) return null;
71
- var activeColumnIds = new Set(sorting.columns.map(function (_ref3) {
72
- var id = _ref3.id;
65
+ var activeColumnIds = new Set(sorting.columns.map(function (_ref2) {
66
+ var id = _ref2.id;
73
67
  return id;
74
68
  }));
75
69
  var _columns$reduce = columns.reduce(function (acc, column) {
@@ -84,24 +78,21 @@ var useDataGridColumnSorting = function useDataGridColumnSorting(columns, sortin
84
78
  inactiveColumns: []
85
79
  }),
86
80
  inactiveColumns = _columns$reduce.inactiveColumns;
87
- var onDragEnd = function onDragEnd(_ref4) {
88
- var sourceIndex = _ref4.source.index,
89
- destination = _ref4.destination;
81
+ var onDragEnd = function onDragEnd(_ref3) {
82
+ var sourceIndex = _ref3.source.index,
83
+ destination = _ref3.destination;
90
84
  if (destination) {
91
85
  var destinationIndex = destination.index;
92
86
  var nextColumns = (0, _drag_and_drop.euiDragDropReorder)(sorting.columns, sourceIndex, destinationIndex);
93
87
  sorting.onSort(nextColumns);
94
88
  }
95
89
  };
96
- var controlBtnClasses = (0, _classnames.default)('euiDataGrid__controlBtn', {
97
- 'euiDataGrid__controlBtn--active': sorting.columns.length > 0
98
- });
99
90
  var schemaDetails = function schemaDetails(id) {
100
91
  return schema.hasOwnProperty(id) && schema[id].columnType != null ? (0, _data_grid_schema.getDetailsForSchema)(schemaDetectors, schema[id].columnType) : null;
101
92
  };
102
- var inactiveSortableColumns = inactiveColumns.filter(function (_ref5) {
103
- var id = _ref5.id,
104
- isSortable = _ref5.isSortable;
93
+ var inactiveSortableColumns = inactiveColumns.filter(function (_ref4) {
94
+ var id = _ref4.id,
95
+ isSortable = _ref4.isSortable;
105
96
  var schemaDetail = schemaDetails(id);
106
97
  var sortable = true;
107
98
  if (isSortable != null) {
@@ -120,24 +111,22 @@ var useDataGridColumnSorting = function useDataGridColumnSorting(columns, sortin
120
111
  anchorPosition: "downLeft",
121
112
  panelPaddingSize: "s",
122
113
  hasDragDrop: true,
123
- button: (0, _react2.jsx)(_button.EuiButtonEmpty, {
124
- size: "xs",
114
+ button: (0, _react2.jsx)(_data_grid_toolbar_control.EuiDataGridToolbarControl, {
115
+ badgeContent: sorting.columns.length,
125
116
  iconType: "sortable",
126
- color: "text",
127
- className: controlBtnClasses,
128
117
  "data-test-subj": "dataGridColumnSortingButton",
129
118
  onClick: function onClick() {
130
119
  return setIsOpen(!isOpen);
131
120
  }
132
- }, sorting.columns.length > 0 ? sortingButtonTextActive : sortingButtonText)
121
+ }, sortingButtonText)
133
122
  }, sorting.columns.length > 0 ? (0, _react2.jsx)(_drag_and_drop.EuiDragDropContext, {
134
123
  onDragEnd: onDragEnd
135
124
  }, (0, _react2.jsx)(_drag_and_drop.EuiDroppable, {
136
125
  droppableId: "columnSorting",
137
126
  className: "euiDataGrid__controlScroll"
138
- }, (0, _react2.jsx)(_react.default.Fragment, null, sorting.columns.map(function (_ref6, index) {
139
- var id = _ref6.id,
140
- direction = _ref6.direction;
127
+ }, (0, _react2.jsx)(_react.default.Fragment, null, sorting.columns.map(function (_ref5, index) {
128
+ var id = _ref5.id,
129
+ direction = _ref5.direction;
141
130
  return (0, _react2.jsx)(_column_sorting_draggable.EuiDataGridColumnSortingDraggable, {
142
131
  key: id,
143
132
  id: id,
@@ -190,9 +179,9 @@ var useDataGridColumnSorting = function useDataGridColumnSorting(columns, sortin
190
179
  return (0, _react2.jsx)("div", {
191
180
  className: "euiDataGridColumnSorting__fieldList",
192
181
  role: "listbox"
193
- }, inactiveSortableColumns.map(function (_ref7) {
194
- var id = _ref7.id,
195
- defaultSortDirection = _ref7.defaultSortDirection;
182
+ }, inactiveSortableColumns.map(function (_ref6) {
183
+ var id = _ref6.id,
184
+ defaultSortDirection = _ref6.defaultSortDirection;
196
185
  return (0, _react2.jsx)("button", {
197
186
  key: id,
198
187
  className: "euiDataGridColumnSorting__field",
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.EuiDataGridToolbarControl = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _classnames = _interopRequireDefault(require("classnames"));
12
+ var _react2 = require("@emotion/react");
13
+ var _button = require("../../button");
14
+ var _badge = require("../../badge");
15
+ var _i18n = require("../../i18n");
16
+ var _excluded = ["children", "className", "badgeContent", "textProps"];
17
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /*
18
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
19
+ * or more contributor license agreements. Licensed under the Elastic License
20
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
21
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
22
+ * Side Public License, v 1.
23
+ */
24
+ var _ref = process.env.NODE_ENV === "production" ? {
25
+ name: "1vci2nd-EuiDataGridToolbarControl",
26
+ styles: "cursor:inherit;label:EuiDataGridToolbarControl;"
27
+ } : {
28
+ name: "1vci2nd-EuiDataGridToolbarControl",
29
+ styles: "cursor:inherit;label:EuiDataGridToolbarControl;",
30
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
31
+ };
32
+ var _ref2 = process.env.NODE_ENV === "production" ? {
33
+ name: "8fsqop-EuiDataGridToolbarControl",
34
+ styles: "&:focus,&:hover:not(:disabled){text-decoration:none;.euiDataGridToolbarControl__text{text-decoration:underline;}};label:EuiDataGridToolbarControl;"
35
+ } : {
36
+ name: "8fsqop-EuiDataGridToolbarControl",
37
+ styles: "&:focus,&:hover:not(:disabled){text-decoration:none;.euiDataGridToolbarControl__text{text-decoration:underline;}};label:EuiDataGridToolbarControl;",
38
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
39
+ };
40
+ var EuiDataGridToolbarControl = function EuiDataGridToolbarControl(_ref3) {
41
+ var children = _ref3.children,
42
+ className = _ref3.className,
43
+ badgeContent = _ref3.badgeContent,
44
+ textProps = _ref3.textProps,
45
+ rest = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
46
+ var classes = (0, _classnames.default)('euiDataGridToolbarControl', className);
47
+ var badgeAriaLabel = (0, _i18n.useEuiI18n)('euiDataGridToolbarControl.badgeAriaLabel', 'Active: {count}', {
48
+ count: typeof badgeContent === 'string' ? betterScreenReaderSlashes(badgeContent) : badgeContent
49
+ });
50
+ return (0, _react2.jsx)(_button.EuiButtonEmpty, (0, _extends2.default)({
51
+ className: classes,
52
+ size: "xs",
53
+ color: "text",
54
+ textProps: false
55
+ // Underline actual text, but not the badge
56
+ ,
57
+ css: _ref2
58
+ }, rest), (0, _react2.jsx)("span", (0, _extends2.default)({}, textProps, {
59
+ className: (0, _classnames.default)('euiDataGridToolbarControl__text', 'eui-textTruncate', textProps && textProps.className)
60
+ }), children), Boolean(badgeContent) && (0, _react2.jsx)(_badge.EuiNotificationBadge, {
61
+ className: "euiDataGridToolbarControl__badge",
62
+ css: _ref,
63
+ color: "subdued",
64
+ "aria-label": "- ".concat(badgeAriaLabel) // Punctuation helps add pauses for screen readers
65
+ ,
66
+ role: "marquee" // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/marquee_role
67
+ }, badgeContent));
68
+ };
69
+
70
+ // The columns control specifically passes (e.g.) `5/10` when some columns
71
+ // are being hidden. We can make this a bit more legible to SRs with this quick util
72
+ exports.EuiDataGridToolbarControl = EuiDataGridToolbarControl;
73
+ var betterScreenReaderSlashes = function betterScreenReaderSlashes(badgeContent) {
74
+ return badgeContent.replaceAll('/', ' out of ');
75
+ };
@@ -219,7 +219,6 @@ var useDataGridDisplaySelector = function useDataGridDisplaySelector(showDisplay
219
219
  }, (0, _react2.jsx)(_button.EuiButtonIcon, {
220
220
  size: "xs",
221
221
  iconType: "controlsHorizontal",
222
- className: "euiDataGrid__controlBtn",
223
222
  color: "text",
224
223
  "data-test-subj": "dataGridDisplaySelectorButton",
225
224
  onClick: function onClick() {
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.useDataGridFullScreenSelector = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
- var _classnames = _interopRequireDefault(require("classnames"));
12
11
  var _services = require("../../../services");
13
12
  var _tool_tip = require("../../tool_tip");
14
13
  var _button = require("../../button");
@@ -34,9 +33,6 @@ var useDataGridFullScreenSelector = function useDataGridFullScreenSelector() {
34
33
  _useEuiI18n2 = (0, _slicedToArray2.default)(_useEuiI18n, 2),
35
34
  fullScreenButton = _useEuiI18n2[0],
36
35
  fullScreenButtonActive = _useEuiI18n2[1];
37
- var controlBtnClasses = (0, _classnames.default)('euiDataGrid__controlBtn', {
38
- 'euiDataGrid__controlBtn--active': isFullScreen
39
- });
40
36
  var fullScreenSelector = (0, _react.useMemo)(function () {
41
37
  return (0, _react2.jsx)(_tool_tip.EuiToolTip, {
42
38
  content: isFullScreen ? (0, _react2.jsx)(_react.default.Fragment, null, fullScreenButtonActive, " (", (0, _react2.jsx)("kbd", null, "esc"), ")") : fullScreenButton,
@@ -45,14 +41,14 @@ var useDataGridFullScreenSelector = function useDataGridFullScreenSelector() {
45
41
  size: "xs",
46
42
  iconType: isFullScreen ? 'fullScreenExit' : 'fullScreen',
47
43
  color: "text",
48
- className: controlBtnClasses,
44
+ "aria-pressed": isFullScreen,
49
45
  "data-test-subj": "dataGridFullScreenButton",
50
46
  onClick: function onClick() {
51
47
  return setIsFullScreen(!isFullScreen);
52
48
  },
53
49
  "aria-label": isFullScreen ? fullScreenButtonActive : fullScreenButton
54
50
  }));
55
- }, [isFullScreen, controlBtnClasses, fullScreenButton, fullScreenButtonActive]);
51
+ }, [isFullScreen, fullScreenButton, fullScreenButtonActive]);
56
52
  var handleGridKeyDown = (0, _react.useCallback)(function (event) {
57
53
  switch (event.key) {
58
54
  case _services.keys.ESCAPE:
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "EuiDataGridToolbar", {
9
9
  return _data_grid_toolbar.EuiDataGridToolbar;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "EuiDataGridToolbarControl", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _data_grid_toolbar_control.EuiDataGridToolbarControl;
16
+ }
17
+ });
12
18
  Object.defineProperty(exports, "checkOrDefaultToolBarDisplayOptions", {
13
19
  enumerable: true,
14
20
  get: function get() {
@@ -56,4 +62,5 @@ var _column_sorting = require("./column_sorting");
56
62
  var _display_selector = require("./display_selector");
57
63
  var _keyboard_shortcuts = require("./keyboard_shortcuts");
58
64
  var _fullscreen_selector = require("./fullscreen_selector");
59
- var _data_grid_toolbar = require("./data_grid_toolbar");
65
+ var _data_grid_toolbar = require("./data_grid_toolbar");
66
+ var _data_grid_toolbar_control = require("./data_grid_toolbar_control");
@@ -7,7 +7,8 @@ var _exportNames = {
7
7
  EuiDataGrid: true,
8
8
  useDataGridColumnSelector: true,
9
9
  useDataGridColumnSorting: true,
10
- useDataGridDisplaySelector: true
10
+ useDataGridDisplaySelector: true,
11
+ EuiDataGridToolbarControl: true
11
12
  };
12
13
  Object.defineProperty(exports, "EuiDataGrid", {
13
14
  enumerable: true,
@@ -15,6 +16,12 @@ Object.defineProperty(exports, "EuiDataGrid", {
15
16
  return _data_grid.EuiDataGrid;
16
17
  }
17
18
  });
19
+ Object.defineProperty(exports, "EuiDataGridToolbarControl", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return _controls.EuiDataGridToolbarControl;
23
+ }
24
+ });
18
25
  Object.defineProperty(exports, "useDataGridColumnSelector", {
19
26
  enumerable: true,
20
27
  get: function get() {
@@ -157,7 +157,7 @@ var RowHeightUtils = /*#__PURE__*/function () {
157
157
  var height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_ROW_HEIGHT;
158
158
  var _visibleRowIndex = arguments.length > 3 ? arguments[3] : undefined;
159
159
  var rowHeights = this.heightsCache.get(rowIndex) || new Map();
160
- var adaptedHeight = Math.ceil(height + this.styles.paddingTop + this.styles.paddingBottom);
160
+ var adaptedHeight = Math.ceil(height);
161
161
  if (rowHeights.get(colId) === adaptedHeight) {
162
162
  return false;
163
163
  } else {
@@ -149,7 +149,7 @@ var EuiSuperUpdateButton = /*#__PURE__*/function (_Component) {
149
149
  }, sharedButtonProps, {
150
150
  fill: fill,
151
151
  textProps: _objectSpread(_objectSpread({}, restTextProps), {}, {
152
- className: (0, _classnames.default)('euiScreenReaderOnly', restTextProps === null || restTextProps === void 0 ? void 0 : restTextProps.className)
152
+ className: (0, _classnames.default)('euiScreenReaderOnly', restTextProps && restTextProps.className)
153
153
  })
154
154
  }, rest), buttonText)), (0, _react2.jsx)(_responsive2.EuiHideFor, {
155
155
  sizes: responsive || 'none'
@@ -44,7 +44,7 @@ describe('EuiErrorBoundary', function () {
44
44
  cy.checkAxe();
45
45
  });
46
46
  it('has zero violations and accepts focus when the button is pressed', function () {
47
- cy.realPress('Tab');
47
+ cy.get('button').first().focus();
48
48
  cy.realPress('Enter');
49
49
  cy.get('pre.euiCodeBlock__pre').should('have.focus');
50
50
  cy.checkAxe();
@@ -204,8 +204,7 @@ describe('EuiExpression', function () {
204
204
  cy.checkAxe();
205
205
  });
206
206
  it('has zero violations when first popover is interacted with by keyboard', function () {
207
- cy.realPress('Tab');
208
- cy.get('button').contains(/When count\(\)/i).should('have.focus');
207
+ cy.get('button').contains(/When count\(\)/i).focus();
209
208
  cy.realPress('Enter');
210
209
  cy.get('div[data-test-subj="cy-expression-popover-1"]').should('exist');
211
210
  cy.realPress('Tab');
@@ -215,8 +214,7 @@ describe('EuiExpression', function () {
215
214
  cy.checkAxe();
216
215
  });
217
216
  it('has zero violations when second popover is interacted with by keyboard', function () {
218
- cy.repeatRealPress('Tab');
219
- cy.get('button').contains(/Is above 100/i).should('have.focus');
217
+ cy.get('button').contains(/Is above 100/i).focus();
220
218
  cy.realPress('Enter');
221
219
  cy.get('div[data-test-subj="cy-expression-popover-2"]').should('exist');
222
220
  cy.realPress('Tab');
@@ -75,7 +75,7 @@ var EuiFilterButton = function EuiFilterButton(_ref) {
75
75
  });
76
76
  var buttonTextClassNames = (0, _classnames.default)('euiFilterButton__text', {
77
77
  'euiFilterButton__text-hasNotification': showBadge
78
- }, textProps === null || textProps === void 0 ? void 0 : textProps.className);
78
+ }, textProps && textProps.className);
79
79
  var badgeContent = showBadge && (0, _react2.jsx)(_badge.EuiNotificationBadge, {
80
80
  className: "euiFilterButton__notification",
81
81
  css: [notificationStyles.euiFilterButton__notification, isDisabled && notificationStyles.disabled, ";label:badgeContent;"],
@@ -105,7 +105,7 @@ var EuiFilterButton = function EuiFilterButton(_ref) {
105
105
  type: type,
106
106
  textProps: _objectSpread(_objectSpread({}, textProps), {}, {
107
107
  className: buttonTextClassNames,
108
- css: [textStyles.euiFilterButton__text, showBadge && textStyles.hasNotification, textProps === null || textProps === void 0 ? void 0 : textProps.css]
108
+ css: [textStyles.euiFilterButton__text, showBadge && textStyles.hasNotification, textProps && textProps.css]
109
109
  }),
110
110
  contentProps: _objectSpread(_objectSpread({}, contentProps), {}, {
111
111
  css: [contentStyles.euiFilterButton__content, iconType && contentStyles.hasIcon, contentProps === null || contentProps === void 0 ? void 0 : contentProps.css]
@@ -106,12 +106,12 @@ describe('EuiFocusTrap', function () {
106
106
  });
107
107
  describe('Accessibility checks for keyboard navigation', function () {
108
108
  it('allows the button outside the FocusTrap to receive focus', function () {
109
- cy.repeatRealPress('Tab', 5);
110
- cy.get('button[data-test-subj="cy-external-button"]').should('have.focus');
109
+ cy.get('button[data-test-subj="cy-external-button"]').focus();
111
110
  cy.checkAxe();
112
111
  });
113
112
  it('prevents the button outside the FocusTrap from receiving focus', function () {
114
- cy.repeatRealPress('Tab', 4);
113
+ cy.get('input[data-test-subj="cy-input-one"]').focus();
114
+ cy.repeatRealPress('Tab', 3);
115
115
  cy.realPress('Enter');
116
116
  cy.realPress('Tab');
117
117
  cy.get('input[data-test-subj="cy-input-one"]').should('have.focus');