@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
@@ -15,17 +15,17 @@ var _mark = require("../../mark");
15
15
  var _text = require("../../text");
16
16
  var _loading = require("../../loading");
17
17
  var _i18n = require("../../i18n");
18
- var _filter_select_item = require("../../filter_group/filter_select_item");
18
+ var _selectable_list = require("../../selectable/selectable_list/selectable_list.styles");
19
+ var _get_list_item_size = require("../../selectable/selectable_list/utils/get_list_item_size");
19
20
  var _badge = require("../../badge");
20
21
  var _text_truncate = require("../../text_truncate");
21
22
  var _input_popover = require("../../popover/input_popover");
22
- var _utils = require("../utils");
23
- var _combo_box_title = require("./combo_box_title");
23
+ var _list_item_layout = require("../../list_item_layout");
24
24
  var _combo_box_options_list = require("./combo_box_options_list.styles");
25
25
  var _react2 = require("@emotion/react");
26
26
  var _excluded = ["children"],
27
- _excluded2 = ["key", "isGroupLabelOption", "label", "value", "prepend", "append", "truncationProps"],
28
- _excluded3 = ["data-test-subj", "activeOptionIndex", "areAllOptionsSelected", "customOptionText", "fullWidth", "getSelectedOptionForSearchValue", "isCaseSensitive", "isLoading", "listRef", "matchingOptions", "onCloseList", "onCreateOption", "onOptionClick", "onOptionEnterKey", "onScroll", "options", "renderOption", "rootId", "rowHeight", "scrollToIndex", "searchValue", "selectedOptions", "singleSelection", "delimiter", "truncationProps", "listboxAriaLabel", "setListOptionRefs"];
27
+ _excluded2 = ["key", "className", "isGroupLabelOption", "label", "value", "prepend", "append", "truncationProps", "toolTipContent", "toolTipProps"],
28
+ _excluded3 = ["data-test-subj", "activeOptionIndex", "areAllOptionsSelected", "customOptionText", "fullWidth", "getSelectedOptionForSearchValue", "isCaseSensitive", "isLoading", "listRef", "matchingOptions", "onCloseList", "onCreateOption", "onOptionClick", "onOptionEnterKey", "onScroll", "options", "renderOption", "rootId", "rowHeight", "scrollToIndex", "searchValue", "selectedOptions", "singleSelection", "delimiter", "onFocusBadge", "truncationProps", "listboxAriaLabel", "setListOptionRefs"];
29
29
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
30
30
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
31
31
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -69,13 +69,20 @@ var EuiComboBoxOptionsList = exports.EuiComboBoxOptionsList = /*#__PURE__*/funct
69
69
  }
70
70
  _this = _callSuper(this, EuiComboBoxOptionsList, [].concat(args));
71
71
  _defineProperty(_this, "listRef", null);
72
+ _defineProperty(_this, "listBoxRef", /*#__PURE__*/(0, _react.createRef)());
73
+ _defineProperty(_this, "optionRefs", {});
72
74
  _defineProperty(_this, "setListRef", function (ref) {
73
75
  _this.listRef = ref;
74
76
  });
77
+ _defineProperty(_this, "setOptionRef", function (ref, index) {
78
+ var _this$props$setListOp, _this$props;
79
+ _this.optionRefs[index] = ref;
80
+ (_this$props$setListOp = (_this$props = _this.props).setListOptionRefs) === null || _this$props$setListOp === void 0 || _this$props$setListOp.call(_this$props, ref, index);
81
+ });
75
82
  _defineProperty(_this, "ListInnerElement", function (_ref) {
76
83
  var children = _ref.children,
77
84
  rest = _objectWithoutProperties(_ref, _excluded);
78
- return (0, _react2.jsx)("div", _extends({}, rest, _this.getListInnerElementProps()), children);
85
+ return (0, _react2.jsx)("ul", _extends({}, rest, _this.getListInnerElementProps()), children);
79
86
  });
80
87
  _defineProperty(_this, "ListRow", function (_ref2) {
81
88
  var _option$key;
@@ -84,33 +91,43 @@ var EuiComboBoxOptionsList = exports.EuiComboBoxOptionsList = /*#__PURE__*/funct
84
91
  style = _ref2.style;
85
92
  var option = data[index];
86
93
  var key = option.key,
94
+ className = option.className,
87
95
  isGroupLabelOption = option.isGroupLabelOption,
88
96
  label = option.label,
89
97
  value = option.value,
90
98
  prepend = option.prepend,
91
99
  append = option.append,
92
100
  _truncationProps = option.truncationProps,
101
+ toolTipContent = option.toolTipContent,
102
+ toolTipProps = option.toolTipProps,
93
103
  rest = _objectWithoutProperties(option, _excluded2);
94
- var _this$props = _this.props,
95
- singleSelection = _this$props.singleSelection,
96
- selectedOptions = _this$props.selectedOptions,
97
- onOptionClick = _this$props.onOptionClick,
98
- activeOptionIndex = _this$props.activeOptionIndex,
99
- renderOption = _this$props.renderOption,
100
- searchValue = _this$props.searchValue,
101
- rootId = _this$props.rootId,
102
- matchingOptions = _this$props.matchingOptions,
103
- setListOptionRefs = _this$props.setListOptionRefs,
104
- rowHeight = _this$props.rowHeight;
104
+ var _this$props2 = _this.props,
105
+ options = _this$props2.options,
106
+ singleSelection = _this$props2.singleSelection,
107
+ selectedOptions = _this$props2.selectedOptions,
108
+ onOptionClick = _this$props2.onOptionClick,
109
+ activeOptionIndex = _this$props2.activeOptionIndex,
110
+ renderOption = _this$props2.renderOption,
111
+ searchValue = _this$props2.searchValue,
112
+ rootId = _this$props2.rootId,
113
+ matchingOptions = _this$props2.matchingOptions,
114
+ onFocusBadge = _this$props2.onFocusBadge,
115
+ rowHeight = _this$props2.rowHeight;
105
116
  var optionIndex = matchingOptions.indexOf(option);
106
117
  var hasTruncationProps = _this.props.truncationProps || _truncationProps;
107
118
  var truncationProps = hasTruncationProps ? // Individual truncation settings should override component prop
108
119
  _objectSpread(_objectSpread({}, _this.props.truncationProps), _truncationProps) : undefined;
109
120
  if (isGroupLabelOption) {
110
- return (0, _react2.jsx)("div", {
111
- key: key !== null && key !== void 0 ? key : label,
112
- style: style
113
- }, (0, _react2.jsx)(_combo_box_title.EuiComboBoxTitle, null, prepend, label, append));
121
+ return (0, _react2.jsx)(_services.RenderWithEuiStylesMemoizer, null, function (stylesMemoizer) {
122
+ var styles = stylesMemoizer(_selectable_list.euiSelectableListGroupLabelStyles);
123
+ return (0, _react2.jsx)("li", {
124
+ key: key !== null && key !== void 0 ? key : label,
125
+ style: style,
126
+ role: "presentation",
127
+ className: "euiComboBoxTitle",
128
+ css: styles.groupLabel
129
+ }, prepend, label, append);
130
+ });
114
131
  }
115
132
  var checked = undefined;
116
133
  if (singleSelection && selectedOptions.length && selectedOptions[0].label === label && selectedOptions[0].key === key) {
@@ -118,40 +135,54 @@ var EuiComboBoxOptionsList = exports.EuiComboBoxOptionsList = /*#__PURE__*/funct
118
135
  }
119
136
  var optionIsFocused = activeOptionIndex === index;
120
137
  var optionIsDisabled = option.hasOwnProperty('disabled') && option.disabled === true;
121
- return (0, _react2.jsx)(_filter_select_item.EuiFilterSelectItem, _extends({
122
- style: style,
138
+ var hasOnFocusBadge = onFocusBadge && optionIsFocused && !optionIsDisabled;
139
+ return (0, _react2.jsx)(_list_item_layout.EuiListItemLayout, _extends({
140
+ element: "li",
141
+ role: "option"
142
+ // uses `aria-selected` over `aria-checked` for multi-selection as the selected options are removed from the list
143
+ ,
144
+ selectionMode: "selected",
145
+ className: (0, _classnames.default)('euiComboBoxOption', className),
146
+ ref: function ref(node) {
147
+ return _this.setOptionRef(node, index);
148
+ }
149
+ // uses the original `options` array for the index to ensure a stable `id`, otherwise `aria-activedescendant`
150
+ // loses focus on selecting an option (due to actively removing it from the list)
151
+ ,
152
+ id: rootId("_option-".concat(options.indexOf(option))),
123
153
  key: (_option$key = option.key) !== null && _option$key !== void 0 ? _option$key : option.label,
154
+ title: label,
155
+ prepend: option.prepend,
156
+ append: hasOnFocusBadge ? (0, _react2.jsx)(_react.default.Fragment, null, option.append, hitEnterBadge) : option.append,
157
+ checked: checked,
158
+ isFocused: optionIsFocused,
159
+ isSelected: !optionIsDisabled && checked !== undefined,
160
+ isDisabled: optionIsDisabled,
161
+ isSingleSelection: !!singleSelection,
162
+ showIndicator: !!singleSelection,
163
+ textWrap: rowHeight !== 'auto' ? 'truncate' : 'wrap',
164
+ tooltipProps: toolTipContent && !optionIsDisabled ? _objectSpread(_objectSpread({}, toolTipProps), {}, {
165
+ content: toolTipContent
166
+ }) : undefined,
167
+ style: style,
168
+ "aria-setsize": matchingOptions.length,
169
+ "aria-posinset": optionIndex + 1,
170
+ contentProps: {
171
+ className: 'euiComboBoxOption__content'
172
+ },
124
173
  onClick: function onClick() {
125
174
  if (onOptionClick) {
126
175
  onOptionClick(option);
127
176
  }
128
- },
129
- isFocused: optionIsFocused,
130
- checked: checked,
131
- showIcons: singleSelection ? true : false,
132
- truncateContent: rowHeight !== 'auto',
133
- id: rootId("_option-".concat(index)),
134
- title: label,
135
- "aria-setsize": matchingOptions.length,
136
- "aria-posinset": optionIndex + 1,
137
- forwardRef: function forwardRef(ref) {
138
- return setListOptionRefs(ref, index);
139
177
  }
140
- }, rest), (0, _react2.jsx)("span", {
141
- className: "euiComboBoxOption__contentWrapper"
142
- }, (0, _react2.jsx)(_utils.EuiComboBoxOptionAppendPrepend, {
143
- option: option,
144
- classNamePrefix: "euiComboBoxOption",
145
- marginSize: "s"
146
- }, (0, _react2.jsx)("span", {
147
- className: (0, _classnames.default)('euiComboBoxOption__content', rowHeight !== 'auto' && 'eui-textTruncate')
148
- }, renderOption ? renderOption(option, searchValue, 'euiComboBoxOption__renderOption') : rowHeight === 'auto' ? _this.renderVariableHeightOption(label) : _this.renderTruncatedOption(label, truncationProps))), optionIsFocused && !optionIsDisabled ? hitEnterBadge : null));
178
+ }, rest), renderOption ? renderOption(option, searchValue, 'euiComboBoxOption__renderOption') : rowHeight === 'auto' ? _this.renderVariableHeightOption(label) : _this.renderTruncatedOption(label, truncationProps));
149
179
  });
150
180
  _defineProperty(_this, "getListInnerElementProps", function () {
151
181
  return {
152
182
  'aria-label': _this.props.listboxAriaLabel,
153
183
  id: _this.props.rootId('listbox'),
154
184
  role: 'listbox',
185
+ 'aria-multiselectable': _this.props.singleSelection === false ? true : undefined,
155
186
  tabIndex: 0
156
187
  };
157
188
  });
@@ -205,49 +236,66 @@ var EuiComboBoxOptionsList = exports.EuiComboBoxOptionsList = /*#__PURE__*/funct
205
236
  // just highlight the entire truncated text
206
237
  (0, _react2.jsx)(_mark.EuiMark, null, text));
207
238
  });
239
+ _defineProperty(_this, "getItemSize", function (index) {
240
+ var _ref3 = _this.props,
241
+ rowHeight = _ref3.rowHeight;
242
+ var option = _this.props.matchingOptions[index];
243
+ return (0, _get_list_item_size.getListItemSize)(index, rowHeight, !!(option !== null && option !== void 0 && option.isGroupLabelOption));
244
+ });
208
245
  return _this;
209
246
  }
210
247
  _inherits(EuiComboBoxOptionsList, _Component);
211
248
  return _createClass(EuiComboBoxOptionsList, [{
212
249
  key: "componentDidUpdate",
213
250
  value: function componentDidUpdate(prevProps) {
214
- if (this.listRef && typeof this.props.activeOptionIndex !== 'undefined' && this.props.activeOptionIndex !== prevProps.activeOptionIndex && this.props.rowHeight !== 'auto') {
215
- this.listRef.scrollToItem(this.props.activeOptionIndex, 'auto');
251
+ var _this$props3 = this.props,
252
+ activeOptionIndex = _this$props3.activeOptionIndex,
253
+ rowHeight = _this$props3.rowHeight;
254
+ if (this.listRef && typeof activeOptionIndex !== 'undefined' && activeOptionIndex !== prevProps.activeOptionIndex && rowHeight !== 'auto') {
255
+ // NOTE: The 'auto' setting results in the item being scrolled to the top/end edge;
256
+ // We could consider changing it to 'center' to keep items further way from the listbox edges.
257
+ this.listRef.scrollToItem(activeOptionIndex, 'auto');
258
+ } else if (rowHeight === 'auto') {
259
+ var _this$optionRefs, _this$optionRefs$scro;
260
+ (_this$optionRefs = this.optionRefs[activeOptionIndex !== null && activeOptionIndex !== void 0 ? activeOptionIndex : 0]) === null || _this$optionRefs === void 0 || (_this$optionRefs$scro = _this$optionRefs.scrollIntoView) === null || _this$optionRefs$scro === void 0 || _this$optionRefs$scro.call(_this$optionRefs, {
261
+ block: 'nearest'
262
+ });
216
263
  }
217
264
  }
218
265
  }, {
219
266
  key: "render",
220
267
  value: function render() {
221
268
  var _this2 = this;
222
- var _this$props2 = this.props,
223
- dataTestSubj = _this$props2['data-test-subj'],
224
- activeOptionIndex = _this$props2.activeOptionIndex,
225
- areAllOptionsSelected = _this$props2.areAllOptionsSelected,
226
- customOptionText = _this$props2.customOptionText,
227
- fullWidth = _this$props2.fullWidth,
228
- getSelectedOptionForSearchValue = _this$props2.getSelectedOptionForSearchValue,
229
- isCaseSensitive = _this$props2.isCaseSensitive,
230
- isLoading = _this$props2.isLoading,
231
- listRef = _this$props2.listRef,
232
- matchingOptions = _this$props2.matchingOptions,
233
- onCloseList = _this$props2.onCloseList,
234
- onCreateOption = _this$props2.onCreateOption,
235
- onOptionClick = _this$props2.onOptionClick,
236
- onOptionEnterKey = _this$props2.onOptionEnterKey,
237
- onScroll = _this$props2.onScroll,
238
- options = _this$props2.options,
239
- renderOption = _this$props2.renderOption,
240
- rootId = _this$props2.rootId,
241
- rowHeight = _this$props2.rowHeight,
242
- scrollToIndex = _this$props2.scrollToIndex,
243
- searchValue = _this$props2.searchValue,
244
- selectedOptions = _this$props2.selectedOptions,
245
- singleSelection = _this$props2.singleSelection,
246
- delimiter = _this$props2.delimiter,
247
- truncationProps = _this$props2.truncationProps,
248
- listboxAriaLabel = _this$props2.listboxAriaLabel,
249
- setListOptionRefs = _this$props2.setListOptionRefs,
250
- rest = _objectWithoutProperties(_this$props2, _excluded3);
269
+ var _this$props4 = this.props,
270
+ dataTestSubj = _this$props4['data-test-subj'],
271
+ activeOptionIndex = _this$props4.activeOptionIndex,
272
+ areAllOptionsSelected = _this$props4.areAllOptionsSelected,
273
+ customOptionText = _this$props4.customOptionText,
274
+ fullWidth = _this$props4.fullWidth,
275
+ getSelectedOptionForSearchValue = _this$props4.getSelectedOptionForSearchValue,
276
+ isCaseSensitive = _this$props4.isCaseSensitive,
277
+ isLoading = _this$props4.isLoading,
278
+ listRef = _this$props4.listRef,
279
+ matchingOptions = _this$props4.matchingOptions,
280
+ onCloseList = _this$props4.onCloseList,
281
+ onCreateOption = _this$props4.onCreateOption,
282
+ onOptionClick = _this$props4.onOptionClick,
283
+ onOptionEnterKey = _this$props4.onOptionEnterKey,
284
+ onScroll = _this$props4.onScroll,
285
+ options = _this$props4.options,
286
+ renderOption = _this$props4.renderOption,
287
+ rootId = _this$props4.rootId,
288
+ rowHeight = _this$props4.rowHeight,
289
+ scrollToIndex = _this$props4.scrollToIndex,
290
+ searchValue = _this$props4.searchValue,
291
+ selectedOptions = _this$props4.selectedOptions,
292
+ singleSelection = _this$props4.singleSelection,
293
+ delimiter = _this$props4.delimiter,
294
+ onFocusBadge = _this$props4.onFocusBadge,
295
+ truncationProps = _this$props4.truncationProps,
296
+ listboxAriaLabel = _this$props4.listboxAriaLabel,
297
+ setListOptionRefs = _this$props4.setListOptionRefs,
298
+ rest = _objectWithoutProperties(_this$props4, _excluded3);
251
299
  var emptyStateContent;
252
300
  if (isLoading) {
253
301
  emptyStateContent = (0, _react2.jsx)(_flex.EuiFlexGroup, {
@@ -345,6 +393,10 @@ var EuiComboBoxOptionsList = exports.EuiComboBoxOptionsList = /*#__PURE__*/funct
345
393
  // bounded by max-height of .euiComboBoxOptionsList
346
394
  boundedHeight = height > _combo_box_options_list.LIST_MAX_HEIGHT ? _combo_box_options_list.LIST_MAX_HEIGHT : height;
347
395
  }
396
+
397
+ /* We need to consider the panel padding (2 * 8px) but should only subtract it if
398
+ the panel width has already been set. */
399
+ var listWidth = this.context && this.context > 0 ? this.context - 16 : this.context;
348
400
  return (0, _react2.jsx)(_services.RenderWithEuiStylesMemoizer, null, function (stylesMemoizer) {
349
401
  var styles = stylesMemoizer(_combo_box_options_list.euiComboBoxOptionListStyles);
350
402
  return (0, _react2.jsx)("div", _extends({
@@ -352,29 +404,39 @@ var EuiComboBoxOptionsList = exports.EuiComboBoxOptionsList = /*#__PURE__*/funct
352
404
  className: "euiComboBoxOptionsList",
353
405
  "data-test-subj": (0, _classnames.default)('comboBoxOptionsList', dataTestSubj),
354
406
  ref: listRef
355
- }, rest), emptyStateContent ? (0, _react2.jsx)(_text.EuiText, {
407
+ }, rest, {
408
+ onMouseDown: function onMouseDown(e) {
409
+ // prevent focus shifting; expected behavior to keep focus in the input
410
+ e.preventDefault();
411
+ }
412
+ }), emptyStateContent ? (0, _react2.jsx)(_text.EuiText, {
356
413
  size: "xs",
357
414
  css: styles.euiComboBoxOptionsList__empty,
358
415
  className: "euiComboBoxOptionsList__empty"
359
- }, emptyStateContent) : rowHeight === 'auto' ? (0, _react2.jsx)("div", _this2.getListInnerElementProps(), matchingOptions.map(function (_, index) {
416
+ }, emptyStateContent) : rowHeight === 'auto' ? (0, _react2.jsx)("ul", _extends({
417
+ ref: _this2.listBoxRef
418
+ }, _this2.getListInnerElementProps()), matchingOptions.map(function (_, index) {
360
419
  return (0, _react2.jsx)(_this2.ListRow, {
361
420
  data: matchingOptions,
362
421
  index: index,
363
- key: index // same as FixedSizeList's default
422
+ key: index // same as VariableSizeList's default
364
423
  ,
365
424
  style: {}
366
425
  });
367
- })) : (0, _react2.jsx)(_reactWindow.FixedSizeList, {
426
+ })) : (0, _react2.jsx)(_reactWindow.VariableSizeList, {
368
427
  css: styles.euiComboBoxOptionList__virtualization,
369
428
  className: "euiComboBoxOptionsList__virtualization",
370
429
  height: boundedHeight,
371
430
  onScroll: onScroll,
372
431
  itemCount: matchingOptions.length,
373
- itemSize: rowHeight,
374
- itemData: matchingOptions,
432
+ itemSize: _this2.getItemSize,
433
+ itemData: matchingOptions
434
+ // Prevents scrollbar jump before VariableSizeList populates the cached size
435
+ ,
436
+ estimatedItemSize: rowHeight,
375
437
  ref: _this2.setListRef,
376
438
  innerElementType: _this2.ListInnerElement,
377
- width: _this2.context
439
+ width: listWidth
378
440
  }, _this2.ListRow));
379
441
  });
380
442
  }
@@ -528,5 +590,6 @@ EuiComboBoxOptionsList.propTypes = {
528
590
  asPlainText: _propTypes.default.bool
529
591
  }).isRequired]),
530
592
  delimiter: _propTypes.default.string,
531
- truncationProps: _propTypes.default.any
593
+ truncationProps: _propTypes.default.any,
594
+ onFocusBadge: _propTypes.default.bool
532
595
  };
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.euiComboBoxOptionListStyles = exports.LIST_MAX_HEIGHT = void 0;
7
7
  var _react = require("@emotion/react");
8
8
  var _global_styling = require("../../../global_styling");
9
- var _title = require("../../title/title.styles");
10
9
  /*
11
10
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
12
11
  * or more contributor license agreements. Licensed under the Elastic License
@@ -19,14 +18,16 @@ var LIST_MAX_HEIGHT = exports.LIST_MAX_HEIGHT = 200;
19
18
  var euiComboBoxOptionListStyles = exports.euiComboBoxOptionListStyles = function euiComboBoxOptionListStyles(euiThemeContext) {
20
19
  var euiTheme = euiThemeContext.euiTheme;
21
20
  return {
22
- euiComboBoxOptionList: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('max-height', "".concat(LIST_MAX_HEIGHT, "px")), " overflow:hidden;.euiTextTruncate{pointer-events:none;}.euiComboBoxOption__contentWrapper{display:flex;align-items:center;}.euiComboBoxOption__content{flex:1;text-align:start;overflow-wrap:anywhere;}.euiComboBoxOption__emptyStateText{flex:1;text-align:start;", (0, _global_styling.logicalCSS)('margin-bottom', 0), ";}.euiComboBoxOption__enterBadge{", (0, _global_styling.logicalCSS)('margin-left', euiTheme.size.xs), ";}.euiComboBoxTitle{display:flex;", (0, _global_styling.logicalCSS)('padding-horizontal', euiTheme.size.s), (0, _global_styling.logicalCSS)('padding-top', (0, _global_styling.mathWithUnits)(euiTheme.size.s, function (x) {
23
- return x + 1;
24
- })), " ", (0, _global_styling.logicalCSS)('padding-bottom', euiTheme.size.xs), " ", (0, _title.euiTitle)(euiThemeContext, 'xxxs'), ";};label:euiComboBoxOptionList;"),
21
+ euiComboBoxOptionList: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('max-height', "".concat(LIST_MAX_HEIGHT, "px")), " overflow:hidden;.euiTextTruncate{pointer-events:none;}.euiComboBoxOption__contentWrapper{display:flex;align-items:center;}.euiComboBoxOption__content{flex:1;text-align:start;overflow-wrap:anywhere;}.euiComboBoxOption__emptyStateText{flex:1;text-align:start;", (0, _global_styling.logicalCSS)('margin-bottom', 0), ";}.euiComboBoxOption__enterBadge{", (0, _global_styling.logicalCSS)('margin-left', euiTheme.size.xs), ";};label:euiComboBoxOptionList;"),
25
22
  /* eslint-disable local/css-logical-properties */
26
- hasRowHeightAuto: /*#__PURE__*/(0, _react.css)("overflow-y:auto;.euiComboBoxOption__contentWrapper{align-items:flex-start;}", (0, _global_styling.euiScrollBarStyles)(euiThemeContext), ";;label:hasRowHeightAuto;"),
23
+ hasRowHeightAuto: /*#__PURE__*/(0, _react.css)((0, _global_styling.euiYScrollWithShadows)(euiThemeContext, {
24
+ hasAnimatedOverflowShadow: true
25
+ }), " .euiComboBoxOption__contentWrapper{align-items:flex-start;}", (0, _global_styling.euiScrollBarStyles)(euiThemeContext), ";;label:hasRowHeightAuto;"),
27
26
  /* eslint-enable local/css-logical-properties */
28
27
 
29
- euiComboBoxOptionList__virtualization: /*#__PURE__*/(0, _react.css)((0, _global_styling.euiScrollBarStyles)(euiThemeContext), ";;label:euiComboBoxOptionList__virtualization;"),
28
+ euiComboBoxOptionList__virtualization: /*#__PURE__*/(0, _react.css)((0, _global_styling.euiYScrollWithShadows)(euiThemeContext, {
29
+ hasAnimatedOverflowShadow: true
30
+ }), ";;label:euiComboBoxOptionList__virtualization;"),
30
31
  euiComboBoxOptionsList__empty: /*#__PURE__*/(0, _react.css)("padding:", euiTheme.size.s, ";text-align:center;", (0, _global_styling.euiTextBreakWord)(), ";;label:euiComboBoxOptionsList__empty;")
31
32
  };
32
33
  };
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.SIZES = exports.EuiContextMenuClass = exports.EuiContextMenu = void 0;
6
+ exports.EuiContextMenuClass = exports.EuiContextMenu = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
@@ -15,8 +15,8 @@ var _context_menu = require("./context_menu.styles");
15
15
  var _react2 = require("@emotion/react");
16
16
  var _excluded = ["isSeparator", "key"],
17
17
  _excluded2 = ["panel", "name", "key", "icon", "onClick"],
18
- _excluded3 = ["id", "title", "items", "content", "width", "initialFocusedItemIndex", "size"],
19
- _excluded4 = ["stylesMemoizer", "panels", "onPanelChange", "className", "initialPanelId", "size"];
18
+ _excluded3 = ["id", "title", "items", "content", "width", "initialFocusedItemIndex"],
19
+ _excluded4 = ["stylesMemoizer", "panels", "onPanelChange", "className", "initialPanelId", "height"];
20
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
21
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
22
22
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -43,7 +43,6 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
43
43
  * in compliance with, at your election, the Elastic License 2.0 or the Server
44
44
  * Side Public License, v 1.
45
45
  */
46
- var SIZES = exports.SIZES = ['s', 'm'];
47
46
  var isItemSeparator = function isItemSeparator(item) {
48
47
  return item.isSeparator === true;
49
48
  };
@@ -156,10 +155,11 @@ var EuiContextMenuClass = exports.EuiContextMenuClass = /*#__PURE__*/function (_
156
155
  _defineProperty(_this, "mapIdsToRenderedItems", function () {
157
156
  var panels = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
158
157
  var idToRenderedItemsMap = {};
158
+ var idToPanelMap = mapIdsToPanels(panels);
159
159
 
160
160
  // Pre-rendering the items lets us check reference equality inside of EuiContextMenuPanel.
161
161
  panels.forEach(function (panel) {
162
- idToRenderedItemsMap[panel.id] = _this.renderItems(panel.items);
162
+ idToRenderedItemsMap[panel.id] = _this.renderItems(panel.items, idToPanelMap);
163
163
  });
164
164
  return idToRenderedItemsMap;
165
165
  });
@@ -209,6 +209,7 @@ var EuiContextMenuClass = exports.EuiContextMenuClass = /*#__PURE__*/function (_
209
209
  value: function renderItems() {
210
210
  var _this2 = this;
211
211
  var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
212
+ var idToPanelMap = arguments.length > 1 ? arguments[1] : undefined;
212
213
  return items.map(function (item, index) {
213
214
  if (item.renderItem) {
214
215
  var _item$key;
@@ -223,7 +224,8 @@ var EuiContextMenuClass = exports.EuiContextMenuClass = /*#__PURE__*/function (_
223
224
  _rest = _objectWithoutProperties(item, _excluded);
224
225
  return (0, _react2.jsx)(_horizontal_rule.EuiHorizontalRule, _extends({
225
226
  key: _key,
226
- margin: "none"
227
+ margin: "xs",
228
+ role: "separator"
227
229
  }, _rest));
228
230
  }
229
231
  var panel = item.panel,
@@ -232,6 +234,9 @@ var EuiContextMenuClass = exports.EuiContextMenuClass = /*#__PURE__*/function (_
232
234
  icon = item.icon,
233
235
  onClick = item.onClick,
234
236
  rest = _objectWithoutProperties(item, _excluded2);
237
+ var targetPanel = panel != null ? idToPanelMap[String(panel)] : undefined;
238
+ 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"
239
+
235
240
  var onClickHandler = panel ? function (event) {
236
241
  if (onClick && event) {
237
242
  event.persist();
@@ -249,7 +254,8 @@ var EuiContextMenuClass = exports.EuiContextMenuClass = /*#__PURE__*/function (_
249
254
  key: key || (typeof name === 'string' ? name : undefined) || index,
250
255
  icon: icon,
251
256
  onClick: onClickHandler,
252
- hasPanel: Boolean(panel)
257
+ hasPanel: Boolean(panel),
258
+ "aria-haspopup": ariaHasPopup
253
259
  }, rest), name);
254
260
  });
255
261
  }
@@ -267,7 +273,6 @@ var EuiContextMenuClass = exports.EuiContextMenuClass = /*#__PURE__*/function (_
267
273
  content = panel.content,
268
274
  _width = panel.width,
269
275
  initialFocusedItemIndex = panel.initialFocusedItemIndex,
270
- _size = panel.size,
271
276
  rest = _objectWithoutProperties(panel, _excluded3);
272
277
 
273
278
  // As above, we need to wait for EuiOutsideClickDetector to complete its logic before
@@ -284,7 +289,7 @@ var EuiContextMenuClass = exports.EuiContextMenuClass = /*#__PURE__*/function (_
284
289
  };
285
290
  return (0, _react2.jsx)(_context_menu_panel.EuiContextMenuPanel, _extends({
286
291
  key: panelId,
287
- size: this.props.size,
292
+ height: this.props.height,
288
293
  css: cssStyles,
289
294
  onHeightChange: transitionType === 'in' ? this.onIncomingPanelHeightChange : undefined,
290
295
  onTransitionComplete: transitionType === 'out' ? this.onOutGoingPanelTransitionComplete : undefined,
@@ -308,7 +313,7 @@ var EuiContextMenuClass = exports.EuiContextMenuClass = /*#__PURE__*/function (_
308
313
  onPanelChange = _this$props2.onPanelChange,
309
314
  className = _this$props2.className,
310
315
  initialPanelId = _this$props2.initialPanelId,
311
- size = _this$props2.size,
316
+ height = _this$props2.height,
312
317
  rest = _objectWithoutProperties(_this$props2, _excluded4);
313
318
  var incomingPanel = this.renderPanel(this.state.incomingPanelId, 'in');
314
319
  var outgoingPanel;
@@ -318,11 +323,12 @@ var EuiContextMenuClass = exports.EuiContextMenuClass = /*#__PURE__*/function (_
318
323
  var width = this.state.idToPanelMap[this.state.incomingPanelId] && this.state.idToPanelMap[this.state.incomingPanelId].width ? this.state.idToPanelMap[this.state.incomingPanelId].width : undefined;
319
324
  var classes = (0, _classnames.default)('euiContextMenu', className);
320
325
  var styles = stylesMemoizer(_context_menu.euiContextMenuStyles);
326
+ var cssStyles = [styles.euiContextMenu, height && styles.fixedHeight];
321
327
  return (0, _react2.jsx)("div", _extends({
322
- css: styles.euiContextMenu,
328
+ css: cssStyles,
323
329
  className: classes,
324
330
  style: {
325
- height: this.state.height,
331
+ height: height !== null && height !== void 0 ? height : this.state.height,
326
332
  width: width
327
333
  }
328
334
  }, rest), outgoingPanel, incomingPanel);
@@ -346,8 +352,7 @@ var EuiContextMenuClass = exports.EuiContextMenuClass = /*#__PURE__*/function (_
346
352
  }]);
347
353
  }(_react.Component);
348
354
  _defineProperty(EuiContextMenuClass, "defaultProps", {
349
- panels: [],
350
- size: 'm'
355
+ panels: []
351
356
  });
352
357
  EuiContextMenuClass.propTypes = {
353
358
  className: _propTypes.default.string,
@@ -380,10 +385,6 @@ EuiContextMenuClass.propTypes = {
380
385
  content: _propTypes.default.node,
381
386
  width: _propTypes.default.any,
382
387
  initialFocusedItemIndex: _propTypes.default.number,
383
- /**
384
- * Alters the size of the items and the title
385
- */
386
- size: _propTypes.default.any,
387
388
  className: _propTypes.default.string,
388
389
  "aria-label": _propTypes.default.string,
389
390
  "data-test-subj": _propTypes.default.string,
@@ -395,9 +396,6 @@ EuiContextMenuClass.propTypes = {
395
396
  */
396
397
  onPanelChange: _propTypes.default.func,
397
398
  initialPanelId: _propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.number.isRequired]),
398
- /**
399
- * Alters the size of the items and the title
400
- */
401
- size: _propTypes.default.any
399
+ height: _propTypes.default.any
402
400
  };
403
401
  var EuiContextMenu = exports.EuiContextMenu = (0, _services.withEuiStylesMemoizer)(EuiContextMenuClass);
@@ -27,6 +27,9 @@ var euiContextMenuStyles = exports.euiContextMenuStyles = function euiContextMen
27
27
  var _euiContextMenuVariab = euiContextMenuVariables(euiThemeContext),
28
28
  panelWidth = _euiContextMenuVariab.panelWidth;
29
29
  return {
30
- euiContextMenu: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', panelWidth), " ", (0, _global_styling.logicalCSS)('max-width', '100%'), " position:relative;overflow:hidden;border-radius:", euiTheme.border.radius.medium, ";", _global_styling.euiCanAnimate, "{transition:height ", euiTheme.animation.fast, " ", euiTheme.animation.resistance, ";};label:euiContextMenu;")
30
+ euiContextMenu: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', panelWidth), " ", (0, _global_styling.logicalCSS)('max-width', '100%'), " position:relative;overflow:hidden;border-radius:", euiTheme.border.radius.medium, ";", _global_styling.euiCanAnimate, "{transition:height ", euiTheme.animation.fast, " ", euiTheme.animation.resistance, ";};label:euiContextMenu;"),
31
+ fixedHeight: /*#__PURE__*/(0, _react.css)(".euiContextMenuPanel{display:flex;flex-direction:column;", (0, _global_styling.logicalCSS)('height', '100%'), ";}.euiContextMenuPanel__list{display:block;flex:1 1 0;", (0, _global_styling.euiYScrollWithShadows)(euiThemeContext, {
32
+ hasAnimatedOverflowShadow: true
33
+ }), ";};label:fixedHeight;")
31
34
  };
32
35
  };