@elastic/eui 115.0.0 → 116.0.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 (275) hide show
  1. package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  2. package/es/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  3. package/es/components/combo_box/combo_box.a11y.js +5 -5
  4. package/es/components/combo_box/combo_box.js +61 -53
  5. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +147 -84
  6. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +8 -7
  7. package/es/components/context_menu/context_menu.js +19 -21
  8. package/es/components/context_menu/context_menu.styles.js +5 -2
  9. package/es/components/context_menu/context_menu_item.js +69 -58
  10. package/es/components/context_menu/context_menu_item.styles.js +14 -28
  11. package/es/components/context_menu/context_menu_panel.js +37 -21
  12. package/es/components/context_menu/context_menu_panel.styles.js +7 -2
  13. package/es/components/context_menu/context_menu_panel_title.js +124 -0
  14. package/es/components/context_menu/context_menu_panel_title.styles.js +20 -0
  15. package/es/components/context_menu/index.js +2 -1
  16. package/es/components/datagrid/body/cell/data_grid_cell.js +35 -29
  17. package/es/components/datagrid/body/data_grid_body.js +23 -17
  18. package/es/components/datagrid/body/data_grid_body_custom.js +23 -17
  19. package/es/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  20. package/es/components/datagrid/body/header/column_actions.js +1 -2
  21. package/es/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  22. package/es/components/datagrid/controls/column_sorting.js +23 -17
  23. package/es/components/datagrid/utils/in_memory.js +23 -17
  24. package/es/components/filter_group/filter_group.a11y.js +8 -2
  25. package/es/components/flyout/flyout_menu.js +1 -4
  26. package/es/components/form/checkbox/checkbox.js +6 -6
  27. package/es/components/form/checkbox/checkbox.styles.js +1 -22
  28. package/es/components/form/checkbox/checkbox_control.js +78 -0
  29. package/es/components/form/checkbox/checkbox_control.styles.js +40 -0
  30. package/es/components/form/checkbox/index.js +1 -0
  31. package/es/components/form/form.styles.js +2 -1
  32. package/es/components/form/radio/radio.styles.js +1 -1
  33. package/es/components/form/super_select/super_select.js +118 -99
  34. package/es/components/form/super_select/super_select.styles.js +4 -8
  35. package/es/components/form/super_select/super_select_item.js +10 -18
  36. package/es/components/link/external_link_icon.js +4 -2
  37. package/es/components/list_group/list_group.js +20 -34
  38. package/es/components/list_group/list_group.styles.js +2 -16
  39. package/es/components/list_group/list_group_item.js +75 -86
  40. package/es/components/list_group/list_group_item.styles.js +17 -61
  41. package/es/components/list_group/list_group_item_extra_action.styles.js +6 -6
  42. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  43. package/es/components/list_item_layout/_list_item_layout.js +692 -0
  44. package/es/components/list_item_layout/_list_item_layout.styles.js +93 -0
  45. package/es/components/list_item_layout/index.js +9 -0
  46. package/es/components/search_bar/filters/field_value_selection_filter.js +2 -1
  47. package/es/components/selectable/selectable.js +1 -0
  48. package/es/components/selectable/selectable_list/selectable_list.js +52 -36
  49. package/es/components/selectable/selectable_list/selectable_list.styles.js +19 -4
  50. package/es/components/selectable/selectable_list/selectable_list_item.js +45 -152
  51. package/es/components/selectable/selectable_list/utils/get_list_item_size.js +17 -0
  52. package/es/components/selectable/selectable_search/selectable_search.js +4 -1
  53. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  54. package/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  55. package/es/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  56. package/es/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  57. package/es/global_styling/mixins/_helpers.js +32 -11
  58. package/eui.d.ts +10397 -8051
  59. package/i18ntokens.json +2607 -2589
  60. package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  61. package/lib/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  62. package/lib/components/combo_box/combo_box.a11y.js +5 -5
  63. package/lib/components/combo_box/combo_box.js +61 -53
  64. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -82
  65. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  66. package/lib/components/context_menu/context_menu.js +20 -22
  67. package/lib/components/context_menu/context_menu.styles.js +4 -1
  68. package/lib/components/context_menu/context_menu_item.js +70 -59
  69. package/lib/components/context_menu/context_menu_item.styles.js +13 -27
  70. package/lib/components/context_menu/context_menu_panel.js +37 -21
  71. package/lib/components/context_menu/context_menu_panel.styles.js +7 -2
  72. package/lib/components/context_menu/context_menu_panel_title.js +130 -0
  73. package/lib/components/context_menu/context_menu_panel_title.styles.js +26 -0
  74. package/lib/components/context_menu/index.js +8 -1
  75. package/lib/components/datagrid/body/cell/data_grid_cell.js +35 -29
  76. package/lib/components/datagrid/body/data_grid_body.js +23 -17
  77. package/lib/components/datagrid/body/data_grid_body_custom.js +23 -17
  78. package/lib/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  79. package/lib/components/datagrid/body/header/column_actions.js +1 -2
  80. package/lib/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  81. package/lib/components/datagrid/controls/column_sorting.js +23 -17
  82. package/lib/components/datagrid/utils/in_memory.js +23 -17
  83. package/lib/components/filter_group/filter_group.a11y.js +8 -2
  84. package/lib/components/flyout/flyout_menu.js +1 -4
  85. package/lib/components/form/checkbox/checkbox.js +6 -6
  86. package/lib/components/form/checkbox/checkbox.styles.js +1 -22
  87. package/lib/components/form/checkbox/checkbox_control.js +84 -0
  88. package/lib/components/form/checkbox/checkbox_control.styles.js +44 -0
  89. package/lib/components/form/checkbox/index.js +7 -0
  90. package/lib/components/form/form.styles.js +2 -1
  91. package/lib/components/form/radio/radio.styles.js +1 -1
  92. package/lib/components/form/super_select/super_select.js +116 -97
  93. package/lib/components/form/super_select/super_select.styles.js +4 -8
  94. package/lib/components/form/super_select/super_select_item.js +13 -18
  95. package/lib/components/link/external_link_icon.js +4 -2
  96. package/lib/components/list_group/list_group.js +21 -35
  97. package/lib/components/list_group/list_group.styles.js +2 -16
  98. package/lib/components/list_group/list_group_item.js +75 -86
  99. package/lib/components/list_group/list_group_item.styles.js +17 -61
  100. package/lib/components/list_group/list_group_item_extra_action.styles.js +5 -5
  101. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  102. package/lib/components/list_item_layout/_list_item_layout.js +699 -0
  103. package/lib/components/list_item_layout/_list_item_layout.styles.js +97 -0
  104. package/lib/components/list_item_layout/index.js +12 -0
  105. package/lib/components/search_bar/filters/field_value_selection_filter.js +2 -1
  106. package/lib/components/selectable/selectable.js +1 -0
  107. package/lib/components/selectable/selectable_list/selectable_list.js +50 -34
  108. package/lib/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  109. package/lib/components/selectable/selectable_list/selectable_list_item.js +44 -152
  110. package/lib/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  111. package/lib/components/selectable/selectable_search/selectable_search.js +4 -1
  112. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  113. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  114. package/lib/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  115. package/lib/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  116. package/lib/global_styling/mixins/_helpers.js +33 -12
  117. package/optimize/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -4
  118. package/optimize/es/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  119. package/optimize/es/components/combo_box/combo_box.a11y.js +5 -5
  120. package/optimize/es/components/combo_box/combo_box.js +60 -52
  121. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -83
  122. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +8 -7
  123. package/optimize/es/components/context_menu/context_menu.js +18 -13
  124. package/optimize/es/components/context_menu/context_menu.styles.js +5 -2
  125. package/optimize/es/components/context_menu/context_menu_item.js +55 -53
  126. package/optimize/es/components/context_menu/context_menu_item.styles.js +14 -28
  127. package/optimize/es/components/context_menu/context_menu_panel.js +36 -17
  128. package/optimize/es/components/context_menu/context_menu_panel.styles.js +7 -2
  129. package/optimize/es/components/context_menu/context_menu_panel_title.js +53 -0
  130. package/optimize/es/components/context_menu/context_menu_panel_title.styles.js +20 -0
  131. package/optimize/es/components/context_menu/index.js +2 -1
  132. package/optimize/es/components/datagrid/body/header/column_actions.js +1 -2
  133. package/optimize/es/components/filter_group/filter_group.a11y.js +8 -2
  134. package/optimize/es/components/flyout/flyout_menu.js +1 -4
  135. package/optimize/es/components/form/checkbox/checkbox.js +6 -6
  136. package/optimize/es/components/form/checkbox/checkbox.styles.js +1 -22
  137. package/optimize/es/components/form/checkbox/checkbox_control.js +48 -0
  138. package/optimize/es/components/form/checkbox/checkbox_control.styles.js +40 -0
  139. package/optimize/es/components/form/checkbox/index.js +1 -0
  140. package/optimize/es/components/form/form.styles.js +2 -1
  141. package/optimize/es/components/form/radio/radio.styles.js +1 -1
  142. package/optimize/es/components/form/super_select/super_select.js +118 -90
  143. package/optimize/es/components/form/super_select/super_select.styles.js +4 -8
  144. package/optimize/es/components/form/super_select/super_select_item.js +10 -14
  145. package/optimize/es/components/link/external_link_icon.js +4 -2
  146. package/optimize/es/components/list_group/list_group.js +7 -14
  147. package/optimize/es/components/list_group/list_group.styles.js +2 -16
  148. package/optimize/es/components/list_group/list_group_item.js +62 -79
  149. package/optimize/es/components/list_group/list_group_item.styles.js +17 -61
  150. package/optimize/es/components/list_group/list_group_item_extra_action.styles.js +6 -6
  151. package/optimize/es/components/list_item_layout/_list_item_layout.js +353 -0
  152. package/optimize/es/components/list_item_layout/_list_item_layout.styles.js +93 -0
  153. package/optimize/es/components/list_item_layout/index.js +9 -0
  154. package/optimize/es/components/search_bar/filters/field_value_selection_filter.js +2 -1
  155. package/optimize/es/components/selectable/selectable_list/selectable_list.js +48 -33
  156. package/optimize/es/components/selectable/selectable_list/selectable_list.styles.js +19 -4
  157. package/optimize/es/components/selectable/selectable_list/selectable_list_item.js +41 -143
  158. package/optimize/es/components/selectable/selectable_list/utils/get_list_item_size.js +17 -0
  159. package/optimize/es/components/selectable/selectable_search/selectable_search.js +4 -1
  160. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  161. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  162. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  163. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  164. package/optimize/es/global_styling/mixins/_helpers.js +32 -11
  165. package/optimize/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -4
  166. package/optimize/lib/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  167. package/optimize/lib/components/combo_box/combo_box.a11y.js +5 -5
  168. package/optimize/lib/components/combo_box/combo_box.js +60 -52
  169. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +143 -81
  170. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  171. package/optimize/lib/components/context_menu/context_menu.js +19 -14
  172. package/optimize/lib/components/context_menu/context_menu.styles.js +4 -1
  173. package/optimize/lib/components/context_menu/context_menu_item.js +56 -54
  174. package/optimize/lib/components/context_menu/context_menu_item.styles.js +13 -27
  175. package/optimize/lib/components/context_menu/context_menu_panel.js +36 -17
  176. package/optimize/lib/components/context_menu/context_menu_panel.styles.js +7 -2
  177. package/optimize/lib/components/context_menu/context_menu_panel_title.js +59 -0
  178. package/optimize/lib/components/context_menu/context_menu_panel_title.styles.js +26 -0
  179. package/optimize/lib/components/context_menu/index.js +8 -1
  180. package/optimize/lib/components/datagrid/body/header/column_actions.js +1 -2
  181. package/optimize/lib/components/filter_group/filter_group.a11y.js +8 -2
  182. package/optimize/lib/components/flyout/flyout_menu.js +1 -4
  183. package/optimize/lib/components/form/checkbox/checkbox.js +6 -6
  184. package/optimize/lib/components/form/checkbox/checkbox.styles.js +1 -22
  185. package/optimize/lib/components/form/checkbox/checkbox_control.js +54 -0
  186. package/optimize/lib/components/form/checkbox/checkbox_control.styles.js +44 -0
  187. package/optimize/lib/components/form/checkbox/index.js +7 -0
  188. package/optimize/lib/components/form/form.styles.js +2 -1
  189. package/optimize/lib/components/form/radio/radio.styles.js +1 -1
  190. package/optimize/lib/components/form/super_select/super_select.js +116 -88
  191. package/optimize/lib/components/form/super_select/super_select.styles.js +4 -8
  192. package/optimize/lib/components/form/super_select/super_select_item.js +13 -14
  193. package/optimize/lib/components/link/external_link_icon.js +4 -2
  194. package/optimize/lib/components/list_group/list_group.js +8 -15
  195. package/optimize/lib/components/list_group/list_group.styles.js +2 -16
  196. package/optimize/lib/components/list_group/list_group_item.js +62 -79
  197. package/optimize/lib/components/list_group/list_group_item.styles.js +17 -61
  198. package/optimize/lib/components/list_group/list_group_item_extra_action.styles.js +5 -5
  199. package/optimize/lib/components/list_item_layout/_list_item_layout.js +361 -0
  200. package/optimize/lib/components/list_item_layout/_list_item_layout.styles.js +97 -0
  201. package/optimize/lib/components/list_item_layout/index.js +12 -0
  202. package/optimize/lib/components/search_bar/filters/field_value_selection_filter.js +2 -1
  203. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +46 -31
  204. package/optimize/lib/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  205. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.js +41 -143
  206. package/optimize/lib/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  207. package/optimize/lib/components/selectable/selectable_search/selectable_search.js +4 -1
  208. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  209. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  210. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  211. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  212. package/optimize/lib/global_styling/mixins/_helpers.js +33 -12
  213. package/package.json +4 -4
  214. package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  215. package/test-env/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  216. package/test-env/components/combo_box/combo_box.a11y.js +5 -5
  217. package/test-env/components/combo_box/combo_box.js +61 -53
  218. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -82
  219. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  220. package/test-env/components/context_menu/context_menu.js +20 -22
  221. package/test-env/components/context_menu/context_menu.styles.js +4 -1
  222. package/test-env/components/context_menu/context_menu_item.js +67 -59
  223. package/test-env/components/context_menu/context_menu_item.styles.js +13 -27
  224. package/test-env/components/context_menu/context_menu_panel.js +37 -21
  225. package/test-env/components/context_menu/context_menu_panel.styles.js +7 -2
  226. package/test-env/components/context_menu/context_menu_panel_title.js +129 -0
  227. package/test-env/components/context_menu/context_menu_panel_title.styles.js +26 -0
  228. package/test-env/components/context_menu/index.js +8 -1
  229. package/test-env/components/datagrid/body/cell/data_grid_cell.js +35 -29
  230. package/test-env/components/datagrid/body/data_grid_body.js +23 -17
  231. package/test-env/components/datagrid/body/data_grid_body_custom.js +23 -17
  232. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  233. package/test-env/components/datagrid/body/header/column_actions.js +1 -2
  234. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  235. package/test-env/components/datagrid/controls/column_sorting.js +23 -17
  236. package/test-env/components/datagrid/utils/in_memory.js +23 -17
  237. package/test-env/components/filter_group/filter_group.a11y.js +8 -2
  238. package/test-env/components/flyout/flyout_menu.js +1 -4
  239. package/test-env/components/form/checkbox/checkbox.js +6 -6
  240. package/test-env/components/form/checkbox/checkbox.styles.js +1 -22
  241. package/test-env/components/form/checkbox/checkbox_control.js +83 -0
  242. package/test-env/components/form/checkbox/checkbox_control.styles.js +44 -0
  243. package/test-env/components/form/checkbox/index.js +7 -0
  244. package/test-env/components/form/form.styles.js +2 -1
  245. package/test-env/components/form/radio/radio.styles.js +1 -1
  246. package/test-env/components/form/super_select/super_select.js +116 -97
  247. package/test-env/components/form/super_select/super_select.styles.js +4 -8
  248. package/test-env/components/form/super_select/super_select_item.js +13 -18
  249. package/test-env/components/link/external_link_icon.js +4 -2
  250. package/test-env/components/list_group/list_group.js +21 -35
  251. package/test-env/components/list_group/list_group.styles.js +2 -16
  252. package/test-env/components/list_group/list_group_item.js +75 -86
  253. package/test-env/components/list_group/list_group_item.styles.js +17 -61
  254. package/test-env/components/list_group/list_group_item_extra_action.styles.js +5 -5
  255. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  256. package/test-env/components/list_item_layout/_list_item_layout.js +691 -0
  257. package/test-env/components/list_item_layout/_list_item_layout.styles.js +97 -0
  258. package/test-env/components/list_item_layout/index.js +12 -0
  259. package/test-env/components/search_bar/filters/field_value_selection_filter.js +2 -1
  260. package/test-env/components/selectable/selectable.js +1 -0
  261. package/test-env/components/selectable/selectable_list/selectable_list.js +50 -34
  262. package/test-env/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  263. package/test-env/components/selectable/selectable_list/selectable_list_item.js +42 -147
  264. package/test-env/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  265. package/test-env/components/selectable/selectable_search/selectable_search.js +4 -1
  266. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  267. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  268. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  269. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  270. package/test-env/global_styling/mixins/_helpers.js +33 -12
  271. package/es/components/selectable/selectable_list/selectable_list_item.styles.js +0 -55
  272. package/lib/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
  273. package/optimize/es/components/selectable/selectable_list/selectable_list_item.styles.js +0 -55
  274. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
  275. package/test-env/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
@@ -8,8 +8,8 @@ import _inherits from "@babel/runtime/helpers/inherits";
8
8
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
9
  var _excluded = ["isSeparator", "key"],
10
10
  _excluded2 = ["panel", "name", "key", "icon", "onClick"],
11
- _excluded3 = ["id", "title", "items", "content", "width", "initialFocusedItemIndex", "size"],
12
- _excluded4 = ["stylesMemoizer", "panels", "onPanelChange", "className", "initialPanelId", "size"];
11
+ _excluded3 = ["id", "title", "items", "content", "width", "initialFocusedItemIndex"],
12
+ _excluded4 = ["stylesMemoizer", "panels", "onPanelChange", "className", "initialPanelId", "height"];
13
13
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
14
14
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
15
15
  /*
@@ -28,7 +28,6 @@ import { EuiContextMenuPanel } from './context_menu_panel';
28
28
  import { EuiContextMenuItem } from './context_menu_item';
29
29
  import { euiContextMenuStyles } from './context_menu.styles';
30
30
  import { jsx as ___EmotionJSX } from "@emotion/react";
31
- export var SIZES = ['s', 'm'];
32
31
  var isItemSeparator = function isItemSeparator(item) {
33
32
  return item.isSeparator === true;
34
33
  };
@@ -141,10 +140,11 @@ export var EuiContextMenuClass = /*#__PURE__*/function (_Component) {
141
140
  _defineProperty(_this, "mapIdsToRenderedItems", function () {
142
141
  var panels = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
143
142
  var idToRenderedItemsMap = {};
143
+ var idToPanelMap = mapIdsToPanels(panels);
144
144
 
145
145
  // Pre-rendering the items lets us check reference equality inside of EuiContextMenuPanel.
146
146
  panels.forEach(function (panel) {
147
- idToRenderedItemsMap[panel.id] = _this.renderItems(panel.items);
147
+ idToRenderedItemsMap[panel.id] = _this.renderItems(panel.items, idToPanelMap);
148
148
  });
149
149
  return idToRenderedItemsMap;
150
150
  });
@@ -194,6 +194,7 @@ export var EuiContextMenuClass = /*#__PURE__*/function (_Component) {
194
194
  value: function renderItems() {
195
195
  var _this2 = this;
196
196
  var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
197
+ var idToPanelMap = arguments.length > 1 ? arguments[1] : undefined;
197
198
  return items.map(function (item, index) {
198
199
  if (item.renderItem) {
199
200
  var _item$key;
@@ -208,7 +209,8 @@ export var EuiContextMenuClass = /*#__PURE__*/function (_Component) {
208
209
  _rest = _objectWithoutProperties(item, _excluded);
209
210
  return ___EmotionJSX(EuiHorizontalRule, _extends({
210
211
  key: _key,
211
- margin: "none"
212
+ margin: "xs",
213
+ role: "separator"
212
214
  }, _rest));
213
215
  }
214
216
  var panel = item.panel,
@@ -217,6 +219,9 @@ export var EuiContextMenuClass = /*#__PURE__*/function (_Component) {
217
219
  icon = item.icon,
218
220
  onClick = item.onClick,
219
221
  rest = _objectWithoutProperties(item, _excluded2);
222
+ var targetPanel = panel != null ? idToPanelMap[String(panel)] : undefined;
223
+ var ariaHasPopup = panel == null || targetPanel == null ? undefined : targetPanel && Array.isArray(targetPanel.items) && targetPanel.items.length > 0 ? 'menu' : 'true'; // for custom content (no items) we shouldn't indicate it as "menu"
224
+
220
225
  var onClickHandler = panel ? function (event) {
221
226
  if (onClick && event) {
222
227
  event.persist();
@@ -234,7 +239,8 @@ export var EuiContextMenuClass = /*#__PURE__*/function (_Component) {
234
239
  key: key || (typeof name === 'string' ? name : undefined) || index,
235
240
  icon: icon,
236
241
  onClick: onClickHandler,
237
- hasPanel: Boolean(panel)
242
+ hasPanel: Boolean(panel),
243
+ "aria-haspopup": ariaHasPopup
238
244
  }, rest), name);
239
245
  });
240
246
  }
@@ -252,7 +258,6 @@ export var EuiContextMenuClass = /*#__PURE__*/function (_Component) {
252
258
  content = panel.content,
253
259
  _width = panel.width,
254
260
  initialFocusedItemIndex = panel.initialFocusedItemIndex,
255
- _size = panel.size,
256
261
  rest = _objectWithoutProperties(panel, _excluded3);
257
262
 
258
263
  // As above, we need to wait for EuiOutsideClickDetector to complete its logic before
@@ -269,7 +274,7 @@ export var EuiContextMenuClass = /*#__PURE__*/function (_Component) {
269
274
  };
270
275
  return ___EmotionJSX(EuiContextMenuPanel, _extends({
271
276
  key: panelId,
272
- size: this.props.size,
277
+ height: this.props.height,
273
278
  css: cssStyles,
274
279
  onHeightChange: transitionType === 'in' ? this.onIncomingPanelHeightChange : undefined,
275
280
  onTransitionComplete: transitionType === 'out' ? this.onOutGoingPanelTransitionComplete : undefined,
@@ -293,7 +298,7 @@ export var EuiContextMenuClass = /*#__PURE__*/function (_Component) {
293
298
  onPanelChange = _this$props2.onPanelChange,
294
299
  className = _this$props2.className,
295
300
  initialPanelId = _this$props2.initialPanelId,
296
- size = _this$props2.size,
301
+ height = _this$props2.height,
297
302
  rest = _objectWithoutProperties(_this$props2, _excluded4);
298
303
  var incomingPanel = this.renderPanel(this.state.incomingPanelId, 'in');
299
304
  var outgoingPanel;
@@ -303,11 +308,12 @@ export var EuiContextMenuClass = /*#__PURE__*/function (_Component) {
303
308
  var width = this.state.idToPanelMap[this.state.incomingPanelId] && this.state.idToPanelMap[this.state.incomingPanelId].width ? this.state.idToPanelMap[this.state.incomingPanelId].width : undefined;
304
309
  var classes = classNames('euiContextMenu', className);
305
310
  var styles = stylesMemoizer(euiContextMenuStyles);
311
+ var cssStyles = [styles.euiContextMenu, height && styles.fixedHeight];
306
312
  return ___EmotionJSX("div", _extends({
307
- css: styles.euiContextMenu,
313
+ css: cssStyles,
308
314
  className: classes,
309
315
  style: {
310
- height: this.state.height,
316
+ height: height !== null && height !== void 0 ? height : this.state.height,
311
317
  width: width
312
318
  }
313
319
  }, rest), outgoingPanel, incomingPanel);
@@ -331,7 +337,6 @@ export var EuiContextMenuClass = /*#__PURE__*/function (_Component) {
331
337
  }]);
332
338
  }(Component);
333
339
  _defineProperty(EuiContextMenuClass, "defaultProps", {
334
- panels: [],
335
- size: 'm'
340
+ panels: []
336
341
  });
337
342
  export var EuiContextMenu = withEuiStylesMemoizer(EuiContextMenuClass);
@@ -7,7 +7,7 @@
7
7
  */
8
8
 
9
9
  import { css } from '@emotion/react';
10
- import { logicalCSS, mathWithUnits, euiCanAnimate } from '../../global_styling';
10
+ import { logicalCSS, mathWithUnits, euiCanAnimate, euiYScrollWithShadows } from '../../global_styling';
11
11
  export var euiContextMenuVariables = function euiContextMenuVariables(_ref) {
12
12
  var euiTheme = _ref.euiTheme;
13
13
  return {
@@ -21,6 +21,9 @@ export var euiContextMenuStyles = function euiContextMenuStyles(euiThemeContext)
21
21
  var _euiContextMenuVariab = euiContextMenuVariables(euiThemeContext),
22
22
  panelWidth = _euiContextMenuVariab.panelWidth;
23
23
  return {
24
- euiContextMenu: /*#__PURE__*/css(logicalCSS('width', panelWidth), " ", logicalCSS('max-width', '100%'), " position:relative;overflow:hidden;border-radius:", euiTheme.border.radius.medium, ";", euiCanAnimate, "{transition:height ", euiTheme.animation.fast, " ", euiTheme.animation.resistance, ";};label:euiContextMenu;")
24
+ euiContextMenu: /*#__PURE__*/css(logicalCSS('width', panelWidth), " ", logicalCSS('max-width', '100%'), " position:relative;overflow:hidden;border-radius:", euiTheme.border.radius.medium, ";", euiCanAnimate, "{transition:height ", euiTheme.animation.fast, " ", euiTheme.animation.resistance, ";};label:euiContextMenu;"),
25
+ fixedHeight: /*#__PURE__*/css(".euiContextMenuPanel{display:flex;flex-direction:column;", logicalCSS('height', '100%'), ";}.euiContextMenuPanel__list{display:block;flex:1 1 0;", euiYScrollWithShadows(euiThemeContext, {
26
+ hasAnimatedOverflowShadow: true
27
+ }), ";};label:fixedHeight;")
25
28
  };
26
29
  };
@@ -1,6 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["children", "className", "hasPanel", "icon", "buttonRef", "disabled", "layoutAlign", "toolTipContent", "toolTipProps", "href", "target", "rel", "size", "color"];
4
+ var _excluded = ["children", "className", "hasPanel", "icon", "buttonRef", "disabled", "layoutAlign", "toolTipContent", "toolTipProps", "href", "target", "rel", "color", "external"];
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
7
  /*
5
8
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
6
9
  * or more contributor license agreements. Licensed under the Elastic License
@@ -15,10 +18,9 @@ import { useEuiMemoizedStyles, getSecureRelForTarget, cloneElementWithCss } from
15
18
  import { validateHref } from '../../services/security/href_validator';
16
19
  import { keysOf } from '../common';
17
20
  import { EuiIcon } from '../icon';
18
- import { EuiToolTip } from '../tool_tip';
19
21
  import { euiContextMenuItemStyles } from './context_menu_item.styles';
22
+ import { EuiListItemLayout } from '../list_item_layout';
20
23
  import { jsx as ___EmotionJSX } from "@emotion/react";
21
- export var SIZES = ['s', 'm'];
22
24
  var layoutAlignToClassNames = {
23
25
  center: null,
24
26
  top: 'euiContextMenu__itemLayout--top',
@@ -39,15 +41,17 @@ export var EuiContextMenuItem = function EuiContextMenuItem(_ref) {
39
41
  href = _ref.href,
40
42
  target = _ref.target,
41
43
  rel = _ref.rel,
42
- _ref$size = _ref.size,
43
- size = _ref$size === void 0 ? 'm' : _ref$size,
44
- color = _ref.color,
44
+ _ref$color = _ref.color,
45
+ color = _ref$color === void 0 ? 'text' : _ref$color,
46
+ external = _ref.external,
45
47
  rest = _objectWithoutProperties(_ref, _excluded);
46
48
  var isHrefValid = !href || validateHref(href);
47
49
  var disabled = _disabled || !isHrefValid;
48
50
  var classes = classNames('euiContextMenuItem', className);
51
+ var anchorClasses = classNames('eui-displayBlock', toolTipProps === null || toolTipProps === void 0 ? void 0 : toolTipProps.anchorClassName);
49
52
  var styles = useEuiMemoizedStyles(euiContextMenuItemStyles);
50
- var cssStyles = [styles.euiContextMenuItem, styles.sizes[size], styles.layoutAlign[layoutAlign], disabled && styles.disabled, !disabled && color && styles.colors[color]];
53
+ var cssStyles = [styles.euiContextMenuItem, styles.layoutAlign[layoutAlign], !disabled && color !== 'text' && styles.colors[color]];
54
+ var textStyles = [styles.text.euiContextMenuItem__text];
51
55
  var iconInstance = icon && (typeof icon === 'string' ? ___EmotionJSX(EuiIcon, {
52
56
  type: icon,
53
57
  size: "m",
@@ -65,52 +69,50 @@ export var EuiContextMenuItem = function EuiContextMenuItem(_ref) {
65
69
  className: "euiContextMenu__arrow",
66
70
  css: styles.euiContextMenuItem__arrow
67
71
  });
68
- var textStyles = [styles.text.euiContextMenuItem__text, size === 's' && styles.text.s];
69
- var buttonContent = ___EmotionJSX(React.Fragment, null, iconInstance, ___EmotionJSX("span", {
70
- className: "euiContextMenuItem__text",
71
- css: textStyles
72
- }, children), arrow);
73
- var button;
74
- // <a> elements don't respect the `disabled` attribute. So if we're disabled, we'll just pretend
75
- // this is a button and piggyback off its disabled styles.
76
- if (href && !disabled) {
77
- var secureRel = getSecureRelForTarget({
78
- href: href,
79
- target: target,
80
- rel: rel
81
- });
82
- button = ___EmotionJSX("a", _extends({
83
- css: cssStyles,
84
- className: classes,
85
- href: href,
86
- target: target,
87
- rel: secureRel,
88
- ref: buttonRef
89
- }, rest), buttonContent);
90
- } else if (href || rest.onClick || toolTipContent) {
91
- button = ___EmotionJSX("button", _extends({
92
- disabled: disabled,
93
- css: cssStyles,
94
- className: classes,
95
- type: "button",
96
- ref: buttonRef
97
- }, rest), buttonContent);
98
- } else {
99
- button = ___EmotionJSX("div", _extends({
100
- css: cssStyles,
101
- className: classes,
102
- ref: buttonRef
103
- }, rest), buttonContent);
104
- }
105
- if (toolTipContent) {
106
- var anchorClasses = classNames('eui-displayBlock', toolTipProps === null || toolTipProps === void 0 ? void 0 : toolTipProps.anchorClassName);
107
- return ___EmotionJSX(EuiToolTip, _extends({
108
- position: "right"
109
- }, toolTipProps, {
72
+ var isLink = href && !disabled;
73
+ var isButton = !isLink && (href || rest.onClick || toolTipContent);
74
+ var commonProps = {
75
+ css: cssStyles,
76
+ className: classes
77
+ };
78
+ var buttonProps = isButton ? _objectSpread({
79
+ element: 'button',
80
+ type: 'button',
81
+ ref: buttonRef
82
+ }, rest) : {};
83
+ var secureRel = isLink ? getSecureRelForTarget({
84
+ href: href,
85
+ target: target,
86
+ rel: rel
87
+ }) : undefined;
88
+ var linkProps = isLink ? _objectSpread({
89
+ element: 'a',
90
+ href: href,
91
+ target: target,
92
+ rel: secureRel,
93
+ ref: buttonRef,
94
+ external: external
95
+ }, rest) : {};
96
+ var divProps = !isButton && !isLink ? _objectSpread({
97
+ element: 'div',
98
+ ref: buttonRef
99
+ }, rest) : {};
100
+ var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, commonProps), divProps), buttonProps), linkProps);
101
+ return ___EmotionJSX(EuiListItemLayout, _extends({}, props, {
102
+ role: props.role,
103
+ showIndicator: false,
104
+ prepend: iconInstance,
105
+ append: arrow,
106
+ textWrap: "wrap",
107
+ isDisabled: disabled,
108
+ textProps: {
109
+ className: 'euiContextMenuItem__text',
110
+ css: textStyles
111
+ },
112
+ tooltipProps: toolTipContent ? _objectSpread(_objectSpread({}, toolTipProps), {}, {
113
+ position: 'right',
110
114
  anchorClassName: anchorClasses,
111
115
  content: toolTipContent
112
- }), button);
113
- } else {
114
- return button;
115
- }
116
+ }) : undefined
117
+ }), children);
116
118
  };
@@ -8,7 +8,7 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
8
8
  */
9
9
 
10
10
  import { css } from '@emotion/react';
11
- import { logicalCSS, logicalTextAlignCSS, euiFontSize, EXTENDED_BUTTON_COLORS, euiButtonEmptyColor } from '../../global_styling';
11
+ import { logicalCSS, euiButtonEmptyColor, EXTENDED_BUTTON_COLORS } from '../../global_styling';
12
12
  var _ref = process.env.NODE_ENV === "production" ? {
13
13
  name: "4ak4s8-euiContextMenuItem__arrow",
14
14
  styles: "align-self:flex-end;label:euiContextMenuItem__arrow;"
@@ -34,48 +34,34 @@ var _ref3 = process.env.NODE_ENV === "production" ? {
34
34
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
35
35
  };
36
36
  var _ref4 = process.env.NODE_ENV === "production" ? {
37
- name: "1msaet2-bottom",
38
- styles: "align-items:flex-end;label:bottom;"
37
+ name: "flyqrm-center",
38
+ styles: ".euiListItemLayout__prepend{align-self:center;};label:center;"
39
39
  } : {
40
- name: "1msaet2-bottom",
41
- styles: "align-items:flex-end;label:bottom;",
40
+ name: "flyqrm-center",
41
+ styles: ".euiListItemLayout__prepend{align-self:center;};label:center;",
42
42
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
43
43
  };
44
44
  var _ref5 = process.env.NODE_ENV === "production" ? {
45
- name: "1gnwbvd-top",
46
- styles: "align-items:flex-start;label:top;"
45
+ name: "1qfbla9-euiContextMenuItem",
46
+ styles: "display:flex;label:euiContextMenuItem;"
47
47
  } : {
48
- name: "1gnwbvd-top",
49
- styles: "align-items:flex-start;label:top;",
50
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
51
- };
52
- var _ref6 = process.env.NODE_ENV === "production" ? {
53
- name: "8391db-center",
54
- styles: "align-items:center;label:center;"
55
- } : {
56
- name: "8391db-center",
57
- styles: "align-items:center;label:center;",
48
+ name: "1qfbla9-euiContextMenuItem",
49
+ styles: "display:flex;label:euiContextMenuItem;",
58
50
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
59
51
  };
60
52
  export var euiContextMenuItemStyles = function euiContextMenuItemStyles(euiThemeContext) {
61
53
  var euiTheme = euiThemeContext.euiTheme;
62
54
  return {
63
- euiContextMenuItem: /*#__PURE__*/css("display:flex;gap:", euiTheme.size.s, ";", logicalCSS('width', '100%'), " ", logicalTextAlignCSS('left'), " color:", euiTheme.colors.textParagraph, ";outline-offset:-", euiTheme.focus.width, ";&:where(a, button):not(:disabled){&:hover,&:focus{text-decoration:underline;}&:focus{background-color:", euiTheme.focus.backgroundColor, ";}};label:euiContextMenuItem;"),
64
- disabled: /*#__PURE__*/css("color:", euiTheme.colors.textDisabled, ";cursor:default;;label:disabled;"),
55
+ euiContextMenuItem: _ref5,
65
56
  layoutAlign: {
66
- center: _ref6,
67
- top: _ref5,
68
- bottom: _ref4
69
- },
70
- sizes: {
71
- m: /*#__PURE__*/css("padding:", euiTheme.size.m, ";;label:m;"),
72
- s: /*#__PURE__*/css("padding:", euiTheme.size.s, ";;label:s;")
57
+ center: _ref4,
58
+ top: /*#__PURE__*/css(".euiListItemLayout__prepend{align-self:flex-start;", logicalCSS('margin-top', euiTheme.size.s), ";};label:top;"),
59
+ bottom: /*#__PURE__*/css(".euiListItemLayout__prepend{align-self:flex-end;", logicalCSS('margin-bottom', euiTheme.size.s), ";};label:bottom;")
73
60
  },
74
61
  // Children
75
62
  euiContextMenu__icon: _ref3,
76
63
  text: {
77
- euiContextMenuItem__text: _ref2,
78
- s: /*#__PURE__*/css(euiFontSize(euiThemeContext, 's'), ";;label:s;")
64
+ euiContextMenuItem__text: _ref2
79
65
  },
80
66
  euiContextMenuItem__arrow: _ref,
81
67
  // Colors - maps button color names to text color overrides
@@ -6,7 +6,7 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
6
6
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
7
  import _inherits from "@babel/runtime/helpers/inherits";
8
8
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
- var _excluded = ["stylesMemoizer", "children", "className", "onClose", "title", "onHeightChange", "transitionType", "transitionDirection", "onTransitionComplete", "onUseKeyboardToNavigate", "items", "initialFocusedItemIndex", "showNextPanel", "showPreviousPanel", "size"];
9
+ var _excluded = ["stylesMemoizer", "children", "className", "onClose", "title", "onHeightChange", "transitionType", "transitionDirection", "onTransitionComplete", "onUseKeyboardToNavigate", "items", "initialFocusedItemIndex", "showNextPanel", "showPreviousPanel"];
10
10
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
11
11
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
12
12
  /*
@@ -20,12 +20,12 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
20
20
  import React, { cloneElement, Component } from 'react';
21
21
  import classNames from 'classnames';
22
22
  import { tabbable } from 'tabbable';
23
- import { withEuiStylesMemoizer, keys } from '../../services';
23
+ import { withEuiStylesMemoizer, keys, htmlIdGenerator } from '../../services';
24
24
  import { EuiResizeObserver } from '../observer/resize_observer';
25
25
  import { EuiContextMenuItem } from './context_menu_item';
26
26
  import { euiContextMenuPanelStyles } from './context_menu_panel.styles';
27
+ import { EuiContextMenuPanelTitle } from './context_menu_panel_title';
27
28
  import { jsx as ___EmotionJSX } from "@emotion/react";
28
- export var SIZES = ['s', 'm'];
29
29
  export var EuiContextMenuPanelClass = /*#__PURE__*/function (_Component) {
30
30
  function EuiContextMenuPanelClass(props) {
31
31
  var _this;
@@ -71,6 +71,20 @@ export var EuiContextMenuPanelClass = /*#__PURE__*/function (_Component) {
71
71
  });
72
72
  (_this$state$menuItems = _this.state.menuItems[nextFocusedItemIndex]) === null || _this$state$menuItems === void 0 || _this$state$menuItems.focus();
73
73
  });
74
+ /* Ensures that on initial focus of a menuitem the index is updated.
75
+ Otherwise `focusMenuItem()`is not initialized when pressing a key as `onKeyDown`
76
+ only fires on key press after the focus moved into the component */
77
+ _defineProperty(_this, "setInitialFocusedItemIndex", function (event) {
78
+ var _this$props$items2;
79
+ if (!((_this$props$items2 = _this.props.items) !== null && _this$props$items2 !== void 0 && _this$props$items2.length) || !_this.state.menuItems.length || _this.state.focusedItemIndex !== undefined) return;
80
+ var target = event.target;
81
+ var currentIndex = _this.state.menuItems.indexOf(target);
82
+ if (currentIndex >= 0) {
83
+ _this.setState({
84
+ focusedItemIndex: currentIndex
85
+ });
86
+ }
87
+ });
74
88
  _defineProperty(_this, "onKeyDown", function (event) {
75
89
  // If this panel contains items you can use the left arrow key to go back at any time.
76
90
  // But if it doesn't contain items, then you have to focus on the back button specifically,
@@ -151,6 +165,7 @@ export var EuiContextMenuPanelClass = /*#__PURE__*/function (_Component) {
151
165
  _this.getInitialPopoverParent();
152
166
  _this.findMenuItems();
153
167
  });
168
+ _defineProperty(_this, "rootId", htmlIdGenerator());
154
169
  _this.state = {
155
170
  prevProps: {
156
171
  items: _this.props.items
@@ -333,26 +348,26 @@ export var EuiContextMenuPanelClass = /*#__PURE__*/function (_Component) {
333
348
  initialFocusedItemIndex = _this$props2.initialFocusedItemIndex,
334
349
  showNextPanel = _this$props2.showNextPanel,
335
350
  showPreviousPanel = _this$props2.showPreviousPanel,
336
- size = _this$props2.size,
337
351
  rest = _objectWithoutProperties(_this$props2, _excluded);
352
+ var titleId = this.rootId('euiContextMenuPanelTitle');
338
353
  var classes = classNames('euiContextMenuPanel', className);
339
354
  var styles = stylesMemoizer(euiContextMenuPanelStyles);
340
355
  var cssStyles = [styles.euiContextMenuPanel, transitionDirection && transitionType && styles[transitionDirection][transitionType]];
341
- var panelTitle = title && ___EmotionJSX(EuiContextMenuItem, {
342
- css: styles.euiContextMenuPanel__title,
356
+ var panelTitle = title && ___EmotionJSX(EuiContextMenuPanelTitle, {
357
+ title: title,
358
+ id: titleId,
343
359
  className: "euiContextMenuPanel__title",
344
- onClick: onClose,
360
+ onClose: onClose,
345
361
  buttonRef: function buttonRef(node) {
346
- if (onClose) _this3.backButton = node;
347
- },
348
- "data-test-subj": onClose ? 'contextMenuPanelTitleButton' : 'contextMenuPanelTitle',
349
- icon: onClose && 'chevronSingleLeft'
350
- }, title);
351
- var content = items && items.length ? items.map(function (MenuItem) {
352
- var cloneProps = {};
353
- if (size) {
354
- cloneProps.size = size;
362
+ _this3.backButton = node;
355
363
  }
364
+ });
365
+ var isMenu = !!(items && items.length);
366
+ var content = items && items.length ? items.map(function (MenuItem) {
367
+ var _MenuItem$props$role, _MenuItem$props;
368
+ var cloneProps = {
369
+ role: (_MenuItem$props$role = (_MenuItem$props = MenuItem.props) === null || _MenuItem$props === void 0 ? void 0 : _MenuItem$props.role) !== null && _MenuItem$props$role !== void 0 ? _MenuItem$props$role : 'menuitem'
370
+ };
356
371
  return MenuItem.type === EuiContextMenuItem ? /*#__PURE__*/cloneElement(MenuItem, cloneProps) : MenuItem;
357
372
  }) : children;
358
373
  return ___EmotionJSX("div", _extends({
@@ -368,7 +383,11 @@ export var EuiContextMenuPanelClass = /*#__PURE__*/function (_Component) {
368
383
  }
369
384
  }, function (resizeRef) {
370
385
  return ___EmotionJSX("div", {
371
- ref: resizeRef
386
+ ref: resizeRef,
387
+ role: isMenu ? 'menu' : undefined,
388
+ className: "euiContextMenuPanel__list",
389
+ "aria-labelledby": title ? titleId : undefined,
390
+ onFocus: _this3.setInitialFocusedItemIndex
372
391
  }, content);
373
392
  }));
374
393
  }
@@ -11,11 +11,15 @@ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
11
11
  import { css, keyframes } from '@emotion/react';
12
12
  import { logicalCSS, euiCantAnimate } from '../../global_styling';
13
13
  import { euiTitle } from '../title/title.styles';
14
+ import { euiListItemVariables } from '../list_item_layout/_list_item_layout.styles';
14
15
  import { euiContextMenuVariables } from './context_menu.styles';
15
16
  export var euiContextMenuPanelStyles = function euiContextMenuPanelStyles(euiThemeContext) {
16
17
  var euiTheme = euiThemeContext.euiTheme;
17
18
  var _euiContextMenuVariab = euiContextMenuVariables(euiThemeContext),
18
19
  panelWidth = _euiContextMenuVariab.panelWidth;
20
+ var _euiListItemVariables = euiListItemVariables(euiThemeContext),
21
+ spacing = _euiListItemVariables.spacing,
22
+ textPadding = _euiListItemVariables.textPadding;
19
23
  var animations = {
20
24
  transitioning: /*#__PURE__*/css("pointer-events:none;animation-fill-mode:forwards;animation-duration:", euiTheme.animation.normal, ";animation-timing-function:", euiTheme.animation.resistance, ";", euiCantAnimate, "{animation-duration:0s;};label:transitioning;"),
21
25
  inLeft: keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n 0% { transform: translateX(", "); }\n 100% { transform: translateX(0); }\n "])), panelWidth),
@@ -24,7 +28,7 @@ export var euiContextMenuPanelStyles = function euiContextMenuPanelStyles(euiThe
24
28
  outRight: keyframes(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n 0% { transform: translateX(0); }\n 100% { transform: translateX(", "); }\n "])), panelWidth)
25
29
  };
26
30
  return {
27
- euiContextMenuPanel: /*#__PURE__*/css(logicalCSS('width', '100%'), " visibility:visible;outline-offset:-", euiTheme.focus.width, ";&:focus{outline:none;};label:euiContextMenuPanel;"),
31
+ euiContextMenuPanel: /*#__PURE__*/css(logicalCSS('width', '100%'), " padding:", euiTheme.size.s, ";visibility:visible;outline-offset:-", euiTheme.focus.width, ";&:focus{outline:none;};label:euiContextMenuPanel;"),
28
32
  // Panel animations
29
33
  next: {
30
34
  in: /*#__PURE__*/css(animations.transitioning, " animation-name:", animations.inLeft, ";;label:in;"),
@@ -35,6 +39,7 @@ export var euiContextMenuPanelStyles = function euiContextMenuPanelStyles(euiThe
35
39
  out: /*#__PURE__*/css(animations.transitioning, " animation-name:", animations.outRight, ";;label:out;")
36
40
  },
37
41
  // Children
38
- euiContextMenuPanel__title: /*#__PURE__*/css(euiTitle(euiThemeContext, 'xxs'), " ", logicalCSS('border-bottom', euiTheme.border.thin), " &:enabled:focus{background-color:unset;};label:euiContextMenuPanel__title;")
42
+ euiContextMenuPanel__title: /*#__PURE__*/css("display:flex;align-items:center;gap:", spacing.horizontal, ";", euiTitle(euiThemeContext, 'xxs'), " ", logicalCSS('padding-horizontal', spacing.horizontal), ";;label:euiContextMenuPanel__title;"),
43
+ euiContextMenuPanel__label: /*#__PURE__*/css("flex-grow:1;overflow:hidden;", logicalCSS('padding-horizontal', textPadding.horizontal), " ", logicalCSS('padding-vertical', textPadding.vertical), ";;label:euiContextMenuPanel__label;")
39
44
  };
40
45
  };
@@ -0,0 +1,53 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["component", "id", "title", "buttonRef", "className", "onClose", "buttonProps"];
4
+ /*
5
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
6
+ * or more contributor license agreements. Licensed under the Elastic License
7
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
8
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
9
+ * Side Public License, v 1.
10
+ */
11
+
12
+ import React from 'react';
13
+ import classNames from 'classnames';
14
+ import { useEuiMemoizedStyles } from '../../services';
15
+ import { EuiButtonIcon } from '../button';
16
+ import { useEuiI18n } from '../i18n';
17
+ import { euiContextMenuPanelTitleStyles } from './context_menu_panel_title.styles';
18
+ import { jsx as ___EmotionJSX } from "@emotion/react";
19
+ export var EuiContextMenuPanelTitle = function EuiContextMenuPanelTitle(props) {
20
+ var _props$component = props.component,
21
+ Component = _props$component === void 0 ? 'h2' : _props$component,
22
+ id = props.id,
23
+ title = props.title,
24
+ buttonRef = props.buttonRef,
25
+ className = props.className,
26
+ onClose = props.onClose,
27
+ buttonProps = props.buttonProps,
28
+ rest = _objectWithoutProperties(props, _excluded);
29
+ var classes = classNames('euiContextMenuPanelTitle', className);
30
+ var styles = useEuiMemoizedStyles(euiContextMenuPanelTitleStyles);
31
+ var closeButtonId = "".concat(id, "-closeButton");
32
+ var buttonAriaLabel = useEuiI18n('euiContextMenuPanelTitle.ariaLabel', 'Close current panel:');
33
+ return ___EmotionJSX("div", _extends({
34
+ className: classes,
35
+ css: styles.euiContextMenuPanelTitle,
36
+ "data-test-subj": "contextMenuPanelTitle"
37
+ }, rest), onClose && ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiButtonIcon, _extends({
38
+ buttonRef: buttonRef,
39
+ color: "text",
40
+ iconType: "chevronSingleLeft",
41
+ onClick: onClose,
42
+ "data-test-subj": "contextMenuPanelTitleButton",
43
+ id: closeButtonId,
44
+ "aria-label": buttonAriaLabel
45
+ // Uses aria-labelledby to combine aria-label with the panel title for screen readers.
46
+ ,
47
+ "aria-labelledby": "".concat(closeButtonId, " ").concat(id)
48
+ }, buttonProps))), ___EmotionJSX(Component, {
49
+ className: "euiContextMenuPanelTitle__text",
50
+ css: styles.text,
51
+ id: id
52
+ }, title));
53
+ };
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ import { css } from '@emotion/react';
10
+ import { logicalCSS } from '../../global_styling';
11
+ import { euiTitle } from '../title/title.styles';
12
+ import { euiListItemVariables } from '../list_item_layout/_list_item_layout.styles';
13
+ export var euiContextMenuPanelTitleStyles = function euiContextMenuPanelTitleStyles(euiThemeContext) {
14
+ var _euiListItemVariables = euiListItemVariables(euiThemeContext),
15
+ textPadding = _euiListItemVariables.textPadding;
16
+ return {
17
+ euiContextMenuPanelTitle: /*#__PURE__*/css("display:flex;align-items:center;", logicalCSS('padding-horizontal', textPadding.horizontal), " ", euiTitle(euiThemeContext, 'xxs'), ";;label:euiContextMenuPanelTitle;"),
18
+ text: /*#__PURE__*/css("flex-grow:1;overflow:hidden;", logicalCSS('padding-vertical', textPadding.vertical), " ", logicalCSS('padding-horizontal', textPadding.horizontal), ";;label:text;")
19
+ };
20
+ };
@@ -8,4 +8,5 @@
8
8
 
9
9
  export { EuiContextMenu } from './context_menu';
10
10
  export { EuiContextMenuPanel } from './context_menu_panel';
11
- export { EuiContextMenuItem } from './context_menu_item';
11
+ export { EuiContextMenuItem } from './context_menu_item';
12
+ export { EuiContextMenuPanelTitle } from './context_menu_panel_title';
@@ -127,7 +127,7 @@ export var ColumnActions = /*#__PURE__*/memo(function (_ref) {
127
127
  var styles = useEuiMemoizedStyles(euiDataGridHeaderCellStyles);
128
128
  return ___EmotionJSX(EuiPopover, _extends({
129
129
  display: "block",
130
- panelPaddingSize: "none",
130
+ panelPaddingSize: "s",
131
131
  offset: 7,
132
132
  anchorPosition: "downRight",
133
133
  css: styles.euiDataGridHeaderCell__popover,
@@ -146,7 +146,6 @@ export var ColumnActions = /*#__PURE__*/memo(function (_ref) {
146
146
  closePopover: closePopover
147
147
  }, popoverArrowNavigationProps), ___EmotionJSX(EuiListGroup, {
148
148
  listItems: columnActions,
149
- gutterSize: "none",
150
149
  "data-test-subj": "dataGridHeaderCellActionGroup-".concat(id)
151
150
  }));
152
151
  });
@@ -233,10 +233,16 @@ describe('EuiFilterGroup multiselect example', function () {
233
233
  cy.realPress('Tab');
234
234
  cy.repeatRealPress('ArrowDown', 4);
235
235
  cy.realPress('Enter');
236
- cy.get('li[aria-selected="true"]').find('span.euiSelectableListItem__text').should('have.text', 'Dmitri Shostakovich. Checked option. To exclude this option, press Enter.');
236
+ cy.get('input[role="combobox"]').then(function ($input) {
237
+ var activeOptionId = $input.attr('aria-activedescendant');
238
+ cy.get("li[id=\"".concat(activeOptionId, "\"]")).find('span.euiSelectableListItem__text').should('have.text', 'Dmitri Shostakovich. Checked option. To exclude this option, press Enter.');
239
+ });
237
240
  cy.realPress('ArrowDown');
238
241
  cy.repeatRealPress('Enter');
239
- cy.get('li[aria-selected="true"]').find('span.euiSelectableListItem__text').should('have.text', 'Felix Mendelssohn-Bartholdy. Excluded option. To uncheck this option, press Enter.');
242
+ cy.get('input[role="combobox"]').then(function ($input) {
243
+ var activeOptionId = $input.attr('aria-activedescendant');
244
+ cy.get("li[id=\"".concat(activeOptionId, "\"]")).find('span.euiSelectableListItem__text').should('have.text', 'Felix Mendelssohn-Bartholdy. Excluded option. To uncheck this option, press Enter.');
245
+ });
240
246
  cy.checkAxe();
241
247
  });
242
248
  it('has zero violations when filtering by searchbox', function () {
@@ -69,14 +69,11 @@ var HistoryPopover = function HistoryPopover(_ref) {
69
69
  },
70
70
  panelPaddingSize: "xs",
71
71
  anchorPosition: "downLeft"
72
- }, ___EmotionJSX(EuiListGroup, {
73
- gutterSize: "none"
74
- }, items.map(function (item, index) {
72
+ }, ___EmotionJSX(EuiListGroup, null, items.map(function (item, index) {
75
73
  return ___EmotionJSX(EuiListGroupItem, {
76
74
  key: "history-item-".concat(index),
77
75
  label: item.title,
78
76
  iconType: item.iconType,
79
- size: "s",
80
77
  onClick: function onClick() {
81
78
  item.onClick();
82
79
  setIsPopoverOpen(false);