@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
@@ -21,12 +21,12 @@ var euiCollapsibleNavAccordionStyles = function euiCollapsibleNavAccordionStyles
21
21
  return {
22
22
  // NOTE: Specific usage of `>`s selectors are important here, because accordions can be nested
23
23
  // - just because a parent accordion is open or selected does not mean its child accordion is the same
24
- euiCollapsibleNavAccordion: /*#__PURE__*/(0, _react.css)(".euiAccordion__button{overflow:hidden;&:hover,&:focus{cursor:default;text-decoration:none;}}.euiAccordion__triggerWrapper{border-radius:", sharedStyles.borderRadius, ";", _global_styling.euiCanAnimate, "{transition:background-color ", sharedStyles.animation, ";}}.euiAccordion__buttonContent{", (0, _global_styling.logicalCSS)('max-width', '100%'), " flex-basis:100%;display:flex;align-items:center;}.euiCollapsibleNavLink{", (0, _global_styling.logicalCSS)('width', '100%'), ";};label:euiCollapsibleNavAccordion;"),
25
- isTopItem: /*#__PURE__*/(0, _react.css)("margin:", sharedStyles.padding, ";&>.euiAccordion__triggerWrapper{&:hover{background-color:", sharedStyles.backgroundHoverColor, ";}};label:isTopItem;"),
26
- isSelected: /*#__PURE__*/(0, _react.css)("&>.euiAccordion__triggerWrapper{background-color:", sharedStyles.backgroundSelectedColor, ";&:hover{background-color:", sharedStyles.backgroundSelectedColor, ";}};label:isSelected;"),
24
+ euiCollapsibleNavAccordion: /*#__PURE__*/(0, _react.css)(".euiAccordion__button{overflow:hidden;}&>.euiAccordion__triggerWrapper{border-radius:", sharedStyles.borderRadius, ";overflow:hidden;", _global_styling.euiCanAnimate, "{transition:background-color ", sharedStyles.animation, ";}&:hover,&:focus-within{background-color:", sharedStyles.backgroundHoverColor, ";.euiAccordion__arrow .euiIcon{color:", sharedStyles.color, ";}}&:has(:focus-visible){outline-style:auto;outline-offset:-", euiTheme.focus.width, ";*:focus{outline:none;}}}.euiAccordion__buttonContent{", (0, _global_styling.logicalCSS)('max-width', '100%'), " flex-basis:100%;display:flex;align-items:center;}.euiCollapsibleNavLink{", (0, _global_styling.logicalCSS)('width', '100%'), ";};label:euiCollapsibleNavAccordion;"),
25
+ isSelected: /*#__PURE__*/(0, _react.css)("&>.euiAccordion__triggerWrapper{background-color:", sharedStyles.backgroundSelectedColor, ";&:hover,&:focus-within{background-color:", sharedStyles.backgroundSelectedColor, ";}};label:isSelected;"),
26
+ isTopItem: /*#__PURE__*/(0, _react.css)("margin:", sharedStyles.padding, ";;label:isTopItem;"),
27
27
  isSubItem: /*#__PURE__*/(0, _react.css)("&.euiAccordion-isOpen .euiAccordion__children::after{content:'';display:block;", (0, _global_styling.logicalCSS)('height', euiTheme.size.m), ";};label:isSubItem;"),
28
28
  // Arrow element
29
- euiCollapsibleNavAccordion__arrow: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-right', euiTheme.size.xs), _global_styling.euiCanAnimate, "{transition:background-color ", sharedStyles.animation, ";}&:hover,&:focus-visible{background-color:", euiTheme.colors.lightShade, ";&>.euiIcon{color:", sharedStyles.color, ";}}transform:none!important;&>.euiIcon{color:", sharedStyles.rightIconColor, ";transform:rotate(90deg);", _global_styling.euiCanAnimate, "{transition:transform ", sharedStyles.animation, ",color ", sharedStyles.animation, ";}}&.euiAccordion__arrow[aria-expanded='true']>.euiIcon{color:", sharedStyles.color, ";transform:rotate(-90deg);};label:euiCollapsibleNavAccordion__arrow;")
29
+ euiCollapsibleNavAccordion__arrow: /*#__PURE__*/(0, _react.css)("margin:0;", (0, _global_styling.logicalCSS)('height', sharedStyles.height), (0, _global_styling.logicalCSS)('width', euiTheme.size.xl), "transform:none!important;&>.euiIcon{color:", sharedStyles.rightIconColor, ";transform:rotate(90deg);", _global_styling.euiCanAnimate, "{transition:transform ", sharedStyles.animation, ",color ", sharedStyles.animation, ";}}&.euiAccordion__arrow[aria-expanded='true']>.euiIcon{color:", sharedStyles.color, ";transform:rotate(-90deg);}&:hover,&:focus{background-color:transparent;};label:euiCollapsibleNavAccordion__arrow;")
30
30
  };
31
31
  };
32
32
  exports.euiCollapsibleNavAccordionStyles = euiCollapsibleNavAccordionStyles;
@@ -14,7 +14,7 @@ var _collapsible_nav_item = require("./collapsible_nav_item");
14
14
  var _collapsible_nav_item2 = require("./collapsible_nav_item.styles");
15
15
  var _collapsible_nav_link = require("./collapsible_nav_link");
16
16
  var _react2 = require("@emotion/react");
17
- var _excluded = ["className", "header", "href", "items", "isSubItem", "isSelected", "linkProps", "children"];
17
+ var _excluded = ["className", "header", "items", "isSubItem", "isSelected", "children"];
18
18
  /*
19
19
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
20
20
  * or more contributor license agreements. Licensed under the Elastic License
@@ -33,11 +33,9 @@ var _excluded = ["className", "header", "href", "items", "isSubItem", "isSelecte
33
33
  var EuiCollapsibleNavGroup = function EuiCollapsibleNavGroup(_ref) {
34
34
  var className = _ref.className,
35
35
  header = _ref.header,
36
- href = _ref.href,
37
36
  items = _ref.items,
38
37
  isSubItem = _ref.isSubItem,
39
38
  isSelected = _ref.isSelected,
40
- linkProps = _ref.linkProps,
41
39
  _children = _ref.children,
42
40
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
43
41
  var classes = (0, _classnames.default)('euiCollapsibleNavGroup', className);
@@ -53,19 +51,17 @@ var EuiCollapsibleNavGroup = function EuiCollapsibleNavGroup(_ref) {
53
51
  var labelledById = (0, _services.useGeneratedHtmlId)();
54
52
  return (0, _react2.jsx)("div", (0, _extends2.default)({
55
53
  className: classes
56
- }, cssStyles, rest), (0, _react2.jsx)(_collapsible_nav_link.EuiCollapsibleNavLink, (0, _extends2.default)({
57
- href: href,
58
- id: labelledById
59
- }, linkProps, {
54
+ }, cssStyles, rest), (0, _react2.jsx)(_collapsible_nav_link.EuiCollapsibleNavLink, {
55
+ id: labelledById,
60
56
  isSelected: isSelected,
61
57
  isSubItem: isSubItem,
62
- isInteractive: !!(href || rest.onClick || linkProps !== null && linkProps !== void 0 && linkProps.onClick)
63
- }), header), (0, _react2.jsx)(_collapsible_nav_item.EuiCollapsibleNavSubItems, {
58
+ isInteractive: false
59
+ }, header), (0, _react2.jsx)(_collapsible_nav_item.EuiCollapsibleNavSubItems, {
64
60
  items: items,
65
61
  isSubItem: isSubItem,
66
62
  className: "euiCollapsibleNavGroup__children",
67
63
  role: "group",
68
- "aria-labelledby": (linkProps === null || linkProps === void 0 ? void 0 : linkProps.id) || labelledById
64
+ "aria-labelledby": labelledById
69
65
  }));
70
66
  };
71
67
  exports.EuiCollapsibleNavGroup = EuiCollapsibleNavGroup;
@@ -19,7 +19,7 @@ var _collapsible_nav_group = require("./collapsible_nav_group");
19
19
  var _collapsible_nav_link = require("./collapsible_nav_link");
20
20
  var _collapsible_nav_item = require("./collapsible_nav_item.styles");
21
21
  var _react2 = require("@emotion/react");
22
- var _excluded = ["isSubItem", "title", "titleElement", "icon", "iconProps", "items", "isCollapsible", "accordionProps", "children"],
22
+ var _excluded = ["isSubItem", "title", "titleElement", "icon", "iconProps", "href", "linkProps", "items", "isCollapsible", "accordionProps", "children"],
23
23
  _excluded2 = ["renderItem", "className"],
24
24
  _excluded3 = ["items", "isSubItem", "isGroup", "className"],
25
25
  _excluded4 = ["className"];
@@ -38,12 +38,13 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
38
38
  * determine whether to render an accordion or a link
39
39
  */
40
40
  var EuiCollapsibleNavItemDisplay = function EuiCollapsibleNavItemDisplay(_ref) {
41
- var _props$linkProps;
42
41
  var isSubItem = _ref.isSubItem,
43
42
  title = _ref.title,
44
43
  titleElement = _ref.titleElement,
45
44
  icon = _ref.icon,
46
45
  iconProps = _ref.iconProps,
46
+ href = _ref.href,
47
+ linkProps = _ref.linkProps,
47
48
  items = _ref.items,
48
49
  _ref$isCollapsible = _ref.isCollapsible,
49
50
  isCollapsible = _ref$isCollapsible === void 0 ? true : _ref$isCollapsible,
@@ -56,7 +57,7 @@ var EuiCollapsibleNavItemDisplay = function EuiCollapsibleNavItemDisplay(_ref) {
56
57
  icon: icon,
57
58
  iconProps: iconProps
58
59
  });
59
- if (items && items.length > 0) {
60
+ if (items) {
60
61
  if (isCollapsible) {
61
62
  return (0, _react2.jsx)(_collapsible_nav_accordion.EuiCollapsibleNavAccordion, (0, _extends2.default)({
62
63
  buttonContent: headerContent,
@@ -74,11 +75,14 @@ var EuiCollapsibleNavItemDisplay = function EuiCollapsibleNavItemDisplay(_ref) {
74
75
  }));
75
76
  }
76
77
  }
77
- return (0, _react2.jsx)(_collapsible_nav_link.EuiCollapsibleNavLink, (0, _extends2.default)({}, props, {
78
+ return (0, _react2.jsx)(_collapsible_nav_link.EuiCollapsibleNavLink, (0, _extends2.default)({
79
+ href: href,
80
+ linkProps: linkProps
81
+ }, props, {
78
82
  // EuiLink ExclusiveUnion type shenanigans
79
83
  isSubItem: isSubItem,
80
84
  isNotAccordion: true,
81
- isInteractive: !!(props.href || props.onClick || (_props$linkProps = props.linkProps) !== null && _props$linkProps !== void 0 && _props$linkProps.onClick)
85
+ isInteractive: !!(href || props.onClick || linkProps !== null && linkProps !== void 0 && linkProps.onClick)
82
86
  }), headerContent);
83
87
  };
84
88
 
@@ -16,7 +16,7 @@ var _icon = require("../icon");
16
16
  var _tool_tip = require("../tool_tip");
17
17
  var _context_menu_item = require("./context_menu_item.styles");
18
18
  var _react2 = require("@emotion/react");
19
- var _excluded = ["children", "className", "hasPanel", "icon", "buttonRef", "disabled", "layoutAlign", "toolTipTitle", "toolTipContent", "toolTipPosition", "href", "target", "rel", "size"];
19
+ var _excluded = ["children", "className", "hasPanel", "icon", "buttonRef", "disabled", "layoutAlign", "toolTipTitle", "toolTipContent", "toolTipPosition", "toolTipProps", "href", "target", "rel", "size"];
20
20
  /*
21
21
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
22
22
  * or more contributor license agreements. Licensed under the Elastic License
@@ -46,6 +46,7 @@ var EuiContextMenuItem = function EuiContextMenuItem(_ref) {
46
46
  toolTipContent = _ref.toolTipContent,
47
47
  _ref$toolTipPosition = _ref.toolTipPosition,
48
48
  toolTipPosition = _ref$toolTipPosition === void 0 ? 'right' : _ref$toolTipPosition,
49
+ toolTipProps = _ref.toolTipProps,
49
50
  href = _ref.href,
50
51
  target = _ref.target,
51
52
  rel = _ref.rel,
@@ -97,7 +98,7 @@ var EuiContextMenuItem = function EuiContextMenuItem(_ref) {
97
98
  rel: secureRel,
98
99
  ref: buttonRef
99
100
  }, rest), buttonContent);
100
- } else if (href || rest.onClick) {
101
+ } else if (href || rest.onClick || toolTipContent) {
101
102
  button = (0, _react2.jsx)("button", (0, _extends2.default)({
102
103
  disabled: disabled,
103
104
  css: cssStyles,
@@ -113,12 +114,14 @@ var EuiContextMenuItem = function EuiContextMenuItem(_ref) {
113
114
  }, rest), buttonContent);
114
115
  }
115
116
  if (toolTipContent) {
116
- return (0, _react2.jsx)(_tool_tip.EuiToolTip, {
117
+ var anchorClasses = (0, _classnames.default)('eui-displayBlock', toolTipProps === null || toolTipProps === void 0 ? void 0 : toolTipProps.anchorClassName);
118
+ return (0, _react2.jsx)(_tool_tip.EuiToolTip, (0, _extends2.default)({
117
119
  title: toolTipTitle ? toolTipTitle : null,
118
- content: toolTipContent,
119
- anchorClassName: "eui-displayBlock",
120
120
  position: toolTipPosition
121
- }, button);
121
+ }, toolTipProps, {
122
+ anchorClassName: anchorClasses,
123
+ content: toolTipContent
124
+ }), button);
122
125
  } else {
123
126
  return button;
124
127
  }
@@ -64,7 +64,7 @@ var _ref6 = process.env.NODE_ENV === "production" ? {
64
64
  var euiContextMenuItemStyles = function euiContextMenuItemStyles(euiThemeContext) {
65
65
  var euiTheme = euiThemeContext.euiTheme;
66
66
  return {
67
- euiContextMenuItem: /*#__PURE__*/(0, _react.css)("display:flex;gap:", euiTheme.size.s, ";", (0, _global_styling.logicalCSS)('width', '100%'), " ", (0, _global_styling.logicalTextAlignCSS)('left'), " color:", euiTheme.colors.text, ";outline-offset:-", euiTheme.focus.width, ";&:enabled:hover,&:enabled:focus{text-decoration:underline;}&:enabled:focus{background-color:", euiTheme.focus.backgroundColor, ";};label:euiContextMenuItem;"),
67
+ euiContextMenuItem: /*#__PURE__*/(0, _react.css)("display:flex;gap:", euiTheme.size.s, ";", (0, _global_styling.logicalCSS)('width', '100%'), " ", (0, _global_styling.logicalTextAlignCSS)('left'), " color:", euiTheme.colors.text, ";outline-offset:-", euiTheme.focus.width, ";&:not(:disabled){&:hover,&:focus{text-decoration:underline;}&:focus{background-color:", euiTheme.focus.backgroundColor, ";}};label:euiContextMenuItem;"),
68
68
  disabled: /*#__PURE__*/(0, _react.css)("color:", euiTheme.colors.disabledText, ";cursor:default;;label:disabled;"),
69
69
  layoutAlign: {
70
70
  center: _ref6,
@@ -30,7 +30,7 @@ var _data_grid_cell_actions = require("./data_grid_cell_actions");
30
30
  var _data_grid_cell_popover = require("./data_grid_cell_popover");
31
31
  var _utils = require("../../../utils");
32
32
  var _react2 = require("@emotion/react");
33
- var _excluded = ["renderCellValue", "column", "setCellContentsRef", "setPopoverAnchorRef", "rowIndex", "colIndex", "ariaRowIndex", "rowHeight", "rowHeightUtils", "isControlColumn", "isFocused", "cellHeightType", "cellActions"],
33
+ var _excluded = ["renderCellValue", "column", "setCellContentsRef", "rowIndex", "colIndex", "ariaRowIndex", "rowHeight", "rowHeightUtils", "isControlColumn", "isFocused", "cellActions"],
34
34
  _excluded2 = ["width", "popoverContext", "interactiveCellId", "columnType", "className", "column", "style", "rowHeightUtils", "rowHeightsOptions", "rowManager", "pagination"],
35
35
  _excluded3 = ["isExpandable", "style", "className", "data-test-subj"];
36
36
  /*
@@ -50,7 +50,6 @@ var EuiDataGridCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref) {
50
50
  var renderCellValue = _ref.renderCellValue,
51
51
  column = _ref.column,
52
52
  setCellContentsRef = _ref.setCellContentsRef,
53
- setPopoverAnchorRef = _ref.setPopoverAnchorRef,
54
53
  rowIndex = _ref.rowIndex,
55
54
  colIndex = _ref.colIndex,
56
55
  ariaRowIndex = _ref.ariaRowIndex,
@@ -58,27 +57,17 @@ var EuiDataGridCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref) {
58
57
  rowHeightUtils = _ref.rowHeightUtils,
59
58
  isControlColumn = _ref.isControlColumn,
60
59
  isFocused = _ref.isFocused,
61
- cellHeightType = _ref.cellHeightType,
62
60
  cellActions = _ref.cellActions,
63
61
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
64
62
  // React is more permissible than the TS types indicate
65
63
  var CellElement = renderCellValue;
66
- var wrapperClasses = (0, _classnames.default)('euiDataGridRowCell__contentWrapper', "euiDataGridRowCell__".concat(cellHeightType, "Height"));
67
- var classes = (0, _classnames.default)('euiDataGridRowCell__content', !isControlColumn && {
64
+ var cellHeightType = (rowHeightUtils === null || rowHeightUtils === void 0 ? void 0 : rowHeightUtils.getHeightType(rowHeight)) || 'default';
65
+ var classes = (0, _classnames.default)('euiDataGridRowCell__content', "euiDataGridRowCell__content--".concat(cellHeightType, "Height"), !isControlColumn && {
68
66
  'eui-textBreakWord': cellHeightType !== 'default',
69
67
  'eui-textTruncate': cellHeightType === 'default'
70
68
  });
71
69
  var cellContent = (0, _react2.jsx)("div", {
72
- ref: function ref(el) {
73
- setCellContentsRef(el);
74
- setPopoverAnchorRef.current = cellHeightType === 'default' ? // Default height cells need the popover to be anchored on the wrapper,
75
- // in order for the popover to centered on the full cell width (as content
76
- // width is affected by the width of cell actions)
77
- el === null || el === void 0 ? void 0 : el.parentElement :
78
- // Numerical height cells need the popover anchor to be below the wrapper
79
- // class, in order to set height: 100% on the portalled popover div wrappers
80
- el;
81
- },
70
+ ref: setCellContentsRef,
82
71
  "data-datagrid-cellcontent": true,
83
72
  className: classes
84
73
  }, (0, _react2.jsx)(CellElement, (0, _extends2.default)({
@@ -106,9 +95,7 @@ var EuiDataGridCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref) {
106
95
  row: ariaRowIndex
107
96
  }
108
97
  })));
109
- return (0, _react2.jsx)("div", {
110
- className: wrapperClasses
111
- }, cellContent, screenReaderText, cellActions);
98
+ return (0, _react2.jsx)(_react.default.Fragment, null, cellContent, screenReaderText, cellActions);
112
99
  });
113
100
  var EuiDataGridCell = /*#__PURE__*/function (_Component) {
114
101
  (0, _inherits2.default)(EuiDataGridCell, _Component);
@@ -130,7 +117,8 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
130
117
  isFocused: false,
131
118
  isEntered: false,
132
119
  enableInteractions: false,
133
- disableCellTabIndex: false
120
+ disableCellTabIndex: false,
121
+ cellTextAlign: 'Left'
134
122
  });
135
123
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "unsubscribeCell", void 0);
136
124
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "focusTimeout", void 0);
@@ -233,6 +221,7 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
233
221
  _this.contentObserver.disconnect();
234
222
  }
235
223
  _this.preventTabbing();
224
+ _this.setCellTextAlign();
236
225
  });
237
226
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onFocus", function (e) {
238
227
  // only perform this logic when the event's originating element (e.target) is
@@ -260,10 +249,6 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
260
249
  });
261
250
  }
262
251
  }, 0);
263
- // Close the cell popover if the popover was open and the user clicked the cell
264
- if (_this.props.popoverContext.popoverIsOpen) {
265
- _this.props.popoverContext.closeCellPopover();
266
- }
267
252
  }
268
253
  });
269
254
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onBlur", function () {
@@ -290,6 +275,28 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
290
275
  }
291
276
  }
292
277
  });
278
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setCellTextAlign", function () {
279
+ if (_this.cellContentsRef) {
280
+ var columnType = _this.props.columnType;
281
+ if (!columnType) {
282
+ // If no schema was set, this is likely a left aligned column
283
+ _this.setState({
284
+ cellTextAlign: 'Left'
285
+ });
286
+ } else if (columnType === 'numeric' || columnType === 'currency') {
287
+ // Default EUI schemas that we know set right text align
288
+ _this.setState({
289
+ cellTextAlign: 'Right'
290
+ });
291
+ } else {
292
+ // If the consumer is using a custom schema, it may have custom text alignment
293
+ var textAlign = window.getComputedStyle(_this.cellContentsRef).getPropertyValue('text-align');
294
+ _this.setState({
295
+ cellTextAlign: textAlign === 'right' || textAlign === 'end' ? 'Right' : 'Left'
296
+ });
297
+ }
298
+ }
299
+ });
293
300
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isExpandable", function () {
294
301
  var _this$props$column, _this$props$column$ce, _this$state$cellProps;
295
302
  // A cell must always show an expansion popover if it has cell actions,
@@ -310,12 +317,14 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
310
317
  if (_this.isPopoverOpen()) {
311
318
  var _this$props$popoverCo2 = _this.props.popoverContext,
312
319
  setPopoverAnchor = _this$props$popoverCo2.setPopoverAnchor,
320
+ setPopoverAnchorPosition = _this$props$popoverCo2.setPopoverAnchorPosition,
313
321
  setPopoverContent = _this$props$popoverCo2.setPopoverContent,
314
322
  setCellPopoverProps = _this$props$popoverCo2.setCellPopoverProps;
315
323
 
316
324
  // Set popover anchor
317
325
  var cellAnchorEl = _this.popoverAnchorRef.current;
318
326
  setPopoverAnchor(cellAnchorEl);
327
+ setPopoverAnchorPosition("down".concat(_this.state.cellTextAlign));
319
328
 
320
329
  // Set popover contents with cell content
321
330
  var _this$props6 = _this.props,
@@ -476,7 +485,7 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
476
485
  var isExpandable = this.isExpandable();
477
486
  var popoverIsOpen = this.isPopoverOpen();
478
487
  var showCellActions = this.state.isFocused || this.state.isEntered || this.state.enableInteractions || popoverIsOpen;
479
- var cellClasses = (0, _classnames.default)('euiDataGridRowCell', (_classNames = {}, (0, _defineProperty2.default)(_classNames, "euiDataGridRowCell--".concat(columnType), columnType), (0, _defineProperty2.default)(_classNames, 'euiDataGridRowCell--open', popoverIsOpen), _classNames), className);
488
+ var cellClasses = (0, _classnames.default)('euiDataGridRowCell', "euiDataGridRowCell--align".concat(this.state.cellTextAlign), (_classNames = {}, (0, _defineProperty2.default)(_classNames, "euiDataGridRowCell--".concat(columnType), columnType), (0, _defineProperty2.default)(_classNames, 'euiDataGridRowCell--open', popoverIsOpen), _classNames), className);
480
489
  var ariaRowIndex = pagination ? visibleRowIndex + 1 + pagination.pageSize * pagination.pageIndex : visibleRowIndex + 1;
481
490
  var _this$state$cellProps2 = this.state.cellProps,
482
491
  _ = _this$state$cellProps2.isExpandable,
@@ -559,28 +568,24 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
559
568
  }
560
569
  };
561
570
  var rowHeight = rowHeightUtils === null || rowHeightUtils === void 0 ? void 0 : rowHeightUtils.getRowHeightOption(rowIndex, rowHeightsOptions);
562
- var cellHeightType = (rowHeightUtils === null || rowHeightUtils === void 0 ? void 0 : rowHeightUtils.getHeightType(rowHeight)) || 'default';
563
571
  var cellContentProps = _objectSpread(_objectSpread({}, rest), {}, {
564
572
  setCellProps: this.setCellProps,
565
573
  column: column,
566
574
  columnType: columnType,
567
- cellHeightType: cellHeightType,
568
575
  isExpandable: isExpandable,
569
576
  isExpanded: popoverIsOpen,
570
577
  isDetails: false,
571
578
  isFocused: this.state.isFocused,
572
579
  setCellContentsRef: this.setCellContentsRef,
573
- setPopoverAnchorRef: this.popoverAnchorRef,
574
580
  rowHeight: rowHeight,
575
581
  rowHeightUtils: rowHeightUtils,
576
582
  isControlColumn: cellClasses.includes('euiDataGridRowCell--controlColumn'),
577
583
  ariaRowIndex: ariaRowIndex
578
584
  });
579
- var cellActions = showCellActions && (0, _react2.jsx)(_data_grid_cell_actions.EuiDataGridCellActions, {
585
+ var cellActions = showCellActions && (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_data_grid_cell_actions.EuiDataGridCellActions, {
580
586
  rowIndex: rowIndex,
581
587
  colIndex: colIndex,
582
588
  column: column,
583
- cellHeightType: cellHeightType,
584
589
  onExpandClick: function onExpandClick() {
585
590
  if (popoverIsOpen) {
586
591
  closeCellPopover();
@@ -591,7 +596,10 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
591
596
  });
592
597
  }
593
598
  }
594
- });
599
+ }), (0, _react2.jsx)("div", {
600
+ ref: this.popoverAnchorRef,
601
+ "data-test-subject": "cellPopoverAnchor"
602
+ }));
595
603
  var cellContent = isExpandable ? (0, _react2.jsx)(EuiDataGridCellContent, (0, _extends2.default)({}, cellContentProps, {
596
604
  cellActions: cellActions
597
605
  })) : (0, _react2.jsx)(_focus_trap.EuiFocusTrap, {
@@ -15,7 +15,6 @@ var _button_icon = require("../../button/button_icon");
15
15
  var _button_empty = require("../../button/button_empty");
16
16
  var _flex = require("../../flex");
17
17
  var _popover = require("../../popover");
18
- var _classnames = _interopRequireDefault(require("classnames"));
19
18
  var _react2 = require("@emotion/react");
20
19
  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); }
21
20
  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; }
@@ -31,8 +30,7 @@ var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
31
30
  var onExpandClick = _ref.onExpandClick,
32
31
  column = _ref.column,
33
32
  rowIndex = _ref.rowIndex,
34
- colIndex = _ref.colIndex,
35
- cellHeightType = _ref.cellHeightType;
33
+ colIndex = _ref.colIndex;
36
34
  // Note: The cell expand button/expansion popover is *always* rendered if
37
35
  // column.cellActions is present (regardless of column.isExpandable).
38
36
  // This is because cell actions are not otherwise accessible to keyboard
@@ -43,11 +41,11 @@ var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
43
41
  default: "Click or hit enter to interact with cell content"
44
42
  }, function (expandButtonTitle) {
45
43
  return (0, _react2.jsx)(_button_icon.EuiButtonIcon, {
46
- display: "fill",
47
- className: "euiDataGridRowCell__actionButtonIcon",
44
+ className: "euiDataGridRowCell__actionButtonIcon euiDataGridRowCell__expandCell",
48
45
  "data-test-subj": "euiDataGridCellExpandButton",
46
+ display: "fill",
49
47
  color: "primary",
50
- iconSize: "s",
48
+ iconSize: "m",
51
49
  iconType: "expandMini",
52
50
  "aria-hidden": true,
53
51
  onClick: onExpandClick,
@@ -59,8 +57,13 @@ var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
59
57
  var ButtonComponent = function ButtonComponent(props) {
60
58
  return (0, _react2.jsx)(_button_icon.EuiButtonIcon, (0, _extends2.default)({}, props, {
61
59
  "aria-hidden": true,
62
- className: "euiDataGridRowCell__actionButtonIcon",
63
- iconSize: "s"
60
+ className: "euiDataGridRowCell__actionButtonIcon"
61
+ // Don't allow consumers to override sizes or colors for cell actions on hover/focus
62
+ ,
63
+ size: "xs",
64
+ iconSize: "s",
65
+ display: "fill",
66
+ color: "primary"
64
67
  }));
65
68
  };
66
69
  var _getVisibleCellAction = getVisibleCellActions(column === null || column === void 0 ? void 0 : column.cellActions, column === null || column === void 0 ? void 0 : column.visibleCellActions),
@@ -79,11 +82,8 @@ var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
79
82
  });
80
83
  });
81
84
  }, [column, colIndex, rowIndex]);
82
- var classes = (0, _classnames.default)('euiDataGridRowCell__actions', {
83
- 'euiDataGridRowCell__actions--overlay': cellHeightType !== 'default'
84
- });
85
85
  return (0, _react2.jsx)("div", {
86
- className: classes
86
+ className: "euiDataGridRowCell__actions"
87
87
  }, [].concat((0, _toConsumableArray2.default)(additionalButtons), [expandButton]));
88
88
  };
89
89
  exports.EuiDataGridCellActions = EuiDataGridCellActions;
@@ -35,6 +35,7 @@ var DataGridCellPopoverContext = /*#__PURE__*/(0, _react.createContext)({
35
35
  openCellPopover: function openCellPopover() {},
36
36
  closeCellPopover: function closeCellPopover() {},
37
37
  setPopoverAnchor: function setPopoverAnchor() {},
38
+ setPopoverAnchorPosition: function setPopoverAnchorPosition() {},
38
39
  setPopoverContent: function setPopoverContent() {},
39
40
  setCellPopoverProps: function setCellPopoverProps() {}
40
41
  });
@@ -58,15 +59,19 @@ var useCellPopover = function useCellPopover() {
58
59
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
59
60
  popoverAnchor = _useState6[0],
60
61
  setPopoverAnchor = _useState6[1];
61
- var _useState7 = (0, _react.useState)(),
62
+ var _useState7 = (0, _react.useState)('downLeft'),
62
63
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
63
- popoverContent = _useState8[0],
64
- setPopoverContent = _useState8[1];
65
- // Allow customization of most (not all) popover props by consumers
66
- var _useState9 = (0, _react.useState)({}),
64
+ popoverAnchorPosition = _useState8[0],
65
+ setPopoverAnchorPosition = _useState8[1];
66
+ var _useState9 = (0, _react.useState)(),
67
67
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
68
- cellPopoverProps = _useState10[0],
69
- setCellPopoverProps = _useState10[1];
68
+ popoverContent = _useState10[0],
69
+ setPopoverContent = _useState10[1];
70
+ // Allow customization of most (not all) popover props by consumers
71
+ var _useState11 = (0, _react.useState)({}),
72
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
73
+ cellPopoverProps = _useState12[0],
74
+ setCellPopoverProps = _useState12[1];
70
75
  var closeCellPopover = (0, _react.useCallback)(function () {
71
76
  return setPopoverIsOpen(false);
72
77
  }, []);
@@ -93,29 +98,57 @@ var useCellPopover = function useCellPopover() {
93
98
  openCellPopover: openCellPopover,
94
99
  cellLocation: cellLocation,
95
100
  setPopoverAnchor: setPopoverAnchor,
101
+ setPopoverAnchorPosition: setPopoverAnchorPosition,
96
102
  setPopoverContent: setPopoverContent,
97
103
  setCellPopoverProps: setCellPopoverProps
98
104
  };
99
105
 
106
+ // Override the default EuiPopover `onClickOutside` behavior, since the toggling
107
+ // popover button isn't actually the DOM node we pass to `button`. Otherwise,
108
+ // clicking the expansion cell action triggers an outside click
109
+ var onClickOutside = (0, _react.useCallback)(function (event) {
110
+ var _popoverAnchor$parent, _popoverAnchor$parent2;
111
+ var cellActions = popoverAnchor === null || popoverAnchor === void 0 ? void 0 : (_popoverAnchor$parent = popoverAnchor.parentElement) === null || _popoverAnchor$parent === void 0 ? void 0 : (_popoverAnchor$parent2 = _popoverAnchor$parent.parentElement) === null || _popoverAnchor$parent2 === void 0 ? void 0 : _popoverAnchor$parent2.previousElementSibling;
112
+ if (!(cellActions !== null && cellActions !== void 0 && cellActions.contains(event.target))) {
113
+ closeCellPopover();
114
+ }
115
+ }, [popoverAnchor, closeCellPopover]);
116
+
100
117
  // Note that this popover is rendered once at the top grid level, rather than one popover per cell
101
118
  var cellPopover = popoverIsOpen && popoverAnchor && (0, _react2.jsx)(_popover.EuiWrappingPopover, (0, _extends2.default)({
102
119
  isOpen: popoverIsOpen,
103
120
  display: "block",
104
121
  hasArrow: false,
105
- panelPaddingSize: "s"
122
+ panelPaddingSize: "s",
123
+ anchorPosition: popoverAnchorPosition,
124
+ repositionToCrossAxis: false
106
125
  }, cellPopoverProps, {
126
+ focusTrapProps: {
127
+ onClickOutside: onClickOutside,
128
+ clickOutsideDisables: false
129
+ },
107
130
  panelProps: _objectSpread({
108
131
  'data-test-subj': 'euiDataGridExpansionPopover'
109
132
  }, cellPopoverProps.panelProps || {}),
110
133
  panelClassName: (0, _classnames.default)('euiDataGridRowCell__popover', cellPopoverProps.panelClassName, (_cellPopoverProps$pan = cellPopoverProps.panelProps) === null || _cellPopoverProps$pan === void 0 ? void 0 : _cellPopoverProps$pan.className),
134
+ panelStyle: {
135
+ maxInlineSize: "min(75vw, max(".concat(popoverAnchor.parentElement.offsetWidth, "px, 400px))"),
136
+ maxBlockSize: '50vh'
137
+ },
111
138
  onKeyDown: function onKeyDown(event) {
112
139
  if (event.key === _services.keys.F2 || event.key === _services.keys.ESCAPE) {
140
+ var _popoverAnchor$parent3, _popoverAnchor$parent4;
113
141
  event.preventDefault();
114
142
  event.stopPropagation();
115
143
  closeCellPopover();
116
- // Ensure focus is returned to the parent cell
144
+ var cell = (_popoverAnchor$parent3 = popoverAnchor.parentElement) === null || _popoverAnchor$parent3 === void 0 ? void 0 : (_popoverAnchor$parent4 = _popoverAnchor$parent3.parentElement) === null || _popoverAnchor$parent4 === void 0 ? void 0 : _popoverAnchor$parent4.parentElement;
145
+
146
+ // Prevent cell animation flash while focus is being shifted between popover and cell
147
+ cell === null || cell === void 0 ? void 0 : cell.setAttribute('data-keyboard-closing', 'true');
148
+ // Ensure focus is returned to the parent cell, and remove animation stopgap
117
149
  requestAnimationFrame(function () {
118
- return popoverAnchor.parentElement.focus();
150
+ popoverAnchor.parentElement.focus();
151
+ cell === null || cell === void 0 ? void 0 : cell.removeAttribute('data-keyboard-closing');
119
152
  });
120
153
  }
121
154
  },