@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
@@ -17,7 +17,7 @@ var _combo_box_input = require("./combo_box_input/combo_box_input");
17
17
  var _combo_box_options_list = require("./combo_box_options_list");
18
18
  var _combo_box = require("./combo_box.styles");
19
19
  var _react2 = require("@emotion/react");
20
- var _excluded = ["data-test-subj", "async", "className", "compressed", "customOptionText", "fullWidth", "id", "inputRef", "isCaseSensitive", "isClearable", "isDisabled", "isInvalid", "isLoading", "noSuggestions", "onBlur", "onChange", "onCreateOption", "onSearchChange", "options", "placeholder", "renderOption", "rowHeight", "selectedOptions", "singleSelection", "prepend", "sortMatchesBy", "delimiter", "append", "autoFocus", "truncationProps", "inputPopoverProps", "optionMatcher", "aria-label", "aria-labelledby", "aria-describedby"];
20
+ var _excluded = ["data-test-subj", "async", "className", "compressed", "customOptionText", "fullWidth", "id", "inputRef", "isCaseSensitive", "isClearable", "isDisabled", "isInvalid", "isLoading", "noSuggestions", "onBlur", "onChange", "onCreateOption", "onSearchChange", "options", "placeholder", "renderOption", "rowHeight", "selectedOptions", "singleSelection", "prepend", "sortMatchesBy", "delimiter", "append", "autoFocus", "onFocusBadge", "truncationProps", "inputPopoverProps", "optionMatcher", "aria-label", "aria-labelledby", "aria-describedby"];
21
21
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
22
  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); }
23
23
  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; }
@@ -105,6 +105,9 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
105
105
  _this.listRefInstance = ref;
106
106
  });
107
107
  _defineProperty(_this, "setListOptionRefs", function (node, index) {
108
+ var current = _this.state.listOptionRefs[index];
109
+ // Skip updating if the ref is null (on cleanup) or didn't change
110
+ if (node === null || node === current) return;
108
111
  _this.setState(function (_ref) {
109
112
  var listOptionRefs = _ref.listOptionRefs;
110
113
  var _listOptionRefs = listOptionRefs;
@@ -125,41 +128,32 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
125
128
  isListOpen: false
126
129
  });
127
130
  });
128
- _defineProperty(_this, "incrementActiveOptionIndex", function (amount) {
129
- // If there are no options available, do nothing.
130
- if (!_this.state.matchingOptions.length) {
131
- return;
131
+ _defineProperty(_this, "findNextSelectableOptionIndex", function (options, startIndex) {
132
+ var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
133
+ if (!options.length) return -1;
134
+ var index = startIndex;
135
+ for (var count = 0; count < options.length; count++) {
136
+ var option = options[index];
137
+ if (!option.isGroupLabelOption && !option.disabled) {
138
+ return index;
139
+ }
140
+ index = (index + direction + options.length) % options.length;
132
141
  }
142
+ return -1; // the remaining options can't be selected (group labels or disabled)
143
+ });
144
+ _defineProperty(_this, "incrementActiveOptionIndex", function (amount) {
145
+ if (!_this.state.matchingOptions.length) return;
133
146
  _this.setState(function (_ref2) {
134
147
  var activeOptionIndex = _ref2.activeOptionIndex,
135
148
  matchingOptions = _ref2.matchingOptions;
136
- var nextActiveOptionIndex;
137
- if (activeOptionIndex < 0) {
138
- // If this is the beginning of the user's keyboard navigation of the menu, then we'll focus
139
- // either the first or last item.
140
- nextActiveOptionIndex = amount < 0 ? matchingOptions.length - 1 : 0;
141
- } else {
142
- nextActiveOptionIndex = activeOptionIndex + amount;
143
- if (nextActiveOptionIndex < 0) {
144
- nextActiveOptionIndex = matchingOptions.length - 1;
145
- } else if (nextActiveOptionIndex === matchingOptions.length) {
146
- nextActiveOptionIndex = 0;
147
- }
148
- }
149
-
150
- // Group titles are included in option list but are not selectable
151
- // Skip group title options
152
149
  var direction = amount > 0 ? 1 : -1;
153
- while (matchingOptions[nextActiveOptionIndex].isGroupLabelOption) {
154
- nextActiveOptionIndex = nextActiveOptionIndex + direction;
155
- if (nextActiveOptionIndex < 0) {
156
- nextActiveOptionIndex = matchingOptions.length - 1;
157
- } else if (nextActiveOptionIndex === matchingOptions.length) {
158
- nextActiveOptionIndex = 0;
159
- }
160
- }
150
+ var startIndex = activeOptionIndex < 0 ?
151
+ // Inintial interaction: jump to first or last item
152
+ amount < 0 ? matchingOptions.length - 1 : 0 :
153
+ // Advance by amount, wrapping around
154
+ (activeOptionIndex + amount + matchingOptions.length) % matchingOptions.length;
161
155
  return {
162
- activeOptionIndex: nextActiveOptionIndex
156
+ activeOptionIndex: _this.findNextSelectableOptionIndex(matchingOptions, startIndex, direction)
163
157
  };
164
158
  });
165
159
  });
@@ -377,27 +371,36 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
377
371
  onChange = _this$props7.onChange,
378
372
  selectedOptions = _this$props7.selectedOptions,
379
373
  singleSelectionProp = _this$props7.singleSelection;
374
+ var _this$state2 = _this.state,
375
+ matchingOptions = _this$state2.matchingOptions,
376
+ listOptionRefs = _this$state2.listOptionRefs;
380
377
  var singleSelection = Boolean(singleSelectionProp);
381
378
  var changeOptions = singleSelection ? [addedOption] : selectedOptions.concat(addedOption);
382
379
  onChange === null || onChange === void 0 || onChange(changeOptions);
383
380
  _this.clearSearchValue();
384
- _this.clearActiveOption();
385
- if (!isContainerBlur) {
386
- var _this$searchInputRefI2;
387
- (_this$searchInputRefI2 = _this.searchInputRefInstance) === null || _this$searchInputRefI2 === void 0 || _this$searchInputRefI2.focus();
388
- }
389
381
  if (singleSelection) {
382
+ // List closes after single selection; return focus to the input
383
+ _this.clearActiveOption();
384
+ if (!isContainerBlur) {
385
+ var _this$searchInputRefI2;
386
+ (_this$searchInputRefI2 = _this.searchInputRefInstance) === null || _this$searchInputRefI2 === void 0 || _this$searchInputRefI2.focus();
387
+ }
390
388
  requestAnimationFrame(function () {
391
389
  return _this.closeList();
392
390
  });
391
+ } else if (isContainerBlur) {
392
+ // User tabbed away. `onContainerBlur` will close the list. We're only cleaning up state
393
+ _this.clearActiveOption();
393
394
  } else {
394
- _this.setState(function (_ref4) {
395
- var listOptionRefs = _ref4.listOptionRefs,
396
- matchingOptions = _ref4.matchingOptions;
397
- return {
398
- listOptionRefs: listOptionRefs.slice(0, matchingOptions.length - 1),
399
- activeOptionIndex: matchingOptions.indexOf(addedOption)
400
- };
395
+ var currentIndex = matchingOptions.indexOf(addedOption);
396
+ var nextOptions = matchingOptions.filter(function (option) {
397
+ return option !== addedOption;
398
+ });
399
+ _this.setState({
400
+ listOptionRefs: listOptionRefs.slice(0, matchingOptions.length - 1),
401
+ activeOptionIndex: _this.findNextSelectableOptionIndex(nextOptions, Math.min(currentIndex, nextOptions.length - 1)
402
+ // direction defaults to 1 (forward)
403
+ )
401
404
  });
402
405
  }
403
406
  });
@@ -505,6 +508,7 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
505
508
  delimiter = _this$props11.delimiter,
506
509
  append = _this$props11.append,
507
510
  autoFocus = _this$props11.autoFocus,
511
+ onFocusBadge = _this$props11.onFocusBadge,
508
512
  truncationProps = _this$props11.truncationProps,
509
513
  inputPopoverProps = _this$props11.inputPopoverProps,
510
514
  optionMatcher = _this$props11.optionMatcher,
@@ -512,12 +516,12 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
512
516
  ariaLabelledby = _this$props11['aria-labelledby'],
513
517
  ariaDescribedby = _this$props11['aria-describedby'],
514
518
  rest = _objectWithoutProperties(_this$props11, _excluded);
515
- var _this$state2 = this.state,
516
- activeOptionIndex = _this$state2.activeOptionIndex,
517
- hasFocus = _this$state2.hasFocus,
518
- isListOpen = _this$state2.isListOpen,
519
- searchValue = _this$state2.searchValue,
520
- matchingOptions = _this$state2.matchingOptions;
519
+ var _this$state3 = this.state,
520
+ activeOptionIndex = _this$state3.activeOptionIndex,
521
+ hasFocus = _this$state3.hasFocus,
522
+ isListOpen = _this$state3.isListOpen,
523
+ searchValue = _this$state3.searchValue,
524
+ matchingOptions = _this$state3.matchingOptions;
521
525
 
522
526
  // Make sure we have a valid ID if users don't pass one as a prop
523
527
  var inputId = id !== null && id !== void 0 ? id : this.rootId('_eui-combobox-id');
@@ -568,7 +572,8 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
568
572
  delimiter: delimiter,
569
573
  getSelectedOptionForSearchValue: _matching_options.getSelectedOptionForSearchValue,
570
574
  listboxAriaLabel: listboxAriaLabel,
571
- truncationProps: truncationProps
575
+ truncationProps: truncationProps,
576
+ onFocusBadge: onFocusBadge
572
577
  });
573
578
  });
574
579
  }
@@ -593,11 +598,11 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
593
598
  ref: _this2.comboBoxRefCallback
594
599
  }), (0, _react2.jsx)(_popover.EuiInputPopover, _extends({
595
600
  fullWidth: fullWidth,
596
- panelPaddingSize: "none",
601
+ panelPaddingSize: "s",
597
602
  disableFocusTrap: true,
598
603
  closeOnScroll: true
599
604
  }, inputPopoverProps, {
600
- isOpen: isListOpen,
605
+ isOpen: isListOpen && !noSuggestions,
601
606
  closePopover: _this2.closeList
602
607
  /* we don't want content changes to be announced via aria-live
603
608
  because ComboBox uses a virtualized list that updates itself
@@ -605,7 +610,10 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
605
610
  "aria-live": "off",
606
611
  input: (0, _react2.jsx)(_combo_box_input.EuiComboBoxInput, {
607
612
  compressed: compressed,
608
- focusedOptionId: _this2.hasActiveOption() ? (_this2$state$listOpti = (_this2$state$listOpti2 = _this2.state.listOptionRefs[_this2.state.activeOptionIndex]) === null || _this2$state$listOpti2 === void 0 ? void 0 : _this2$state$listOpti2.id) !== null && _this2$state$listOpti !== void 0 ? _this2$state$listOpti : _this2.rootId("_option-".concat(_this2.state.activeOptionIndex)) : undefined,
613
+ focusedOptionId: _this2.hasActiveOption() ? (_this2$state$listOpti = (_this2$state$listOpti2 = _this2.state.listOptionRefs[_this2.state.activeOptionIndex]) === null || _this2$state$listOpti2 === void 0 ? void 0 : _this2$state$listOpti2.id) !== null && _this2$state$listOpti !== void 0 ? _this2$state$listOpti :
614
+ // uses the original `options` array to ensure a stable `id`, otherwise `aria-activedescendant`
615
+ // loses focus on selecting an option (due to actively removing it from the list)
616
+ _this2.rootId("_option-".concat(_this2.props.options.indexOf(matchingOptions[activeOptionIndex]))) : undefined,
609
617
  fullWidth: fullWidth,
610
618
  hasSelectedOptions: selectedOptions.length > 0,
611
619
  id: inputId,
@@ -795,7 +803,7 @@ EuiComboBox.propTypes = {
795
803
  "aria-labelledby": _propTypes.default.string,
796
804
  /**
797
805
  * By default, EuiComboBox will truncate option labels at the end of
798
- * the string. You can use pass in a custom truncation configuration that
806
+ * the string. You can pass in a custom truncation configuration that
799
807
  * accepts any [EuiTextTruncate](/#/utilities/text-truncation) prop,
800
808
  * except for `text` and `children`.
801
809
  *
@@ -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
  };