@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
@@ -1,17 +1,3 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
4
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
6
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
7
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
8
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
9
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
10
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
11
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
12
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
14
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
15
1
  /*
16
2
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
17
3
  * or more contributor license agreements. Licensed under the Elastic License
@@ -20,86 +6,14 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
20
6
  * Side Public License, v 1.
21
7
  */
22
8
 
23
- import React, { Component, cloneElement } from 'react';
24
- import PropTypes from "prop-types";
9
+ import React from 'react';
25
10
  import { jsx as ___EmotionJSX } from "@emotion/react";
26
- export var CustomItemAction = /*#__PURE__*/function (_Component) {
27
- _inherits(CustomItemAction, _Component);
28
- var _super = _createSuper(CustomItemAction);
29
- function CustomItemAction(props) {
30
- var _this;
31
- _classCallCheck(this, CustomItemAction);
32
- _this = _super.call(this, props);
33
- _defineProperty(_assertThisInitialized(_this), "mounted", void 0);
34
- _defineProperty(_assertThisInitialized(_this), "onFocus", function () {
35
- if (_this.mounted) {
36
- _this.setState({
37
- hasFocus: true
38
- });
39
- }
40
- });
41
- _defineProperty(_assertThisInitialized(_this), "onBlur", function () {
42
- if (_this.mounted) {
43
- _this.setState({
44
- hasFocus: false
45
- });
46
- }
47
- });
48
- _defineProperty(_assertThisInitialized(_this), "hasFocus", function () {
49
- return _this.state.hasFocus;
50
- });
51
- _this.state = {
52
- hasFocus: false
53
- };
54
-
55
- // while generally considered an anti-pattern, here we require
56
- // to do that as the onFocus/onBlur events of the action controls
57
- // may trigger while this component is unmounted. An alternative
58
- // (at least the workarounds suggested by react is to unregister
59
- // the onFocus/onBlur listeners from the action controls... this
60
- // unfortunately will lead to unnecessarily complex code... so we'll
61
- // stick to this approach for now)
62
- _this.mounted = false;
63
- return _this;
64
- }
65
- _createClass(CustomItemAction, [{
66
- key: "componentDidMount",
67
- value: function componentDidMount() {
68
- this.mounted = true;
69
- }
70
- }, {
71
- key: "componentWillUnmount",
72
- value: function componentWillUnmount() {
73
- this.mounted = false;
74
- }
75
- }, {
76
- key: "render",
77
- value: function render() {
78
- var _this$props = this.props,
79
- action = _this$props.action,
80
- enabled = _this$props.enabled,
81
- item = _this$props.item,
82
- className = _this$props.className;
83
- var tool = action.render(item, enabled);
84
- var clonedTool = /*#__PURE__*/cloneElement(tool, {
85
- onFocus: this.onFocus,
86
- onBlur: this.onBlur
87
- });
88
- var style = this.hasFocus() ? {
89
- opacity: 1
90
- } : undefined;
91
- return ___EmotionJSX("div", {
92
- style: style,
93
- className: className
94
- }, clonedTool);
95
- }
96
- }]);
97
- return CustomItemAction;
98
- }(Component);
99
- CustomItemAction.propTypes = {
100
- action: PropTypes.any.isRequired,
101
- enabled: PropTypes.bool.isRequired,
102
- item: PropTypes.any.isRequired,
103
- className: PropTypes.string.isRequired,
104
- index: PropTypes.number
11
+ export var CustomItemAction = function CustomItemAction(_ref) {
12
+ var action = _ref.action,
13
+ enabled = _ref.enabled,
14
+ item = _ref.item,
15
+ className = _ref.className;
16
+ return ___EmotionJSX("div", {
17
+ className: className
18
+ }, action.render(item, enabled));
105
19
  };
@@ -12,10 +12,8 @@ import { EuiButtonEmpty, EuiButtonIcon } from '../button';
12
12
  import { EuiToolTip } from '../tool_tip';
13
13
  import { useGeneratedHtmlId } from '../../services/accessibility';
14
14
  import { EuiScreenReaderOnly } from '../accessibility';
15
+ import { callWithItemIfFunction } from './action_types';
15
16
  import { jsx as ___EmotionJSX } from "@emotion/react";
16
- // In order to use generics with an arrow function inside a .tsx file, it's necessary to use
17
- // this `extends` hack and declare the types as shown, instead of declaring the const as a
18
- // FunctionComponent
19
17
  export var DefaultItemAction = function DefaultItemAction(_ref) {
20
18
  var action = _ref.action,
21
19
  enabled = _ref.enabled,
@@ -38,25 +36,36 @@ export var DefaultItemAction = function DefaultItemAction(_ref) {
38
36
  icon = isString(buttonIcon) ? buttonIcon : buttonIcon(item);
39
37
  }
40
38
  var button;
41
- var actionContent = typeof action.name === 'function' ? action.name(item) : action.name;
39
+ var actionContent = callWithItemIfFunction(item)(action.name);
40
+ var tooltipContent = callWithItemIfFunction(item)(action.description);
41
+ var href = callWithItemIfFunction(item)(action.href);
42
+ var dataTestSubj = callWithItemIfFunction(item)(action['data-test-subj']);
42
43
  var ariaLabelId = useGeneratedHtmlId();
44
+ var ariaLabelledBy;
43
45
  if (action.type === 'icon') {
44
46
  if (!icon) {
45
47
  throw new Error("Cannot render item action [".concat(action.name, "]. It is configured to render as an icon but no\n icon is provided. Make sure to set the 'icon' property of the action"));
46
48
  }
47
- button = ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiButtonIcon, {
49
+ button = ___EmotionJSX(EuiButtonIcon, {
48
50
  className: className,
49
51
  "aria-labelledby": ariaLabelId,
50
52
  isDisabled: !enabled,
51
53
  color: color,
52
54
  iconType: icon,
53
55
  onClick: onClick,
54
- href: action.href,
56
+ href: href,
55
57
  target: action.target,
56
- "data-test-subj": action['data-test-subj']
57
- }), ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("span", {
58
+ "data-test-subj": dataTestSubj
59
+ // If action is disabled, the normal tooltip can't show - attempt to
60
+ // provide some amount of affordance with a browser title tooltip
61
+ ,
62
+ title: !enabled ? tooltipContent : undefined
63
+ });
64
+ // actionContent (action.name) is a ReactNode and must be rendered
65
+ // to an element and referenced by ID for screen readers
66
+ ariaLabelledBy = ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("span", {
58
67
  id: ariaLabelId
59
- }, actionContent)));
68
+ }, actionContent));
60
69
  } else {
61
70
  button = ___EmotionJSX(EuiButtonEmpty, {
62
71
  className: className,
@@ -65,14 +74,14 @@ export var DefaultItemAction = function DefaultItemAction(_ref) {
65
74
  color: color,
66
75
  iconType: icon,
67
76
  onClick: onClick,
68
- href: action.href,
77
+ href: href,
69
78
  target: action.target,
70
- "data-test-subj": action['data-test-subj'],
79
+ "data-test-subj": dataTestSubj,
71
80
  flush: "right"
72
81
  }, actionContent);
73
82
  }
74
- return enabled && action.description ? ___EmotionJSX(EuiToolTip, {
75
- content: action.description,
83
+ return enabled ? ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiToolTip, {
84
+ content: tooltipContent,
76
85
  delay: "long"
77
- }, button) : button;
86
+ }, button), ariaLabelledBy) : ___EmotionJSX(React.Fragment, null, button, ariaLabelledBy);
78
87
  };
@@ -133,24 +133,26 @@ describe('EuiInMemoryTable', function () {
133
133
  cy.checkAxe();
134
134
  });
135
135
  it('has zero violations after sorting on a column', function () {
136
- cy.realPress('Tab');
137
- cy.get('button[data-test-subj="tableHeaderSortButton"]').first().should('have.focus');
138
- cy.realPress('Enter');
136
+ cy.get('button[data-test-subj="tableHeaderSortButton"]').first().focus();
137
+ cy.realPress('{enter}');
139
138
  cy.checkAxe();
140
139
  });
141
140
  it('has zero violations when number of rows is increased by keyboard', function () {
142
- cy.repeatRealPress('Tab', 14);
143
- cy.get('button[data-test-subj="tablePaginationPopoverButton"]').should('have.focus').realPress('Space');
144
- cy.get('div[data-popover-open="true"]').should('exist');
145
- cy.get('div[data-popover-open="true"]').should('have.focus');
141
+ cy.get('button[data-test-subj="tablePaginationPopoverButton"]').focus().realPress('{enter}');
142
+ cy.get('div[data-popover-open="true"]', {
143
+ timeout: 1000
144
+ }).should('exist');
146
145
  cy.repeatRealPress('Tab'); // Switched to Tab from ArrowDown because of flaky test runs
147
- cy.get('button[data-test-subj="tablePagination-25-rows"]').realPress('Space');
148
- cy.get('table.euiTable').find('tr.euiTableRow').should('have.length', 20);
146
+ cy.get('button[data-test-subj="tablePagination-25-rows"]', {
147
+ timeout: 1000
148
+ }).realPress('{enter}');
149
+ cy.get('table.euiTable', {
150
+ timeout: 1000
151
+ }).find('tr.euiTableRow').should('have.length', 20);
149
152
  cy.checkAxe();
150
153
  });
151
154
  it('has zero violations when pagination is pressed', function () {
152
- cy.repeatRealPress('Tab', 15);
153
- cy.get('a[data-test-subj="pagination-button-1"]').should('have.focus').realPress('Enter');
155
+ cy.get('a[data-test-subj="pagination-button-1"]').focus().realPress('{enter}');
154
156
  cy.get('button[data-test-subj="pagination-button-1"]').should('be.disabled');
155
157
  cy.checkAxe();
156
158
  });
@@ -684,19 +684,19 @@ EuiInMemoryTable.propTypes = {
684
684
  */
685
685
  color: PropTypes.oneOfType([PropTypes.any.isRequired, PropTypes.func.isRequired]),
686
686
  /**
687
- * The display name of the action (will be the button caption)
687
+ * The display name of the action (will render as visible text if rendered within a collapsed menu)
688
688
  */
689
689
  /**
690
- * The display name of the action (will be the button caption)
690
+ * The display name of the action (will render as visible text if rendered within a collapsed menu)
691
691
  */
692
692
  name: PropTypes.oneOfType([PropTypes.node.isRequired, PropTypes.func.isRequired]).isRequired,
693
693
  /**
694
- * Describes the action (will be the button title)
694
+ * Describes the action (will render as tooltip content)
695
695
  */
696
696
  /**
697
- * Describes the action (will be the button title)
697
+ * Describes the action (will render as tooltip content)
698
698
  */
699
- description: PropTypes.string.isRequired,
699
+ description: PropTypes.oneOfType([PropTypes.string.isRequired, PropTypes.func.isRequired]).isRequired,
700
700
  /**
701
701
  * A handler function to execute the action
702
702
  */
@@ -704,7 +704,7 @@ EuiInMemoryTable.propTypes = {
704
704
  * A handler function to execute the action
705
705
  */
706
706
  onClick: PropTypes.func,
707
- href: PropTypes.string,
707
+ href: PropTypes.oneOfType([PropTypes.string.isRequired, PropTypes.func.isRequired]),
708
708
  target: PropTypes.string,
709
709
  /**
710
710
  * A callback function that determines whether the action is available
@@ -721,14 +721,14 @@ EuiInMemoryTable.propTypes = {
721
721
  */
722
722
  enabled: PropTypes.func,
723
723
  isPrimary: PropTypes.bool,
724
- "data-test-subj": PropTypes.string,
724
+ "data-test-subj": PropTypes.oneOfType([PropTypes.string.isRequired, PropTypes.func.isRequired]),
725
725
  /**
726
726
  * Associates an icon with the button
727
727
  */
728
728
  icon: PropTypes.oneOfType([PropTypes.oneOf(["accessibility", "addDataApp", "advancedSettingsApp", "agentApp", "aggregate", "analyzeEvent", "annotation", "apmApp", "apmTrace", "appSearchApp", "apps", "arrowDown", "arrowLeft", "arrowRight", "arrowUp", "arrowStart", "arrowEnd", "article", "asterisk", "at", "auditbeatApp", "beaker", "bell", "bellSlash", "beta", "bolt", "boxesHorizontal", "boxesVertical", "branch", "branchUser", "broom", "brush", "bug", "bullseye", "calendar", "canvasApp", "casesApp", "check", "checkInCircleFilled", "cheer", "classificationJob", "clock", "cloudDrizzle", "cloudStormy", "cloudSunny", "cluster", "codeApp", "color", "compute", "console", "consoleApp", "container", "continuityAbove", "continuityAboveBelow", "continuityBelow", "continuityWithin", "controlsHorizontal", "controlsVertical", "copy", "copyClipboard", "createAdvancedJob", "createMultiMetricJob", "createPopulationJob", "createSingleMetricJob", "cross", "crossClusterReplicationApp", "crosshairs", "currency", "cut", "dashboardApp", "dataVisualizer", "database", "desktop", "devToolsApp", "discoverApp", "discuss", "document", "documentEdit", "documentation", "documents", "dot", "dotInCircle", "doubleArrowLeft", "doubleArrowRight", "download", "editorAlignCenter", "editorAlignLeft", "editorAlignRight", "editorBold", "editorChecklist", "editorCodeBlock", "editorComment", "editorDistributeHorizontal", "editorDistributeVertical", "editorHeading", "editorItalic", "editorItemAlignBottom", "editorItemAlignCenter", "editorItemAlignLeft", "editorItemAlignMiddle", "editorItemAlignRight", "editorItemAlignTop", "editorLink", "editorOrderedList", "editorPositionBottomLeft", "editorPositionBottomRight", "editorPositionTopLeft", "editorPositionTopRight", "editorRedo", "editorStrike", "editorTable", "editorUnderline", "editorUndo", "editorUnorderedList", "email", "empty", "emsApp", "eql", "eraser", "error", "exit", "expand", "expandMini", "exportAction", "eye", "eyeClosed", "faceHappy", "faceNeutral", "faceSad", "filebeatApp", "filter", "filterExclude", "filterIgnore", "filterInclude", "filterInCircle", "flag", "fleetApp", "fold", "folderCheck", "folderClosed", "folderExclamation", "folderOpen", "frameNext", "framePrevious", "fullScreen", "fullScreenExit", "function", "gear", "gisApp", "glasses", "globe", "grab", "grabHorizontal", "grabOmnidirectional", "gradient", "graphApp", "grid", "grokApp", "heart", "heartbeatApp", "heatmap", "help", "home", "iInCircle", "image", "importAction", "indexClose", "indexEdit", "indexFlush", "indexManagementApp", "indexMapping", "indexOpen", "indexPatternApp", "indexRollupApp", "indexRuntime", "indexSettings", "indexTemporary", "infinity", "inputOutput", "inspect", "invert", "ip", "key", "keyboard", "kqlField", "kqlFunction", "kqlOperand", "kqlSelector", "kqlValue", "kubernetesNode", "kubernetesPod", "launch", "layers", "lensApp", "lettering", "lineDashed", "lineDotted", "lineSolid", "link", "list", "listAdd", "lock", "lockOpen", "logoAWS", "logoAWSMono", "logoAerospike", "logoApache", "logoAppSearch", "logoAzure", "logoAzureMono", "logoBeats", "logoBusinessAnalytics", "logoCeph", "logoCloud", "logoCloudEnterprise", "logoCode", "logoCodesandbox", "logoCouchbase", "logoDocker", "logoDropwizard", "logoElastic", "logoElasticStack", "logoElasticsearch", "logoEnterpriseSearch", "logoEtcd", "logoGCP", "logoGCPMono", "logoGithub", "logoGmail", "logoGolang", "logoGoogleG", "logoHAproxy", "logoIBM", "logoIBMMono", "logoKafka", "logoKibana", "logoKubernetes", "logoLogging", "logoLogstash", "logoMaps", "logoMemcached", "logoMetrics", "logoMongodb", "logoMySQL", "logoNginx", "logoObservability", "logoOsquery", "logoPhp", "logoPostgres", "logoPrometheus", "logoRabbitmq", "logoRedis", "logoSecurity", "logoSiteSearch", "logoSketch", "logoSlack", "logoUptime", "logoVulnerabilityManagement", "logoWebhook", "logoWindows", "logoWorkplaceSearch", "logsApp", "logstashFilter", "logstashIf", "logstashInput", "logstashOutput", "logstashQueue", "machineLearningApp", "magnet", "magnifyWithExclamation", "magnifyWithMinus", "magnifyWithPlus", "managementApp", "mapMarker", "memory", "menu", "menuDown", "menuLeft", "menuRight", "menuUp", "merge", "metricbeatApp", "metricsApp", "minimize", "minus", "minusInCircle", "minusInCircleFilled", "mobile", "monitoringApp", "moon", "namespace", "nested", "node", "notebookApp", "number", "offline", "online", "outlierDetectionJob", "package", "packetbeatApp", "pageSelect", "pagesSelect", "palette", "paperClip", "partial", "pause", "payment", "pencil", "percent", "pin", "pinFilled", "pipelineApp", "pivot", "play", "playFilled", "plus", "plusInCircle", "plusInCircleFilled", "popout", "push", "questionInCircle", "quote", "recentlyViewedApp", "refresh", "regressionJob", "reporter", "reportingApp", "returnKey", "save", "savedObjectsApp", "scale", "search", "searchProfilerApp", "securityAnalyticsApp", "securityApp", "securitySignal", "securitySignalDetected", "securitySignalResolved", "sessionViewer", "shard", "share", "snowflake", "sortAscending", "sortDescending", "sortDown", "sortLeft", "sortRight", "sortUp", "sortable", "spaces", "spacesApp", "sparkles", "sqlApp", "starEmpty", "starEmptySpace", "starFilled", "starFilledSpace", "starMinusEmpty", "starMinusFilled", "starPlusEmpty", "starPlusFilled", "stats", "stop", "stopFilled", "stopSlash", "storage", "string", "submodule", "sun", "swatchInput", "symlink", "tableDensityCompact", "tableDensityExpanded", "tableDensityNormal", "tableOfContents", "tag", "tear", "temperature", "timeline", "timelineWithArrow", "timelionApp", "timeRefresh", "timeslider", "training", "transitionLeftIn", "transitionLeftOut", "transitionTopIn", "transitionTopOut", "trash", "unfold", "unlink", "upgradeAssistantApp", "uptimeApp", "user", "userAvatar", "users", "usersRolesApp", "vector", "videoPlayer", "visArea", "visAreaStacked", "visBarHorizontal", "visBarHorizontalStacked", "visBarVertical", "visBarVerticalStacked", "visGauge", "visGoal", "visLine", "visMapCoordinate", "visMapRegion", "visMetric", "visPie", "visTable", "visTagCloud", "visText", "visTimelion", "visVega", "visVisualBuilder", "visualizeApp", "vulnerabilityManagementApp", "warning", "alert", "watchesApp", "wordWrap", "wordWrapDisabled", "workplaceSearchApp", "wrench", "tokenAlias", "tokenAnnotation", "tokenArray", "tokenBinary", "tokenBoolean", "tokenClass", "tokenCompletionSuggester", "tokenConstant", "tokenDate", "tokenElement", "tokenEnum", "tokenEnumMember", "tokenEvent", "tokenException", "tokenField", "tokenFile", "tokenFlattened", "tokenFunction", "tokenGeo", "tokenHistogram", "tokenInterface", "tokenIP", "tokenJoin", "tokenKey", "tokenKeyword", "tokenMethod", "tokenMetricCounter", "tokenMetricGauge", "tokenModule", "tokenNamespace", "tokenNested", "tokenNull", "tokenNumber", "tokenObject", "tokenOperator", "tokenPackage", "tokenParameter", "tokenPercolator", "tokenProperty", "tokenRange", "tokenRankFeature", "tokenRankFeatures", "tokenRepo", "tokenSearchType", "tokenShape", "tokenString", "tokenStruct", "tokenSymbol", "tokenTag", "tokenText", "tokenTokenCount", "tokenVariable", "tokenVectorDense", "tokenDenseVector", "tokenVectorSparse"]).isRequired, PropTypes.func.isRequired])
729
729
  }).isRequired, PropTypes.shape({
730
730
  /**
731
- * The function that renders the action. Note that the returned node is expected to have `onFocus` and `onBlur` functions
731
+ * Allows rendering a totally custom action
732
732
  */
733
733
  render: PropTypes.func.isRequired,
734
734
  /**
@@ -97,10 +97,12 @@ export var EuiBreadcrumbContent = function EuiBreadcrumbContent(_ref2) {
97
97
  var popoverAriaLabel = useEuiI18n('euiBreadcrumb.popoverAriaLabel', 'Clicking this button will toggle a popover dialog.');
98
98
  return ___EmotionJSX(EuiInnerText, null, function (ref, innerText) {
99
99
  var title = innerText === '' ? undefined : innerText;
100
- var sharedProps = {
100
+ var baseProps = {
101
101
  ref: ref,
102
102
  title: title,
103
- 'aria-current': ariaCurrent,
103
+ 'aria-current': ariaCurrent
104
+ };
105
+ var styleProps = {
104
106
  className: classes,
105
107
  css: cssStyles
106
108
  };
@@ -110,8 +112,10 @@ export var EuiBreadcrumbContent = function EuiBreadcrumbContent(_ref2) {
110
112
  closePopover: function closePopover() {
111
113
  return setIsPopoverOpen(false);
112
114
  },
113
- button: ___EmotionJSX(EuiLink, _extends({}, sharedProps, {
114
- color: linkColor
115
+ css: !isLastBreadcrumb && styles.euiBreadcrumb__popoverWrapper,
116
+ button: ___EmotionJSX(EuiLink, _extends({}, baseProps, {
117
+ color: linkColor,
118
+ css: styles.euiBreadcrumb__popoverButton
115
119
  // Avoid passing href and onClick - should only toggle the popover
116
120
  ,
117
121
  onClick: function onClick() {
@@ -119,14 +123,14 @@ export var EuiBreadcrumbContent = function EuiBreadcrumbContent(_ref2) {
119
123
  return !isOpen;
120
124
  });
121
125
  }
122
- }, rest), text, ' ', ___EmotionJSX(EuiIcon, {
126
+ }, rest), ___EmotionJSX("span", styleProps, text), ___EmotionJSX(EuiIcon, {
123
127
  type: "arrowDown",
124
128
  size: "s",
125
129
  "aria-label": " - ".concat(popoverAriaLabel)
126
130
  }))
127
131
  }), popoverContent);
128
132
  } else if (isInteractiveBreadcrumb) {
129
- return ___EmotionJSX(EuiLink, _extends({}, sharedProps, {
133
+ return ___EmotionJSX(EuiLink, _extends({}, baseProps, styleProps, {
130
134
  color: linkColor,
131
135
  onClick: onClick,
132
136
  href: href,
@@ -136,7 +140,7 @@ export var EuiBreadcrumbContent = function EuiBreadcrumbContent(_ref2) {
136
140
  return ___EmotionJSX(EuiTextColor, {
137
141
  color: plainTextColor,
138
142
  cloneElement: true
139
- }, ___EmotionJSX("span", _extends({}, sharedProps, rest), text));
143
+ }, ___EmotionJSX("span", _extends({}, baseProps, styleProps, rest), text));
140
144
  }
141
145
  });
142
146
  };
@@ -49,6 +49,11 @@ export var euiBreadcrumbContentStyles = function euiBreadcrumbContentStyles(euiT
49
49
  return x * 10;
50
50
  })), ";;label:isTruncated;"),
51
51
  isTruncatedLast: /*#__PURE__*/css(euiTextTruncate('none'), ";;label:isTruncatedLast;"),
52
+ // Popover styles
53
+ euiBreadcrumb__popoverButton: /*#__PURE__*/css("max-inline-size:100%;display:inline-flex;align-items:center;gap:", euiTheme.size.xs, ";;label:euiBreadcrumb__popoverButton;"),
54
+ euiBreadcrumb__popoverWrapper: /*#__PURE__*/css("max-inline-size:calc(\n 100% - ", mathWithUnits(euiTheme.size.base, function (x) {
55
+ return x + 1;
56
+ }), "\n );;label:euiBreadcrumb__popoverWrapper;"),
52
57
  // Types
53
58
  page: /*#__PURE__*/css("&:is(a):focus{", euiFocusRing(euiThemeContext, 'inset'), ";}&:is(button):focus{", euiFocusRing(euiThemeContext, 'center'), ";};label:page;"),
54
59
  application: /*#__PURE__*/css(euiFontSize(euiThemeContext, 'xs'), " background-color:", transparentize(euiTheme.colors.darkestShade, 0.2), ";clip-path:polygon(\n 0 0,\n calc(100% - ", euiTheme.size.s, ") 0,\n 100% 50%,\n calc(100% - ", euiTheme.size.s, ") 100%,\n 0 100%,\n ", euiTheme.size.s, " 50%\n );color:", euiTheme.colors.darkestShade, ";line-height:", euiTheme.size.base, ";", logicalCSS('padding-vertical', euiTheme.size.xs), " ", logicalCSS('padding-horizontal', euiTheme.size.base), " &:is(a),&:is(button){background-color:", transparentize(euiTheme.colors.primary, 0.2), ";color:", euiTheme.colors.link, ";:focus{", euiFocusRing(euiThemeContext, 'inset'), " :focus-visible{border-radius:", euiTheme.border.radius.medium, ";clip-path:none;}}};label:application;"),
@@ -173,16 +173,18 @@ EuiButtonDisplay.propTypes = {
173
173
  */
174
174
  iconSide: PropTypes.oneOfType([PropTypes.any.isRequired, PropTypes.oneOf([undefined])]),
175
175
  /**
176
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
176
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
177
+ *
178
+ * This span wrapper can be removed by passing `textProps={false}`.
177
179
  */
178
- textProps: PropTypes.shape({
180
+ textProps: PropTypes.oneOfType([PropTypes.shape({
179
181
  className: PropTypes.string,
180
182
  "aria-label": PropTypes.string,
181
183
  "data-test-subj": PropTypes.string,
182
184
  css: PropTypes.any,
183
185
  ref: PropTypes.any,
184
186
  "data-text": PropTypes.string
185
- }),
187
+ }).isRequired, PropTypes.oneOf([false])]),
186
188
  iconSize: PropTypes.any,
187
189
  isDisabled: PropTypes.bool,
188
190
  className: PropTypes.string,
@@ -68,9 +68,11 @@ export var EuiButtonDisplayContent = function EuiButtonDisplayContent(_ref) {
68
68
  }
69
69
 
70
70
  var isText = typeof children === 'string';
71
+ var doNotRenderTextWrapper = textProps === false;
72
+ var renderTextWrapper = (isText || textProps) && !doNotRenderTextWrapper;
71
73
  return ___EmotionJSX("span", _extends({
72
74
  css: cssStyles
73
- }, contentProps), iconSide === 'left' && icon, isText || textProps ? ___EmotionJSX("span", _extends({}, textProps, {
75
+ }, contentProps), iconSide === 'left' && icon, renderTextWrapper ? ___EmotionJSX("span", _extends({}, textProps, {
74
76
  className: classNames('eui-textTruncate', textProps === null || textProps === void 0 ? void 0 : textProps.className)
75
77
  }), children) : children, iconSide === 'right' && icon);
76
78
  };
@@ -85,16 +87,18 @@ EuiButtonDisplayContent.propTypes = {
85
87
  iconSide: PropTypes.oneOfType([PropTypes.any.isRequired, PropTypes.oneOf([undefined])]),
86
88
  isLoading: PropTypes.bool,
87
89
  /**
88
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
90
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
91
+ *
92
+ * This span wrapper can be removed by passing `textProps={false}`.
89
93
  */
90
- textProps: PropTypes.shape({
94
+ textProps: PropTypes.oneOfType([PropTypes.shape({
91
95
  className: PropTypes.string,
92
96
  "aria-label": PropTypes.string,
93
97
  "data-test-subj": PropTypes.string,
94
98
  css: PropTypes.any,
95
99
  ref: PropTypes.any,
96
100
  "data-text": PropTypes.string
97
- }),
101
+ }).isRequired, PropTypes.oneOf([false])]),
98
102
  iconSize: PropTypes.any,
99
103
  isDisabled: PropTypes.bool,
100
104
  className: PropTypes.string,
@@ -72,14 +72,14 @@ export var EuiButtonEmpty = function EuiButtonEmpty(_ref) {
72
72
  var cssStyles = [styles.euiButtonEmpty, styles[size], buttonColorStyles[isDisabled ? 'disabled' : color], flush && styles.flush, flush && styles[flush], isDisabled && styles.isDisabled];
73
73
  var classes = classNames('euiButtonEmpty', className);
74
74
  var contentClassNames = classNames('euiButtonEmpty__content', contentProps === null || contentProps === void 0 ? void 0 : contentProps.className);
75
- var textClassNames = classNames('euiButtonEmpty__text', textProps === null || textProps === void 0 ? void 0 : textProps.className);
75
+ var textClassNames = classNames('euiButtonEmpty__text', textProps && textProps.className);
76
76
  var innerNode = ___EmotionJSX(EuiButtonDisplayContent, _extends({
77
77
  isDisabled: isDisabled,
78
78
  isLoading: isLoading,
79
79
  iconType: iconType,
80
80
  iconSide: iconSide,
81
81
  iconSize: size === 'xs' ? 's' : iconSize,
82
- textProps: _objectSpread(_objectSpread({}, textProps), {}, {
82
+ textProps: textProps === false ? false : _objectSpread(_objectSpread({}, textProps), {}, {
83
83
  className: textClassNames
84
84
  })
85
85
  }, _objectSpread(_objectSpread({}, contentProps), {}, {
@@ -155,10 +155,10 @@ EuiButtonEmpty.propTypes = {
155
155
  type: PropTypes.oneOf(["button", "submit"]),
156
156
  buttonRef: PropTypes.any,
157
157
  /**
158
- * Object of props passed to the <span/> wrapping the button's content
158
+ * Object of props passed to the `<span>` wrapping the button's content
159
159
  */
160
160
  /**
161
- * Object of props passed to the <span/> wrapping the button's content
161
+ * Object of props passed to the `<span>` wrapping the button's content
162
162
  */
163
163
  contentProps: PropTypes.shape({
164
164
  className: PropTypes.string,
@@ -175,16 +175,18 @@ EuiButtonEmpty.propTypes = {
175
175
  */
176
176
  iconSide: PropTypes.oneOfType([PropTypes.any.isRequired, PropTypes.oneOf([undefined])]),
177
177
  /**
178
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
178
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
179
+ *
180
+ * This span wrapper can be removed by passing `textProps={false}`.
179
181
  */
180
- textProps: PropTypes.shape({
182
+ textProps: PropTypes.oneOfType([PropTypes.shape({
181
183
  className: PropTypes.string,
182
184
  "aria-label": PropTypes.string,
183
185
  "data-test-subj": PropTypes.string,
184
186
  css: PropTypes.any,
185
187
  ref: PropTypes.any,
186
188
  "data-text": PropTypes.string
187
- }),
189
+ }).isRequired, PropTypes.oneOf([false])]),
188
190
  iconSize: PropTypes.any,
189
191
  className: PropTypes.string,
190
192
  "aria-label": PropTypes.string,
@@ -145,16 +145,18 @@ EuiButtonGroup.propTypes = {
145
145
  iconSide: PropTypes.oneOfType([PropTypes.any.isRequired, PropTypes.oneOf([undefined])]),
146
146
  isLoading: PropTypes.bool,
147
147
  /**
148
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
148
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
149
+ *
150
+ * This span wrapper can be removed by passing `textProps={false}`.
149
151
  */
150
- textProps: PropTypes.shape({
152
+ textProps: PropTypes.oneOfType([PropTypes.shape({
151
153
  className: PropTypes.string,
152
154
  "aria-label": PropTypes.string,
153
155
  "data-test-subj": PropTypes.string,
154
156
  css: PropTypes.any,
155
157
  ref: PropTypes.any,
156
158
  "data-text": PropTypes.string
157
- }),
159
+ }).isRequired, PropTypes.oneOf([false])]),
158
160
  iconSize: PropTypes.any,
159
161
  className: PropTypes.string,
160
162
  "aria-label": PropTypes.string,
@@ -110,16 +110,18 @@ EuiButtonGroupButton.propTypes = {
110
110
  iconSide: PropTypes.oneOfType([PropTypes.any.isRequired, PropTypes.oneOf([undefined])]),
111
111
  isLoading: PropTypes.bool,
112
112
  /**
113
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
113
+ * Object of props passed to the `<span>` wrapping the content's text/children only (not icon)
114
+ *
115
+ * This span wrapper can be removed by passing `textProps={false}`.
114
116
  */
115
- textProps: PropTypes.shape({
117
+ textProps: PropTypes.oneOfType([PropTypes.shape({
116
118
  className: PropTypes.string,
117
119
  "aria-label": PropTypes.string,
118
120
  "data-test-subj": PropTypes.string,
119
121
  css: PropTypes.any,
120
122
  ref: PropTypes.any,
121
123
  "data-text": PropTypes.string
122
- }),
124
+ }).isRequired, PropTypes.oneOf([false])]),
123
125
  iconSize: PropTypes.any,
124
126
  className: PropTypes.string,
125
127
  "aria-label": PropTypes.string,
@@ -50,6 +50,7 @@ var Card = function Card() {
50
50
  return ___EmotionJSX(EuiFlexGroup, {
51
51
  gutterSize: "l"
52
52
  }, ___EmotionJSX(EuiFlexItem, null, ___EmotionJSX(EuiCard, {
53
+ "data-test-subj": "cy-card-1",
53
54
  icon: ___EmotionJSX(EuiIcon, {
54
55
  size: "xxl",
55
56
  type: "logoSketch"
@@ -118,24 +119,10 @@ describe('EuiCard', function () {
118
119
  cy.checkAxe();
119
120
  });
120
121
  it('has zero violations after keyboard interaction', function () {
121
- cy.repeatRealPress('Tab');
122
- cy.realPress('Enter');
123
- cy.focused().should('have.attr', 'aria-checked', 'true');
124
- cy.repeatRealPress('Tab');
125
- cy.realPress('Enter');
126
- cy.focused().should('have.attr', 'aria-checked', 'true');
127
- cy.repeatRealPress('Tab');
128
- cy.realPress('Enter');
129
- cy.focused().should('have.attr', 'aria-checked', 'true');
130
- cy.checkAxe();
131
- cy.realPress('Enter');
132
- cy.focused().should('have.attr', 'aria-checked', 'false');
133
- cy.repeatRealPress(['Shift', 'Tab']);
134
- cy.realPress('Enter');
135
- cy.focused().should('have.attr', 'aria-checked', 'false');
136
- cy.repeatRealPress(['Shift', 'Tab']);
137
- cy.realPress('Enter');
138
- cy.focused().should('have.attr', 'aria-checked', 'false');
122
+ cy.get('div[data-test-subj="cy-card-1"]').find('button.euiButtonEmpty').focus();
123
+ cy.realPress('Tab');
124
+ cy.realPress('{enter}');
125
+ cy.get('div[data-test-subj="cy-card-1"]').find('button.euiButton').should('have.attr', 'aria-checked', 'true');
139
126
  cy.checkAxe();
140
127
  });
141
128
  });
@@ -10,7 +10,7 @@ import { css } from '@emotion/react';
10
10
  import { logicalCSS } from '../../global_styling';
11
11
  import { euiShadowFlat } from '../../themes';
12
12
  import { euiHeaderVariables } from '../header/header.styles';
13
- import { euiCollapsibleNavBodyStyles } from './collapsible_nav_body_footer.styles';
13
+ import { hideScrollbars } from './collapsible_nav_body_footer.styles';
14
14
  export var euiCollapsibleNavBetaStyles = function euiCollapsibleNavBetaStyles(euiThemeContext) {
15
15
  var euiTheme = euiThemeContext.euiTheme;
16
16
 
@@ -24,7 +24,7 @@ export var euiCollapsibleNavBetaStyles = function euiCollapsibleNavBetaStyles(eu
24
24
  left: /*#__PURE__*/css(logicalCSS('border-right', euiTheme.border.thin), ";;label:left;"),
25
25
  right: /*#__PURE__*/css(logicalCSS('border-left', euiTheme.border.thin), ";;label:right;"),
26
26
  isPush: /*#__PURE__*/css(euiShadowFlat(euiThemeContext), ";;label:isPush;"),
27
- isPushCollapsed: /*#__PURE__*/css(euiCollapsibleNavBodyStyles._isPushCollapsed, ";;label:isPushCollapsed;"),
27
+ isPushCollapsed: /*#__PURE__*/css(hideScrollbars, ";;label:isPushCollapsed;"),
28
28
  isOverlayFullWidth: /*#__PURE__*/css("&.euiFlyout{", logicalCSS('max-width', '100% !important'), ";};label:isOverlayFullWidth;")
29
29
  };
30
30
  };
@@ -47,9 +47,12 @@ export var EuiCollapsibleNavFooter = function EuiCollapsibleNavFooter(_ref2) {
47
47
  var className = _ref2.className,
48
48
  props = _objectWithoutProperties(_ref2, _excluded2);
49
49
  var classes = classNames('euiCollapsibleNav__footer', className);
50
+ var _useContext2 = useContext(EuiCollapsibleNavContext),
51
+ isCollapsed = _useContext2.isCollapsed,
52
+ isPush = _useContext2.isPush;
50
53
  var euiTheme = useEuiTheme();
51
54
  var styles = euiCollapsibleNavFooterStyles(euiTheme);
52
- var cssStyles = [styles.euiCollapsibleNav__footer];
55
+ var cssStyles = [styles.euiCollapsibleNav__footer, isCollapsed && isPush && styles.isPushCollapsed];
53
56
  return ___EmotionJSX(EuiFlyoutFooter, _extends({
54
57
  className: classes,
55
58
  css: cssStyles
@@ -7,19 +7,22 @@
7
7
  */
8
8
 
9
9
  import { css } from '@emotion/react';
10
- import { logicalCSS } from '../../global_styling';
10
+ import { logicalCSS, euiYScrollWithShadows } from '../../global_styling';
11
+
12
+ // Hide the scrollbar for docked mode (while still keeping the nav scrollable)
13
+ // Otherwise if scrollbars are visible, button icon visibility suffers.
14
+ export var hideScrollbars = "\n scrollbar-width: none; /* Firefox */\n\n &::-webkit-scrollbar {\n display: none; /* Chrome, Edge, & Safari */\n }\n";
11
15
  export var euiCollapsibleNavBodyStyles = {
12
16
  // In case things get really dire responsively, ensure the footer doesn't overtake the body
13
17
  euiCollapsibleNav__body: /*#__PURE__*/css(logicalCSS('min-height', '50%'), ";;label:euiCollapsibleNav__body;"),
14
- get isPushCollapsed() {
15
- return /*#__PURE__*/css(".euiFlyoutBody__overflow{", this._isPushCollapsed, ";};label:isPushCollapsed;");
16
- },
17
- // CSS is reused by main euiCollapsibleNav styles in case the body component isn't used
18
- _isPushCollapsed: "\n /* Hide the scrollbar for docked mode (while still keeping the nav scrollable)\n Otherwise if scrollbars are visible, button icon visibility suffers. */\n scrollbar-width: none; /* Firefox */\n\n &::-webkit-scrollbar {\n display: none; /* Chrome, Edge, & Safari */\n }\n "
18
+ isPushCollapsed: /*#__PURE__*/css(".euiFlyoutBody__overflow{", hideScrollbars, ";};label:isPushCollapsed;")
19
19
  };
20
- export var euiCollapsibleNavFooterStyles = function euiCollapsibleNavFooterStyles(_ref) {
21
- var euiTheme = _ref.euiTheme;
20
+ export var euiCollapsibleNavFooterStyles = function euiCollapsibleNavFooterStyles(euiThemeContext) {
21
+ var euiTheme = euiThemeContext.euiTheme;
22
22
  return {
23
- euiCollapsibleNav__footer: /*#__PURE__*/css("background-color:", euiTheme.colors.emptyShade, ";", logicalCSS('border-top', euiTheme.border.thin), ";;label:euiCollapsibleNav__footer;")
23
+ euiCollapsibleNav__footer: /*#__PURE__*/css("background-color:", euiTheme.colors.emptyShade, ";", logicalCSS('border-top', euiTheme.border.thin), " ", euiYScrollWithShadows(euiThemeContext, {
24
+ side: 'end'
25
+ }), ";;label:euiCollapsibleNav__footer;"),
26
+ isPushCollapsed: /*#__PURE__*/css(hideScrollbars, ";;label:isPushCollapsed;")
24
27
  };
25
28
  };