@elastic/eui 114.3.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 (387) hide show
  1. package/es/components/basic_table/basic_table.js +3 -6
  2. package/es/components/basic_table/collapsed_item_actions.js +1 -3
  3. package/es/components/basic_table/default_item_action.js +0 -1
  4. package/es/components/basic_table/in_memory_table.js +3 -6
  5. package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  6. package/es/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  7. package/es/components/color_picker/color_picker_swatch.js +1 -2
  8. package/es/components/combo_box/combo_box.a11y.js +5 -5
  9. package/es/components/combo_box/combo_box.js +61 -53
  10. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +147 -84
  11. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +8 -7
  12. package/es/components/context_menu/context_menu.js +19 -21
  13. package/es/components/context_menu/context_menu.styles.js +5 -2
  14. package/es/components/context_menu/context_menu_item.js +69 -58
  15. package/es/components/context_menu/context_menu_item.styles.js +14 -28
  16. package/es/components/context_menu/context_menu_panel.js +37 -21
  17. package/es/components/context_menu/context_menu_panel.styles.js +7 -2
  18. package/es/components/context_menu/context_menu_panel_title.js +124 -0
  19. package/es/components/context_menu/context_menu_panel_title.styles.js +20 -0
  20. package/es/components/context_menu/index.js +2 -1
  21. package/es/components/datagrid/body/cell/data_grid_cell.js +35 -29
  22. package/es/components/datagrid/body/data_grid_body.js +23 -17
  23. package/es/components/datagrid/body/data_grid_body_custom.js +23 -17
  24. package/es/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  25. package/es/components/datagrid/body/header/column_actions.js +1 -2
  26. package/es/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  27. package/es/components/datagrid/controls/column_sorting.js +23 -17
  28. package/es/components/datagrid/controls/display_selector.js +1 -2
  29. package/es/components/datagrid/controls/fullscreen_selector.js +1 -2
  30. package/es/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  31. package/es/components/datagrid/utils/in_memory.js +23 -17
  32. package/es/components/filter_group/filter_group.a11y.js +8 -2
  33. package/es/components/filter_group/filter_select_item.js +36 -17
  34. package/es/components/flyout/flyout_menu.js +1 -4
  35. package/es/components/form/checkbox/checkbox.js +6 -6
  36. package/es/components/form/checkbox/checkbox.styles.js +1 -22
  37. package/es/components/form/checkbox/checkbox_control.js +78 -0
  38. package/es/components/form/checkbox/checkbox_control.styles.js +40 -0
  39. package/es/components/form/checkbox/index.js +1 -0
  40. package/es/components/form/form.styles.js +2 -1
  41. package/es/components/form/radio/radio.styles.js +1 -1
  42. package/es/components/form/super_select/super_select.js +118 -99
  43. package/es/components/form/super_select/super_select.styles.js +4 -8
  44. package/es/components/form/super_select/super_select_item.js +10 -18
  45. package/es/components/key_pad_menu/key_pad_menu_item.js +1 -2
  46. package/es/components/link/external_link_icon.js +4 -2
  47. package/es/components/list_group/list_group.js +20 -34
  48. package/es/components/list_group/list_group.styles.js +2 -16
  49. package/es/components/list_group/list_group_item.js +75 -87
  50. package/es/components/list_group/list_group_item.styles.js +17 -61
  51. package/es/components/list_group/list_group_item_extra_action.styles.js +6 -6
  52. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  53. package/es/components/list_item_layout/_list_item_layout.js +692 -0
  54. package/es/components/list_item_layout/_list_item_layout.styles.js +93 -0
  55. package/es/components/list_item_layout/index.js +9 -0
  56. package/es/components/markdown_editor/markdown_editor.js +1 -1
  57. package/es/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
  58. package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
  59. package/es/components/markdown_editor/markdown_editor_toolbar.js +14 -10
  60. package/es/components/portal/portal.js +72 -117
  61. package/es/components/search_bar/filters/field_value_selection_filter.js +2 -1
  62. package/es/components/search_bar/filters/field_value_toggle_group_filter.js +42 -91
  63. package/es/components/selectable/selectable.js +1 -0
  64. package/es/components/selectable/selectable_list/selectable_list.js +52 -36
  65. package/es/components/selectable/selectable_list/selectable_list.styles.js +19 -4
  66. package/es/components/selectable/selectable_list/selectable_list_item.js +45 -152
  67. package/es/components/selectable/selectable_list/utils/get_list_item_size.js +17 -0
  68. package/es/components/selectable/selectable_search/selectable_search.js +4 -1
  69. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  70. package/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  71. package/es/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  72. package/es/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  73. package/es/components/table/table_header_cell.js +1 -2
  74. package/es/components/tool_tip/icon_tip.js +4 -8
  75. package/es/components/tool_tip/tool_tip.js +233 -261
  76. package/es/components/tool_tip/tool_tip.styles.js +10 -18
  77. package/es/components/tool_tip/tool_tip_anchor.js +3 -3
  78. package/es/components/tool_tip/tool_tip_manager.js +1 -0
  79. package/es/components/tool_tip/tool_tip_popover.js +7 -7
  80. package/es/global_styling/mixins/_helpers.js +32 -11
  81. package/es/test/rtl/component_helpers.d.ts +0 -3
  82. package/es/test/rtl/component_helpers.js +40 -62
  83. package/eui.d.ts +10463 -8188
  84. package/i18ntokens.json +2607 -2589
  85. package/lib/components/basic_table/basic_table.js +3 -6
  86. package/lib/components/basic_table/collapsed_item_actions.js +1 -3
  87. package/lib/components/basic_table/default_item_action.js +0 -1
  88. package/lib/components/basic_table/in_memory_table.js +3 -6
  89. package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  90. package/lib/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  91. package/lib/components/color_picker/color_picker_swatch.js +1 -2
  92. package/lib/components/combo_box/combo_box.a11y.js +5 -5
  93. package/lib/components/combo_box/combo_box.js +61 -53
  94. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -82
  95. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  96. package/lib/components/context_menu/context_menu.js +20 -22
  97. package/lib/components/context_menu/context_menu.styles.js +4 -1
  98. package/lib/components/context_menu/context_menu_item.js +70 -59
  99. package/lib/components/context_menu/context_menu_item.styles.js +13 -27
  100. package/lib/components/context_menu/context_menu_panel.js +37 -21
  101. package/lib/components/context_menu/context_menu_panel.styles.js +7 -2
  102. package/lib/components/context_menu/context_menu_panel_title.js +130 -0
  103. package/lib/components/context_menu/context_menu_panel_title.styles.js +26 -0
  104. package/lib/components/context_menu/index.js +8 -1
  105. package/lib/components/datagrid/body/cell/data_grid_cell.js +35 -29
  106. package/lib/components/datagrid/body/data_grid_body.js +23 -17
  107. package/lib/components/datagrid/body/data_grid_body_custom.js +23 -17
  108. package/lib/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  109. package/lib/components/datagrid/body/header/column_actions.js +1 -2
  110. package/lib/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  111. package/lib/components/datagrid/controls/column_sorting.js +23 -17
  112. package/lib/components/datagrid/controls/display_selector.js +1 -2
  113. package/lib/components/datagrid/controls/fullscreen_selector.js +1 -2
  114. package/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  115. package/lib/components/datagrid/utils/in_memory.js +23 -17
  116. package/lib/components/filter_group/filter_group.a11y.js +8 -2
  117. package/lib/components/filter_group/filter_select_item.js +35 -16
  118. package/lib/components/flyout/flyout_menu.js +1 -4
  119. package/lib/components/form/checkbox/checkbox.js +6 -6
  120. package/lib/components/form/checkbox/checkbox.styles.js +1 -22
  121. package/lib/components/form/checkbox/checkbox_control.js +84 -0
  122. package/lib/components/form/checkbox/checkbox_control.styles.js +44 -0
  123. package/lib/components/form/checkbox/index.js +7 -0
  124. package/lib/components/form/form.styles.js +2 -1
  125. package/lib/components/form/radio/radio.styles.js +1 -1
  126. package/lib/components/form/super_select/super_select.js +116 -97
  127. package/lib/components/form/super_select/super_select.styles.js +4 -8
  128. package/lib/components/form/super_select/super_select_item.js +13 -18
  129. package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -2
  130. package/lib/components/link/external_link_icon.js +4 -2
  131. package/lib/components/list_group/list_group.js +21 -35
  132. package/lib/components/list_group/list_group.styles.js +2 -16
  133. package/lib/components/list_group/list_group_item.js +75 -87
  134. package/lib/components/list_group/list_group_item.styles.js +17 -61
  135. package/lib/components/list_group/list_group_item_extra_action.styles.js +5 -5
  136. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  137. package/lib/components/list_item_layout/_list_item_layout.js +699 -0
  138. package/lib/components/list_item_layout/_list_item_layout.styles.js +97 -0
  139. package/lib/components/list_item_layout/index.js +12 -0
  140. package/lib/components/markdown_editor/markdown_editor.js +1 -1
  141. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
  142. package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
  143. package/lib/components/markdown_editor/markdown_editor_toolbar.js +12 -10
  144. package/lib/components/portal/portal.js +73 -118
  145. package/lib/components/search_bar/filters/field_value_selection_filter.js +2 -1
  146. package/lib/components/search_bar/filters/field_value_toggle_group_filter.js +44 -93
  147. package/lib/components/selectable/selectable.js +1 -0
  148. package/lib/components/selectable/selectable_list/selectable_list.js +50 -34
  149. package/lib/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  150. package/lib/components/selectable/selectable_list/selectable_list_item.js +44 -152
  151. package/lib/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  152. package/lib/components/selectable/selectable_search/selectable_search.js +4 -1
  153. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  154. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  155. package/lib/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  156. package/lib/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  157. package/lib/components/table/table_header_cell.js +1 -2
  158. package/lib/components/tool_tip/icon_tip.js +4 -8
  159. package/lib/components/tool_tip/tool_tip.js +240 -266
  160. package/lib/components/tool_tip/tool_tip.styles.js +8 -16
  161. package/lib/components/tool_tip/tool_tip_anchor.js +2 -2
  162. package/lib/components/tool_tip/tool_tip_manager.js +1 -0
  163. package/lib/components/tool_tip/tool_tip_popover.js +6 -6
  164. package/lib/global_styling/mixins/_helpers.js +33 -12
  165. package/lib/test/rtl/component_helpers.d.ts +0 -3
  166. package/lib/test/rtl/component_helpers.js +41 -63
  167. package/optimize/es/components/basic_table/collapsed_item_actions.js +1 -3
  168. package/optimize/es/components/basic_table/default_item_action.js +0 -1
  169. package/optimize/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -4
  170. package/optimize/es/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  171. package/optimize/es/components/combo_box/combo_box.a11y.js +5 -5
  172. package/optimize/es/components/combo_box/combo_box.js +60 -52
  173. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -83
  174. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +8 -7
  175. package/optimize/es/components/context_menu/context_menu.js +18 -13
  176. package/optimize/es/components/context_menu/context_menu.styles.js +5 -2
  177. package/optimize/es/components/context_menu/context_menu_item.js +55 -53
  178. package/optimize/es/components/context_menu/context_menu_item.styles.js +14 -28
  179. package/optimize/es/components/context_menu/context_menu_panel.js +36 -17
  180. package/optimize/es/components/context_menu/context_menu_panel.styles.js +7 -2
  181. package/optimize/es/components/context_menu/context_menu_panel_title.js +53 -0
  182. package/optimize/es/components/context_menu/context_menu_panel_title.styles.js +20 -0
  183. package/optimize/es/components/context_menu/index.js +2 -1
  184. package/optimize/es/components/datagrid/body/header/column_actions.js +1 -2
  185. package/optimize/es/components/datagrid/controls/display_selector.js +1 -2
  186. package/optimize/es/components/datagrid/controls/fullscreen_selector.js +1 -2
  187. package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  188. package/optimize/es/components/filter_group/filter_group.a11y.js +8 -2
  189. package/optimize/es/components/filter_group/filter_select_item.js +36 -17
  190. package/optimize/es/components/flyout/flyout_menu.js +1 -4
  191. package/optimize/es/components/form/checkbox/checkbox.js +6 -6
  192. package/optimize/es/components/form/checkbox/checkbox.styles.js +1 -22
  193. package/optimize/es/components/form/checkbox/checkbox_control.js +48 -0
  194. package/optimize/es/components/form/checkbox/checkbox_control.styles.js +40 -0
  195. package/optimize/es/components/form/checkbox/index.js +1 -0
  196. package/optimize/es/components/form/form.styles.js +2 -1
  197. package/optimize/es/components/form/radio/radio.styles.js +1 -1
  198. package/optimize/es/components/form/super_select/super_select.js +118 -90
  199. package/optimize/es/components/form/super_select/super_select.styles.js +4 -8
  200. package/optimize/es/components/form/super_select/super_select_item.js +10 -14
  201. package/optimize/es/components/key_pad_menu/key_pad_menu_item.js +1 -2
  202. package/optimize/es/components/link/external_link_icon.js +4 -2
  203. package/optimize/es/components/list_group/list_group.js +7 -14
  204. package/optimize/es/components/list_group/list_group.styles.js +2 -16
  205. package/optimize/es/components/list_group/list_group_item.js +62 -80
  206. package/optimize/es/components/list_group/list_group_item.styles.js +17 -61
  207. package/optimize/es/components/list_group/list_group_item_extra_action.styles.js +6 -6
  208. package/optimize/es/components/list_item_layout/_list_item_layout.js +353 -0
  209. package/optimize/es/components/list_item_layout/_list_item_layout.styles.js +93 -0
  210. package/optimize/es/components/list_item_layout/index.js +9 -0
  211. package/optimize/es/components/markdown_editor/markdown_editor_drop_zone.js +5 -2
  212. package/optimize/es/components/markdown_editor/markdown_editor_toolbar.js +13 -9
  213. package/optimize/es/components/portal/portal.js +65 -91
  214. package/optimize/es/components/search_bar/filters/field_value_selection_filter.js +2 -1
  215. package/optimize/es/components/search_bar/filters/field_value_toggle_group_filter.js +43 -66
  216. package/optimize/es/components/selectable/selectable_list/selectable_list.js +48 -33
  217. package/optimize/es/components/selectable/selectable_list/selectable_list.styles.js +19 -4
  218. package/optimize/es/components/selectable/selectable_list/selectable_list_item.js +41 -143
  219. package/optimize/es/components/selectable/selectable_list/utils/get_list_item_size.js +17 -0
  220. package/optimize/es/components/selectable/selectable_search/selectable_search.js +4 -1
  221. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  222. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  223. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  224. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  225. package/optimize/es/components/tool_tip/icon_tip.js +3 -5
  226. package/optimize/es/components/tool_tip/tool_tip.js +227 -250
  227. package/optimize/es/components/tool_tip/tool_tip.styles.js +10 -18
  228. package/optimize/es/components/tool_tip/tool_tip_anchor.js +3 -3
  229. package/optimize/es/components/tool_tip/tool_tip_manager.js +1 -0
  230. package/optimize/es/components/tool_tip/tool_tip_popover.js +7 -7
  231. package/optimize/es/global_styling/mixins/_helpers.js +32 -11
  232. package/optimize/es/test/rtl/component_helpers.d.ts +0 -3
  233. package/optimize/es/test/rtl/component_helpers.js +40 -62
  234. package/optimize/lib/components/basic_table/collapsed_item_actions.js +1 -3
  235. package/optimize/lib/components/basic_table/default_item_action.js +0 -1
  236. package/optimize/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -4
  237. package/optimize/lib/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  238. package/optimize/lib/components/combo_box/combo_box.a11y.js +5 -5
  239. package/optimize/lib/components/combo_box/combo_box.js +60 -52
  240. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +143 -81
  241. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  242. package/optimize/lib/components/context_menu/context_menu.js +19 -14
  243. package/optimize/lib/components/context_menu/context_menu.styles.js +4 -1
  244. package/optimize/lib/components/context_menu/context_menu_item.js +56 -54
  245. package/optimize/lib/components/context_menu/context_menu_item.styles.js +13 -27
  246. package/optimize/lib/components/context_menu/context_menu_panel.js +36 -17
  247. package/optimize/lib/components/context_menu/context_menu_panel.styles.js +7 -2
  248. package/optimize/lib/components/context_menu/context_menu_panel_title.js +59 -0
  249. package/optimize/lib/components/context_menu/context_menu_panel_title.styles.js +26 -0
  250. package/optimize/lib/components/context_menu/index.js +8 -1
  251. package/optimize/lib/components/datagrid/body/header/column_actions.js +1 -2
  252. package/optimize/lib/components/datagrid/controls/display_selector.js +1 -2
  253. package/optimize/lib/components/datagrid/controls/fullscreen_selector.js +1 -2
  254. package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  255. package/optimize/lib/components/filter_group/filter_group.a11y.js +8 -2
  256. package/optimize/lib/components/filter_group/filter_select_item.js +35 -16
  257. package/optimize/lib/components/flyout/flyout_menu.js +1 -4
  258. package/optimize/lib/components/form/checkbox/checkbox.js +6 -6
  259. package/optimize/lib/components/form/checkbox/checkbox.styles.js +1 -22
  260. package/optimize/lib/components/form/checkbox/checkbox_control.js +54 -0
  261. package/optimize/lib/components/form/checkbox/checkbox_control.styles.js +44 -0
  262. package/optimize/lib/components/form/checkbox/index.js +7 -0
  263. package/optimize/lib/components/form/form.styles.js +2 -1
  264. package/optimize/lib/components/form/radio/radio.styles.js +1 -1
  265. package/optimize/lib/components/form/super_select/super_select.js +116 -88
  266. package/optimize/lib/components/form/super_select/super_select.styles.js +4 -8
  267. package/optimize/lib/components/form/super_select/super_select_item.js +13 -14
  268. package/optimize/lib/components/key_pad_menu/key_pad_menu_item.js +1 -2
  269. package/optimize/lib/components/link/external_link_icon.js +4 -2
  270. package/optimize/lib/components/list_group/list_group.js +8 -15
  271. package/optimize/lib/components/list_group/list_group.styles.js +2 -16
  272. package/optimize/lib/components/list_group/list_group_item.js +62 -80
  273. package/optimize/lib/components/list_group/list_group_item.styles.js +17 -61
  274. package/optimize/lib/components/list_group/list_group_item_extra_action.styles.js +5 -5
  275. package/optimize/lib/components/list_item_layout/_list_item_layout.js +361 -0
  276. package/optimize/lib/components/list_item_layout/_list_item_layout.styles.js +97 -0
  277. package/optimize/lib/components/list_item_layout/index.js +12 -0
  278. package/optimize/lib/components/markdown_editor/markdown_editor_drop_zone.js +5 -2
  279. package/optimize/lib/components/markdown_editor/markdown_editor_toolbar.js +13 -9
  280. package/optimize/lib/components/portal/portal.js +68 -93
  281. package/optimize/lib/components/search_bar/filters/field_value_selection_filter.js +2 -1
  282. package/optimize/lib/components/search_bar/filters/field_value_toggle_group_filter.js +45 -69
  283. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +46 -31
  284. package/optimize/lib/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  285. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.js +41 -143
  286. package/optimize/lib/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  287. package/optimize/lib/components/selectable/selectable_search/selectable_search.js +4 -1
  288. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  289. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  290. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  291. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  292. package/optimize/lib/components/tool_tip/icon_tip.js +3 -5
  293. package/optimize/lib/components/tool_tip/tool_tip.js +229 -251
  294. package/optimize/lib/components/tool_tip/tool_tip.styles.js +8 -16
  295. package/optimize/lib/components/tool_tip/tool_tip_anchor.js +2 -2
  296. package/optimize/lib/components/tool_tip/tool_tip_manager.js +1 -0
  297. package/optimize/lib/components/tool_tip/tool_tip_popover.js +6 -6
  298. package/optimize/lib/global_styling/mixins/_helpers.js +33 -12
  299. package/optimize/lib/test/rtl/component_helpers.d.ts +0 -3
  300. package/optimize/lib/test/rtl/component_helpers.js +41 -63
  301. package/package.json +5 -13
  302. package/test-env/components/basic_table/basic_table.js +3 -6
  303. package/test-env/components/basic_table/collapsed_item_actions.js +1 -3
  304. package/test-env/components/basic_table/default_item_action.js +0 -1
  305. package/test-env/components/basic_table/in_memory_table.js +3 -6
  306. package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  307. package/test-env/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  308. package/test-env/components/color_picker/color_picker_swatch.js +1 -2
  309. package/test-env/components/combo_box/combo_box.a11y.js +5 -5
  310. package/test-env/components/combo_box/combo_box.js +61 -53
  311. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -82
  312. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  313. package/test-env/components/context_menu/context_menu.js +20 -22
  314. package/test-env/components/context_menu/context_menu.styles.js +4 -1
  315. package/test-env/components/context_menu/context_menu_item.js +67 -59
  316. package/test-env/components/context_menu/context_menu_item.styles.js +13 -27
  317. package/test-env/components/context_menu/context_menu_panel.js +37 -21
  318. package/test-env/components/context_menu/context_menu_panel.styles.js +7 -2
  319. package/test-env/components/context_menu/context_menu_panel_title.js +129 -0
  320. package/test-env/components/context_menu/context_menu_panel_title.styles.js +26 -0
  321. package/test-env/components/context_menu/index.js +8 -1
  322. package/test-env/components/datagrid/body/cell/data_grid_cell.js +35 -29
  323. package/test-env/components/datagrid/body/data_grid_body.js +23 -17
  324. package/test-env/components/datagrid/body/data_grid_body_custom.js +23 -17
  325. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  326. package/test-env/components/datagrid/body/header/column_actions.js +1 -2
  327. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  328. package/test-env/components/datagrid/controls/column_sorting.js +23 -17
  329. package/test-env/components/datagrid/controls/display_selector.js +1 -2
  330. package/test-env/components/datagrid/controls/fullscreen_selector.js +1 -2
  331. package/test-env/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  332. package/test-env/components/datagrid/utils/in_memory.js +23 -17
  333. package/test-env/components/filter_group/filter_group.a11y.js +8 -2
  334. package/test-env/components/filter_group/filter_select_item.js +35 -16
  335. package/test-env/components/flyout/flyout_menu.js +1 -4
  336. package/test-env/components/form/checkbox/checkbox.js +6 -6
  337. package/test-env/components/form/checkbox/checkbox.styles.js +1 -22
  338. package/test-env/components/form/checkbox/checkbox_control.js +83 -0
  339. package/test-env/components/form/checkbox/checkbox_control.styles.js +44 -0
  340. package/test-env/components/form/checkbox/index.js +7 -0
  341. package/test-env/components/form/form.styles.js +2 -1
  342. package/test-env/components/form/radio/radio.styles.js +1 -1
  343. package/test-env/components/form/super_select/super_select.js +116 -97
  344. package/test-env/components/form/super_select/super_select.styles.js +4 -8
  345. package/test-env/components/form/super_select/super_select_item.js +13 -18
  346. package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -2
  347. package/test-env/components/link/external_link_icon.js +4 -2
  348. package/test-env/components/list_group/list_group.js +21 -35
  349. package/test-env/components/list_group/list_group.styles.js +2 -16
  350. package/test-env/components/list_group/list_group_item.js +75 -87
  351. package/test-env/components/list_group/list_group_item.styles.js +17 -61
  352. package/test-env/components/list_group/list_group_item_extra_action.styles.js +5 -5
  353. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  354. package/test-env/components/list_item_layout/_list_item_layout.js +691 -0
  355. package/test-env/components/list_item_layout/_list_item_layout.styles.js +97 -0
  356. package/test-env/components/list_item_layout/index.js +12 -0
  357. package/test-env/components/markdown_editor/markdown_editor.js +1 -1
  358. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
  359. package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
  360. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +14 -10
  361. package/test-env/components/portal/portal.js +70 -113
  362. package/test-env/components/search_bar/filters/field_value_selection_filter.js +2 -1
  363. package/test-env/components/search_bar/filters/field_value_toggle_group_filter.js +44 -88
  364. package/test-env/components/selectable/selectable.js +1 -0
  365. package/test-env/components/selectable/selectable_list/selectable_list.js +50 -34
  366. package/test-env/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  367. package/test-env/components/selectable/selectable_list/selectable_list_item.js +42 -147
  368. package/test-env/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  369. package/test-env/components/selectable/selectable_search/selectable_search.js +4 -1
  370. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  371. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  372. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  373. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  374. package/test-env/components/table/table_header_cell.js +1 -2
  375. package/test-env/components/tool_tip/icon_tip.js +4 -8
  376. package/test-env/components/tool_tip/tool_tip.js +230 -256
  377. package/test-env/components/tool_tip/tool_tip.styles.js +8 -16
  378. package/test-env/components/tool_tip/tool_tip_anchor.js +2 -2
  379. package/test-env/components/tool_tip/tool_tip_manager.js +1 -0
  380. package/test-env/components/tool_tip/tool_tip_popover.js +6 -6
  381. package/test-env/global_styling/mixins/_helpers.js +33 -12
  382. package/test-env/test/rtl/component_helpers.js +41 -63
  383. package/es/components/selectable/selectable_list/selectable_list_item.styles.js +0 -55
  384. package/lib/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
  385. package/optimize/es/components/selectable/selectable_list/selectable_list_item.styles.js +0 -55
  386. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
  387. package/test-env/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
@@ -7,8 +7,8 @@ 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
9
  var _excluded = ["children"],
10
- _excluded2 = ["key", "isGroupLabelOption", "label", "value", "prepend", "append", "truncationProps"],
11
- _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"];
10
+ _excluded2 = ["key", "className", "isGroupLabelOption", "label", "value", "prepend", "append", "truncationProps", "toolTipContent", "toolTipProps"],
11
+ _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"];
12
12
  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; }
13
13
  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; }
14
14
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
@@ -21,9 +21,9 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
21
21
  * Side Public License, v 1.
22
22
  */
23
23
 
24
- import React, { Component } from 'react';
24
+ import React, { Component, createRef } from 'react';
25
25
  import classNames from 'classnames';
26
- import { FixedSizeList } from 'react-window';
26
+ import { VariableSizeList } from 'react-window';
27
27
  import { RenderWithEuiStylesMemoizer } from '../../../services';
28
28
  import { EuiFlexGroup, EuiFlexItem } from '../../flex';
29
29
  import { EuiHighlight } from '../../highlight';
@@ -31,12 +31,12 @@ import { EuiMark } from '../../mark';
31
31
  import { EuiText } from '../../text';
32
32
  import { EuiLoadingSpinner } from '../../loading';
33
33
  import { EuiI18n } from '../../i18n';
34
- import { EuiFilterSelectItem } from '../../filter_group/filter_select_item';
34
+ import { euiSelectableListGroupLabelStyles } from '../../selectable/selectable_list/selectable_list.styles';
35
+ import { getListItemSize } from '../../selectable/selectable_list/utils/get_list_item_size';
35
36
  import { EuiBadge } from '../../badge';
36
37
  import { EuiTextTruncate } from '../../text_truncate';
37
38
  import { EuiInputPopoverWidthContext } from '../../popover/input_popover';
38
- import { EuiComboBoxOptionAppendPrepend } from '../utils';
39
- import { EuiComboBoxTitle } from './combo_box_title';
39
+ import { EuiListItemLayout } from '../../list_item_layout';
40
40
  import { euiComboBoxOptionListStyles, LIST_MAX_HEIGHT } from './combo_box_options_list.styles';
41
41
  import { jsx as ___EmotionJSX } from "@emotion/react";
42
42
  var hitEnterBadge = ___EmotionJSX(EuiBadge, {
@@ -54,13 +54,20 @@ export var EuiComboBoxOptionsList = /*#__PURE__*/function (_Component) {
54
54
  }
55
55
  _this = _callSuper(this, EuiComboBoxOptionsList, [].concat(args));
56
56
  _defineProperty(_this, "listRef", null);
57
+ _defineProperty(_this, "listBoxRef", /*#__PURE__*/createRef());
58
+ _defineProperty(_this, "optionRefs", {});
57
59
  _defineProperty(_this, "setListRef", function (ref) {
58
60
  _this.listRef = ref;
59
61
  });
62
+ _defineProperty(_this, "setOptionRef", function (ref, index) {
63
+ var _this$props$setListOp, _this$props;
64
+ _this.optionRefs[index] = ref;
65
+ (_this$props$setListOp = (_this$props = _this.props).setListOptionRefs) === null || _this$props$setListOp === void 0 || _this$props$setListOp.call(_this$props, ref, index);
66
+ });
60
67
  _defineProperty(_this, "ListInnerElement", function (_ref) {
61
68
  var children = _ref.children,
62
69
  rest = _objectWithoutProperties(_ref, _excluded);
63
- return ___EmotionJSX("div", _extends({}, rest, _this.getListInnerElementProps()), children);
70
+ return ___EmotionJSX("ul", _extends({}, rest, _this.getListInnerElementProps()), children);
64
71
  });
65
72
  _defineProperty(_this, "ListRow", function (_ref2) {
66
73
  var _option$key;
@@ -69,33 +76,43 @@ export var EuiComboBoxOptionsList = /*#__PURE__*/function (_Component) {
69
76
  style = _ref2.style;
70
77
  var option = data[index];
71
78
  var key = option.key,
79
+ className = option.className,
72
80
  isGroupLabelOption = option.isGroupLabelOption,
73
81
  label = option.label,
74
82
  value = option.value,
75
83
  prepend = option.prepend,
76
84
  append = option.append,
77
85
  _truncationProps = option.truncationProps,
86
+ toolTipContent = option.toolTipContent,
87
+ toolTipProps = option.toolTipProps,
78
88
  rest = _objectWithoutProperties(option, _excluded2);
79
- var _this$props = _this.props,
80
- singleSelection = _this$props.singleSelection,
81
- selectedOptions = _this$props.selectedOptions,
82
- onOptionClick = _this$props.onOptionClick,
83
- activeOptionIndex = _this$props.activeOptionIndex,
84
- renderOption = _this$props.renderOption,
85
- searchValue = _this$props.searchValue,
86
- rootId = _this$props.rootId,
87
- matchingOptions = _this$props.matchingOptions,
88
- setListOptionRefs = _this$props.setListOptionRefs,
89
- rowHeight = _this$props.rowHeight;
89
+ var _this$props2 = _this.props,
90
+ options = _this$props2.options,
91
+ singleSelection = _this$props2.singleSelection,
92
+ selectedOptions = _this$props2.selectedOptions,
93
+ onOptionClick = _this$props2.onOptionClick,
94
+ activeOptionIndex = _this$props2.activeOptionIndex,
95
+ renderOption = _this$props2.renderOption,
96
+ searchValue = _this$props2.searchValue,
97
+ rootId = _this$props2.rootId,
98
+ matchingOptions = _this$props2.matchingOptions,
99
+ onFocusBadge = _this$props2.onFocusBadge,
100
+ rowHeight = _this$props2.rowHeight;
90
101
  var optionIndex = matchingOptions.indexOf(option);
91
102
  var hasTruncationProps = _this.props.truncationProps || _truncationProps;
92
103
  var truncationProps = hasTruncationProps ? // Individual truncation settings should override component prop
93
104
  _objectSpread(_objectSpread({}, _this.props.truncationProps), _truncationProps) : undefined;
94
105
  if (isGroupLabelOption) {
95
- return ___EmotionJSX("div", {
96
- key: key !== null && key !== void 0 ? key : label,
97
- style: style
98
- }, ___EmotionJSX(EuiComboBoxTitle, null, prepend, label, append));
106
+ return ___EmotionJSX(RenderWithEuiStylesMemoizer, null, function (stylesMemoizer) {
107
+ var styles = stylesMemoizer(euiSelectableListGroupLabelStyles);
108
+ return ___EmotionJSX("li", {
109
+ key: key !== null && key !== void 0 ? key : label,
110
+ style: style,
111
+ role: "presentation",
112
+ className: "euiComboBoxTitle",
113
+ css: styles.groupLabel
114
+ }, prepend, label, append);
115
+ });
99
116
  }
100
117
  var checked = undefined;
101
118
  if (singleSelection && selectedOptions.length && selectedOptions[0].label === label && selectedOptions[0].key === key) {
@@ -103,40 +120,54 @@ export var EuiComboBoxOptionsList = /*#__PURE__*/function (_Component) {
103
120
  }
104
121
  var optionIsFocused = activeOptionIndex === index;
105
122
  var optionIsDisabled = option.hasOwnProperty('disabled') && option.disabled === true;
106
- return ___EmotionJSX(EuiFilterSelectItem, _extends({
107
- style: style,
123
+ var hasOnFocusBadge = onFocusBadge && optionIsFocused && !optionIsDisabled;
124
+ return ___EmotionJSX(EuiListItemLayout, _extends({
125
+ element: "li",
126
+ role: "option"
127
+ // uses `aria-selected` over `aria-checked` for multi-selection as the selected options are removed from the list
128
+ ,
129
+ selectionMode: "selected",
130
+ className: classNames('euiComboBoxOption', className),
131
+ ref: function ref(node) {
132
+ return _this.setOptionRef(node, index);
133
+ }
134
+ // uses the original `options` array for the index to ensure a stable `id`, otherwise `aria-activedescendant`
135
+ // loses focus on selecting an option (due to actively removing it from the list)
136
+ ,
137
+ id: rootId("_option-".concat(options.indexOf(option))),
108
138
  key: (_option$key = option.key) !== null && _option$key !== void 0 ? _option$key : option.label,
139
+ title: label,
140
+ prepend: option.prepend,
141
+ append: hasOnFocusBadge ? ___EmotionJSX(React.Fragment, null, option.append, hitEnterBadge) : option.append,
142
+ checked: checked,
143
+ isFocused: optionIsFocused,
144
+ isSelected: !optionIsDisabled && checked !== undefined,
145
+ isDisabled: optionIsDisabled,
146
+ isSingleSelection: !!singleSelection,
147
+ showIndicator: !!singleSelection,
148
+ textWrap: rowHeight !== 'auto' ? 'truncate' : 'wrap',
149
+ tooltipProps: toolTipContent && !optionIsDisabled ? _objectSpread(_objectSpread({}, toolTipProps), {}, {
150
+ content: toolTipContent
151
+ }) : undefined,
152
+ style: style,
153
+ "aria-setsize": matchingOptions.length,
154
+ "aria-posinset": optionIndex + 1,
155
+ contentProps: {
156
+ className: 'euiComboBoxOption__content'
157
+ },
109
158
  onClick: function onClick() {
110
159
  if (onOptionClick) {
111
160
  onOptionClick(option);
112
161
  }
113
- },
114
- isFocused: optionIsFocused,
115
- checked: checked,
116
- showIcons: singleSelection ? true : false,
117
- truncateContent: rowHeight !== 'auto',
118
- id: rootId("_option-".concat(index)),
119
- title: label,
120
- "aria-setsize": matchingOptions.length,
121
- "aria-posinset": optionIndex + 1,
122
- forwardRef: function forwardRef(ref) {
123
- return setListOptionRefs(ref, index);
124
162
  }
125
- }, rest), ___EmotionJSX("span", {
126
- className: "euiComboBoxOption__contentWrapper"
127
- }, ___EmotionJSX(EuiComboBoxOptionAppendPrepend, {
128
- option: option,
129
- classNamePrefix: "euiComboBoxOption",
130
- marginSize: "s"
131
- }, ___EmotionJSX("span", {
132
- className: classNames('euiComboBoxOption__content', rowHeight !== 'auto' && 'eui-textTruncate')
133
- }, renderOption ? renderOption(option, searchValue, 'euiComboBoxOption__renderOption') : rowHeight === 'auto' ? _this.renderVariableHeightOption(label) : _this.renderTruncatedOption(label, truncationProps))), optionIsFocused && !optionIsDisabled ? hitEnterBadge : null));
163
+ }, rest), renderOption ? renderOption(option, searchValue, 'euiComboBoxOption__renderOption') : rowHeight === 'auto' ? _this.renderVariableHeightOption(label) : _this.renderTruncatedOption(label, truncationProps));
134
164
  });
135
165
  _defineProperty(_this, "getListInnerElementProps", function () {
136
166
  return {
137
167
  'aria-label': _this.props.listboxAriaLabel,
138
168
  id: _this.props.rootId('listbox'),
139
169
  role: 'listbox',
170
+ 'aria-multiselectable': _this.props.singleSelection === false ? true : undefined,
140
171
  tabIndex: 0
141
172
  };
142
173
  });
@@ -190,49 +221,66 @@ export var EuiComboBoxOptionsList = /*#__PURE__*/function (_Component) {
190
221
  // just highlight the entire truncated text
191
222
  ___EmotionJSX(EuiMark, null, text));
192
223
  });
224
+ _defineProperty(_this, "getItemSize", function (index) {
225
+ var _ref3 = _this.props,
226
+ rowHeight = _ref3.rowHeight;
227
+ var option = _this.props.matchingOptions[index];
228
+ return getListItemSize(index, rowHeight, !!(option !== null && option !== void 0 && option.isGroupLabelOption));
229
+ });
193
230
  return _this;
194
231
  }
195
232
  _inherits(EuiComboBoxOptionsList, _Component);
196
233
  return _createClass(EuiComboBoxOptionsList, [{
197
234
  key: "componentDidUpdate",
198
235
  value: function componentDidUpdate(prevProps) {
199
- if (this.listRef && typeof this.props.activeOptionIndex !== 'undefined' && this.props.activeOptionIndex !== prevProps.activeOptionIndex && this.props.rowHeight !== 'auto') {
200
- this.listRef.scrollToItem(this.props.activeOptionIndex, 'auto');
236
+ var _this$props3 = this.props,
237
+ activeOptionIndex = _this$props3.activeOptionIndex,
238
+ rowHeight = _this$props3.rowHeight;
239
+ if (this.listRef && typeof activeOptionIndex !== 'undefined' && activeOptionIndex !== prevProps.activeOptionIndex && rowHeight !== 'auto') {
240
+ // NOTE: The 'auto' setting results in the item being scrolled to the top/end edge;
241
+ // We could consider changing it to 'center' to keep items further way from the listbox edges.
242
+ this.listRef.scrollToItem(activeOptionIndex, 'auto');
243
+ } else if (rowHeight === 'auto') {
244
+ var _this$optionRefs, _this$optionRefs$scro;
245
+ (_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, {
246
+ block: 'nearest'
247
+ });
201
248
  }
202
249
  }
203
250
  }, {
204
251
  key: "render",
205
252
  value: function render() {
206
253
  var _this2 = this;
207
- var _this$props2 = this.props,
208
- dataTestSubj = _this$props2['data-test-subj'],
209
- activeOptionIndex = _this$props2.activeOptionIndex,
210
- areAllOptionsSelected = _this$props2.areAllOptionsSelected,
211
- customOptionText = _this$props2.customOptionText,
212
- fullWidth = _this$props2.fullWidth,
213
- getSelectedOptionForSearchValue = _this$props2.getSelectedOptionForSearchValue,
214
- isCaseSensitive = _this$props2.isCaseSensitive,
215
- isLoading = _this$props2.isLoading,
216
- listRef = _this$props2.listRef,
217
- matchingOptions = _this$props2.matchingOptions,
218
- onCloseList = _this$props2.onCloseList,
219
- onCreateOption = _this$props2.onCreateOption,
220
- onOptionClick = _this$props2.onOptionClick,
221
- onOptionEnterKey = _this$props2.onOptionEnterKey,
222
- onScroll = _this$props2.onScroll,
223
- options = _this$props2.options,
224
- renderOption = _this$props2.renderOption,
225
- rootId = _this$props2.rootId,
226
- rowHeight = _this$props2.rowHeight,
227
- scrollToIndex = _this$props2.scrollToIndex,
228
- searchValue = _this$props2.searchValue,
229
- selectedOptions = _this$props2.selectedOptions,
230
- singleSelection = _this$props2.singleSelection,
231
- delimiter = _this$props2.delimiter,
232
- truncationProps = _this$props2.truncationProps,
233
- listboxAriaLabel = _this$props2.listboxAriaLabel,
234
- setListOptionRefs = _this$props2.setListOptionRefs,
235
- rest = _objectWithoutProperties(_this$props2, _excluded3);
254
+ var _this$props4 = this.props,
255
+ dataTestSubj = _this$props4['data-test-subj'],
256
+ activeOptionIndex = _this$props4.activeOptionIndex,
257
+ areAllOptionsSelected = _this$props4.areAllOptionsSelected,
258
+ customOptionText = _this$props4.customOptionText,
259
+ fullWidth = _this$props4.fullWidth,
260
+ getSelectedOptionForSearchValue = _this$props4.getSelectedOptionForSearchValue,
261
+ isCaseSensitive = _this$props4.isCaseSensitive,
262
+ isLoading = _this$props4.isLoading,
263
+ listRef = _this$props4.listRef,
264
+ matchingOptions = _this$props4.matchingOptions,
265
+ onCloseList = _this$props4.onCloseList,
266
+ onCreateOption = _this$props4.onCreateOption,
267
+ onOptionClick = _this$props4.onOptionClick,
268
+ onOptionEnterKey = _this$props4.onOptionEnterKey,
269
+ onScroll = _this$props4.onScroll,
270
+ options = _this$props4.options,
271
+ renderOption = _this$props4.renderOption,
272
+ rootId = _this$props4.rootId,
273
+ rowHeight = _this$props4.rowHeight,
274
+ scrollToIndex = _this$props4.scrollToIndex,
275
+ searchValue = _this$props4.searchValue,
276
+ selectedOptions = _this$props4.selectedOptions,
277
+ singleSelection = _this$props4.singleSelection,
278
+ delimiter = _this$props4.delimiter,
279
+ onFocusBadge = _this$props4.onFocusBadge,
280
+ truncationProps = _this$props4.truncationProps,
281
+ listboxAriaLabel = _this$props4.listboxAriaLabel,
282
+ setListOptionRefs = _this$props4.setListOptionRefs,
283
+ rest = _objectWithoutProperties(_this$props4, _excluded3);
236
284
  var emptyStateContent;
237
285
  if (isLoading) {
238
286
  emptyStateContent = ___EmotionJSX(EuiFlexGroup, {
@@ -330,6 +378,10 @@ export var EuiComboBoxOptionsList = /*#__PURE__*/function (_Component) {
330
378
  // bounded by max-height of .euiComboBoxOptionsList
331
379
  boundedHeight = height > LIST_MAX_HEIGHT ? LIST_MAX_HEIGHT : height;
332
380
  }
381
+
382
+ /* We need to consider the panel padding (2 * 8px) but should only subtract it if
383
+ the panel width has already been set. */
384
+ var listWidth = this.context && this.context > 0 ? this.context - 16 : this.context;
333
385
  return ___EmotionJSX(RenderWithEuiStylesMemoizer, null, function (stylesMemoizer) {
334
386
  var styles = stylesMemoizer(euiComboBoxOptionListStyles);
335
387
  return ___EmotionJSX("div", _extends({
@@ -337,29 +389,39 @@ export var EuiComboBoxOptionsList = /*#__PURE__*/function (_Component) {
337
389
  className: "euiComboBoxOptionsList",
338
390
  "data-test-subj": classNames('comboBoxOptionsList', dataTestSubj),
339
391
  ref: listRef
340
- }, rest), emptyStateContent ? ___EmotionJSX(EuiText, {
392
+ }, rest, {
393
+ onMouseDown: function onMouseDown(e) {
394
+ // prevent focus shifting; expected behavior to keep focus in the input
395
+ e.preventDefault();
396
+ }
397
+ }), emptyStateContent ? ___EmotionJSX(EuiText, {
341
398
  size: "xs",
342
399
  css: styles.euiComboBoxOptionsList__empty,
343
400
  className: "euiComboBoxOptionsList__empty"
344
- }, emptyStateContent) : rowHeight === 'auto' ? ___EmotionJSX("div", _this2.getListInnerElementProps(), matchingOptions.map(function (_, index) {
401
+ }, emptyStateContent) : rowHeight === 'auto' ? ___EmotionJSX("ul", _extends({
402
+ ref: _this2.listBoxRef
403
+ }, _this2.getListInnerElementProps()), matchingOptions.map(function (_, index) {
345
404
  return ___EmotionJSX(_this2.ListRow, {
346
405
  data: matchingOptions,
347
406
  index: index,
348
- key: index // same as FixedSizeList's default
407
+ key: index // same as VariableSizeList's default
349
408
  ,
350
409
  style: {}
351
410
  });
352
- })) : ___EmotionJSX(FixedSizeList, {
411
+ })) : ___EmotionJSX(VariableSizeList, {
353
412
  css: styles.euiComboBoxOptionList__virtualization,
354
413
  className: "euiComboBoxOptionsList__virtualization",
355
414
  height: boundedHeight,
356
415
  onScroll: onScroll,
357
416
  itemCount: matchingOptions.length,
358
- itemSize: rowHeight,
359
- itemData: matchingOptions,
417
+ itemSize: _this2.getItemSize,
418
+ itemData: matchingOptions
419
+ // Prevents scrollbar jump before VariableSizeList populates the cached size
420
+ ,
421
+ estimatedItemSize: rowHeight,
360
422
  ref: _this2.setListRef,
361
423
  innerElementType: _this2.ListInnerElement,
362
- width: _this2.context
424
+ width: listWidth
363
425
  }, _this2.ListRow));
364
426
  });
365
427
  }
@@ -7,20 +7,21 @@
7
7
  */
8
8
 
9
9
  import { css } from '@emotion/react';
10
- import { logicalCSS, mathWithUnits, euiScrollBarStyles, euiTextBreakWord } from '../../../global_styling';
11
- import { euiTitle } from '../../title/title.styles';
10
+ import { logicalCSS, euiScrollBarStyles, euiTextBreakWord, euiYScrollWithShadows } from '../../../global_styling';
12
11
  export var LIST_MAX_HEIGHT = 200;
13
12
  export var euiComboBoxOptionListStyles = function euiComboBoxOptionListStyles(euiThemeContext) {
14
13
  var euiTheme = euiThemeContext.euiTheme;
15
14
  return {
16
- euiComboBoxOptionList: /*#__PURE__*/css(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;", logicalCSS('margin-bottom', 0), ";}.euiComboBoxOption__enterBadge{", logicalCSS('margin-left', euiTheme.size.xs), ";}.euiComboBoxTitle{display:flex;", logicalCSS('padding-horizontal', euiTheme.size.s), logicalCSS('padding-top', mathWithUnits(euiTheme.size.s, function (x) {
17
- return x + 1;
18
- })), " ", logicalCSS('padding-bottom', euiTheme.size.xs), " ", euiTitle(euiThemeContext, 'xxxs'), ";};label:euiComboBoxOptionList;"),
15
+ euiComboBoxOptionList: /*#__PURE__*/css(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;", logicalCSS('margin-bottom', 0), ";}.euiComboBoxOption__enterBadge{", logicalCSS('margin-left', euiTheme.size.xs), ";};label:euiComboBoxOptionList;"),
19
16
  /* eslint-disable local/css-logical-properties */
20
- hasRowHeightAuto: /*#__PURE__*/css("overflow-y:auto;.euiComboBoxOption__contentWrapper{align-items:flex-start;}", euiScrollBarStyles(euiThemeContext), ";;label:hasRowHeightAuto;"),
17
+ hasRowHeightAuto: /*#__PURE__*/css(euiYScrollWithShadows(euiThemeContext, {
18
+ hasAnimatedOverflowShadow: true
19
+ }), " .euiComboBoxOption__contentWrapper{align-items:flex-start;}", euiScrollBarStyles(euiThemeContext), ";;label:hasRowHeightAuto;"),
21
20
  /* eslint-enable local/css-logical-properties */
22
21
 
23
- euiComboBoxOptionList__virtualization: /*#__PURE__*/css(euiScrollBarStyles(euiThemeContext), ";;label:euiComboBoxOptionList__virtualization;"),
22
+ euiComboBoxOptionList__virtualization: /*#__PURE__*/css(euiYScrollWithShadows(euiThemeContext, {
23
+ hasAnimatedOverflowShadow: true
24
+ }), ";;label:euiComboBoxOptionList__virtualization;"),
24
25
  euiComboBoxOptionsList__empty: /*#__PURE__*/css("padding:", euiTheme.size.s, ";text-align:center;", euiTextBreakWord(), ";;label:euiComboBoxOptionsList__empty;")
25
26
  };
26
27
  };
@@ -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
  };