@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
@@ -33,23 +33,23 @@ var EuiToolTipPopover = exports.EuiToolTipPopover = function EuiToolTipPopover(_
33
33
  popoverRef = _ref.popoverRef,
34
34
  calculatedPosition = _ref.calculatedPosition,
35
35
  rest = _objectWithoutProperties(_ref, _excluded);
36
- var popover = (0, _react.useRef)();
37
- var euiTheme = (0, _services.useEuiTheme)();
38
- var styles = (0, _tool_tip.euiToolTipStyles)(euiTheme);
36
+ var popover = (0, _react.useRef)(null);
37
+ var styles = (0, _services.useEuiMemoizedStyles)(_tool_tip.euiToolTipStyles);
39
38
  var cssStyles = [styles.euiToolTip, calculatedPosition && styles[calculatedPosition]];
40
39
  var updateDimensions = (0, _react.useCallback)(function () {
41
40
  requestAnimationFrame(function () {
42
- // Because of this delay, sometimes `positionToolTip` becomes unavailable.
41
+ // Because of this delay, the popover may have unmounted by the time the RAF fires.
43
42
  if (popover.current) {
44
43
  positionToolTip();
45
44
  }
46
45
  });
47
46
  }, [positionToolTip]);
48
- var setPopoverRef = function setPopoverRef(ref) {
47
+ var setPopoverRef = (0, _react.useCallback)(function (ref) {
48
+ popover.current = ref;
49
49
  if (popoverRef) {
50
50
  popoverRef(ref);
51
51
  }
52
- };
52
+ }, [popoverRef]);
53
53
  (0, _react.useEffect)(function () {
54
54
  document.body.classList.add('euiBody-hasPortalContent');
55
55
  window.addEventListener('resize', updateDimensions);
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useEuiYScrollWithShadows = exports.useEuiYScroll = exports.useEuiXScrollWithShadows = exports.useEuiXScroll = exports.useEuiScrollBar = exports.useEuiOverflowScroll = exports.euiYScrollWithShadows = exports.euiYScroll = exports.euiXScrollWithShadows = exports.euiXScroll = exports.euiScrollBarStyles = exports.euiOverflowScroll = exports.euiFullHeight = void 0;
6
+ exports.useEuiYScrollWithShadows = exports.useEuiYScroll = exports.useEuiXScrollWithShadows = exports.useEuiXScroll = exports.useEuiScrollBar = exports.useEuiOverflowScroll = exports.euiYScrollWithShadows = exports.euiYScroll = exports.euiXScrollWithShadows = exports.euiXScroll = exports.euiScrollBarStyles = exports.euiOverflowShadowStyles = exports.euiOverflowScroll = exports.euiFullHeight = void 0;
7
+ var _euiThemeCommon = require("@elastic/eui-theme-common");
7
8
  var _theme = require("../../services/theme");
8
9
  var _color = require("../../services/color");
9
10
  var _functions = require("../functions");
@@ -52,11 +53,15 @@ var useEuiScrollBar = exports.useEuiScrollBar = function useEuiScrollBar(options
52
53
  * Overflow shadow masks for use in YScroll and XScroll helpers
53
54
  */
54
55
 
55
- var euiOverflowShadowStyles = function euiOverflowShadowStyles(_ref3) {
56
- var size = _ref3.euiTheme.size;
56
+ var euiOverflowShadowStyles = exports.euiOverflowShadowStyles = function euiOverflowShadowStyles(_ref3) {
57
+ var _ref3$euiTheme = _ref3.euiTheme,
58
+ size = _ref3$euiTheme.size,
59
+ colors = _ref3$euiTheme.colors;
57
60
  var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
58
61
  _direction = _ref4.direction,
59
- _side = _ref4.side;
62
+ _side = _ref4.side,
63
+ _ref4$hasAnimatedOver = _ref4.hasAnimatedOverflowShadow,
64
+ hasAnimatedOverflowShadow = _ref4$hasAnimatedOver === void 0 ? false : _ref4$hasAnimatedOver;
60
65
  var direction = _direction || 'y';
61
66
  var side = _side || 'both';
62
67
  var hideHeight = size.s;
@@ -80,11 +85,20 @@ var euiOverflowShadowStyles = function euiOverflowShadowStyles(_ref3) {
80
85
  // - https://github.com/elastic/kibana/issues/180828
81
86
  // - https://github.com/elastic/eui/pull/6343#issuecomment-1302732021
82
87
  var chromiumMaskWorkaround = 'transform: translateZ(0);';
83
- if (direction === 'y') {
84
- return "mask-image: linear-gradient(to bottom, ".concat(gradient, "); ").concat(chromiumMaskWorkaround);
85
- } else {
86
- return "mask-image: linear-gradient(to right, ".concat(gradient, "); ").concat(chromiumMaskWorkaround);
88
+ var overflowShadowStatic = direction === 'y' ? "mask-image: linear-gradient(to bottom, ".concat(gradient, "); ").concat(chromiumMaskWorkaround) : "mask-image: linear-gradient(to right, ".concat(gradient, "); ").concat(chromiumMaskWorkaround);
89
+
90
+ // If supported, use the scroll timeline API to animate the gradient to show/hide it on the scroll edges.
91
+ // We only support vertical scrolling as horizontal scrolling has increased complexity on element dimensions.
92
+ if (hasAnimatedOverflowShadow && direction === 'y') {
93
+ var featureFlag = 'animation-timeline: scroll()';
94
+ var gradientStartColor = "var(--euiOverflowShadowColor, ".concat(colors.backgroundBasePlain, ")");
95
+ var gradientEndColor = 'transparent';
96
+ var gradientSize = size.base;
97
+ var gradientScrollRange = size.m;
98
+ var commonPseudoElementStyles = "\n content: '';\n display: block;\n position: sticky;\n z-index: 1;\n block-size: ".concat(gradientSize, ";\n pointer-events: none;\n ");
99
+ return "\n @supports not (".concat(featureFlag, ") {\n ").concat(overflowShadowStatic, "\n }\n\n ").concat(_euiThemeCommon.euiCantAnimate, " {\n ").concat(overflowShadowStatic, "\n }\n\n ").concat(_euiThemeCommon.euiCanAnimate, " {\n @supports (").concat(featureFlag, ") {\n @keyframes show { \n from { opacity: 0 } \n to { opacity: 1 }\n }\n @keyframes hide { \n from { opacity: 1 }\n to { opacity: 0 }\n }\n\n position: relative;\n\n /* Gradient on start edge */\n &::before {\n ").concat(commonPseudoElementStyles, "\n inset-block-start: 0;\n /* prevent pushing down the content */\n ").concat((0, _functions.logicalCSS)('margin-bottom', "-".concat(gradientSize)), " \n /* uses CSS custom property to support customization depending on layout wrapper background color */\n background: linear-gradient(to bottom, ").concat(gradientStartColor, ", ").concat(gradientEndColor, ");\n \n opacity: 0;\n animation: show linear both;\n animation-timeline: scroll(y);\n animation-range: 0px ").concat(gradientScrollRange, ";\n }\n\n /* Gradient on end edge */\n &::after {\n ").concat(commonPseudoElementStyles, "\n inset-block-end: 0;\n /* prevent adding extra space */\n ").concat((0, _functions.logicalCSS)('margin-top', "-".concat(gradientSize)), " \n background: linear-gradient(to top, ").concat(gradientStartColor, ", ").concat(gradientEndColor, ");\n\n \n /* NOTE: To ensure the bottom gradient is not visible when the container has no overflow,\n we need to use opacity: 0 as default. Using two animations with 'animation-fill-mode: forwards'\n ensures the show/hide animation works both with and without overflow. */\n /* scroll animation */\n opacity: 0;\n animation-name: show, hide;\n animation-timing-function: step-start, linear;\n animation-fill-mode: forwards;\n animation-timeline: scroll(y);\n animation-range: 0% 100%, calc(100% - ").concat(gradientScrollRange, ") 100%;\n }\n }\n }\n ");
87
100
  }
101
+ return overflowShadowStatic;
88
102
  };
89
103
 
90
104
  /**
@@ -110,20 +124,27 @@ var euiYScrollWithShadows = exports.euiYScrollWithShadows = function euiYScrollW
110
124
  var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
111
125
  height = _ref7.height,
112
126
  _ref7$side = _ref7.side,
113
- side = _ref7$side === void 0 ? 'both' : _ref7$side;
127
+ side = _ref7$side === void 0 ? 'both' : _ref7$side,
128
+ _ref7$hasAnimatedOver = _ref7.hasAnimatedOverflowShadow,
129
+ hasAnimatedOverflowShadow = _ref7$hasAnimatedOver === void 0 ? false : _ref7$hasAnimatedOver;
114
130
  return "\n ".concat(euiYScroll(euiTheme, {
115
131
  height: height
116
132
  }), "\n ").concat(euiOverflowShadowStyles(euiTheme, {
117
133
  direction: 'y',
118
- side: side
134
+ side: side,
135
+ hasAnimatedOverflowShadow: hasAnimatedOverflowShadow
119
136
  }), "\n");
120
137
  };
121
138
  var useEuiYScrollWithShadows = exports.useEuiYScrollWithShadows = function useEuiYScrollWithShadows() {
122
139
  var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
123
- height = _ref8.height;
140
+ height = _ref8.height,
141
+ side = _ref8.side,
142
+ hasAnimatedOverflowShadow = _ref8.hasAnimatedOverflowShadow;
124
143
  var euiTheme = (0, _theme.useEuiTheme)();
125
144
  return euiYScrollWithShadows(euiTheme, {
126
- height: height
145
+ height: height,
146
+ side: side,
147
+ hasAnimatedOverflowShadow: hasAnimatedOverflowShadow
127
148
  });
128
149
  };
129
150
  var euiXScroll = exports.euiXScroll = function euiXScroll(euiTheme) {
@@ -6,9 +6,6 @@
6
6
  export declare const waitForEuiPopoverOpen: () => Promise<void>;
7
7
  export declare const waitForEuiPopoverClose: () => Promise<void>;
8
8
 
9
- export declare const waitForEuiToolTipVisible: () => Promise<void>;
10
- export declare const waitForEuiToolTipHidden: () => Promise<void>;
11
-
12
9
  export declare const showEuiComboBoxOptions: () => Promise<void>;
13
10
 
14
11
  export declare const waitForEuiContextMenuPanelTransition: () => Promise<void>;
@@ -4,7 +4,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.waitForEuiToolTipVisible = exports.waitForEuiToolTipHidden = exports.waitForEuiPopoverOpen = exports.waitForEuiPopoverClose = exports.waitForEuiContextMenuPanelTransition = exports.showEuiComboBoxOptions = void 0;
7
+ exports.waitForEuiPopoverOpen = exports.waitForEuiPopoverClose = exports.waitForEuiContextMenuPanelTransition = exports.simulateFocusVisible = exports.showEuiComboBoxOptions = exports.focusEuiToolTipTrigger = void 0;
8
8
  require("@testing-library/jest-dom");
9
9
  var _react = require("@testing-library/react");
10
10
  var _custom_render = require("./custom_render");
@@ -68,81 +68,59 @@ var waitForEuiPopoverClose = exports.waitForEuiPopoverClose = /*#__PURE__*/funct
68
68
  }();
69
69
 
70
70
  /**
71
- * Ensure the EuiToolTip being tested is open and visible before continuing
71
+ * jsdom does not track keyboard vs. mouse input modality, so `:focus-visible`
72
+ * always returns false. Call this before `fireEvent.focus()` on an element that
73
+ * should be treated as keyboard-focused.
74
+ *
75
+ * Returns a cleanup function, call it after test assertions to restore the spy.
72
76
  */
73
- var waitForEuiToolTipVisible = exports.waitForEuiToolTipVisible = /*#__PURE__*/function () {
74
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
75
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
76
- while (1) switch (_context3.prev = _context3.next) {
77
- case 0:
78
- _context3.next = 2;
79
- return (0, _react.waitFor)(function () {
80
- var tooltip = document.querySelector('.euiToolTipPopover');
81
- expect(tooltip).toBeVisible();
82
- }, {
83
- timeout: 3000
84
- } // Account for long delay on tooltips
85
- );
86
- case 2:
87
- return _context3.abrupt("return", _context3.sent);
88
- case 3:
89
- case "end":
90
- return _context3.stop();
91
- }
92
- }, _callee3);
93
- }));
94
- return function waitForEuiToolTipVisible() {
95
- return _ref3.apply(this, arguments);
77
+ var simulateFocusVisible = exports.simulateFocusVisible = function simulateFocusVisible(element) {
78
+ var originalMatches = Element.prototype.matches.bind(element);
79
+ var spy = jest.spyOn(element, 'matches').mockImplementation(function (selector) {
80
+ return selector === ':focus-visible' ? true : originalMatches(selector);
81
+ });
82
+ return function () {
83
+ return spy.mockRestore();
96
84
  };
97
- }();
98
- var waitForEuiToolTipHidden = exports.waitForEuiToolTipHidden = /*#__PURE__*/function () {
99
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
100
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
101
- while (1) switch (_context4.prev = _context4.next) {
102
- case 0:
103
- _context4.next = 2;
104
- return (0, _react.waitFor)(function () {
105
- var tooltip = document.querySelector('.euiToolTipPopover');
106
- expect(tooltip).toBeNull();
107
- });
108
- case 2:
109
- return _context4.abrupt("return", _context4.sent);
110
- case 3:
111
- case "end":
112
- return _context4.stop();
113
- }
114
- }, _callee4);
115
- }));
116
- return function waitForEuiToolTipHidden() {
117
- return _ref4.apply(this, arguments);
118
- };
119
- }();
85
+ };
86
+
87
+ /**
88
+ * Prefer this over `fireEvent.focus()` in tooltip tests. Plain `fireEvent.focus`
89
+ * does not set `:focus-visible` in jsdom and will not trigger the tooltip.
90
+ *
91
+ * Returns a cleanup function to restore the mock after assertions.
92
+ */
93
+ var focusEuiToolTipTrigger = exports.focusEuiToolTipTrigger = function focusEuiToolTipTrigger(element) {
94
+ var cleanup = simulateFocusVisible(element);
95
+ _react.fireEvent.focus(element);
96
+ return cleanup;
97
+ };
120
98
 
121
99
  /**
122
100
  * EuiComboBox
123
101
  */
124
102
 
125
103
  var showEuiComboBoxOptions = exports.showEuiComboBoxOptions = /*#__PURE__*/function () {
126
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
127
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
128
- while (1) switch (_context5.prev = _context5.next) {
104
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
105
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
106
+ while (1) switch (_context3.prev = _context3.next) {
129
107
  case 0:
130
108
  _react.fireEvent.click(_custom_render.screen.getByTestSubject('comboBoxToggleListButton'));
131
- _context5.next = 3;
109
+ _context3.next = 3;
132
110
  return waitForEuiPopoverOpen();
133
111
  case 3:
134
- _context5.next = 5;
112
+ _context3.next = 5;
135
113
  return (0, _react.waitFor)(function () {
136
114
  expect(_custom_render.screen.getByRole('listbox')).toBeInTheDocument();
137
115
  });
138
116
  case 5:
139
117
  case "end":
140
- return _context5.stop();
118
+ return _context3.stop();
141
119
  }
142
- }, _callee5);
120
+ }, _callee3);
143
121
  }));
144
122
  return function showEuiComboBoxOptions() {
145
- return _ref5.apply(this, arguments);
123
+ return _ref3.apply(this, arguments);
146
124
  };
147
125
  }();
148
126
 
@@ -151,16 +129,16 @@ var showEuiComboBoxOptions = exports.showEuiComboBoxOptions = /*#__PURE__*/funct
151
129
  */
152
130
 
153
131
  var waitForEuiContextMenuPanelTransition = exports.waitForEuiContextMenuPanelTransition = /*#__PURE__*/function () {
154
- var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
132
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
155
133
  var getPanels;
156
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
157
- while (1) switch (_context6.prev = _context6.next) {
134
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
135
+ while (1) switch (_context4.prev = _context4.next) {
158
136
  case 0:
159
137
  // Used document instead of container or screen due to context menus living in portals
160
138
  getPanels = function getPanels() {
161
139
  return document.querySelectorAll('.euiContextMenuPanel');
162
140
  }; // 2 panels will appear for the transition animation
163
- _context6.next = 3;
141
+ _context4.next = 3;
164
142
  return (0, _react.waitFor)(function () {
165
143
  expect(getPanels().length).toEqual(2);
166
144
  });
@@ -175,11 +153,11 @@ var waitForEuiContextMenuPanelTransition = exports.waitForEuiContextMenuPanelTra
175
153
  expect(getPanels().length).toEqual(1);
176
154
  case 6:
177
155
  case "end":
178
- return _context6.stop();
156
+ return _context4.stop();
179
157
  }
180
- }, _callee6);
158
+ }, _callee4);
181
159
  }));
182
160
  return function waitForEuiContextMenuPanelTransition() {
183
- return _ref6.apply(this, arguments);
161
+ return _ref4.apply(this, arguments);
184
162
  };
185
163
  }();
@@ -79,7 +79,6 @@ export var CollapsedItemActions = function CollapsedItemActions(_ref) {
79
79
  },
80
80
  toolTipContent: toolTipContent,
81
81
  toolTipProps: {
82
- delay: 'long',
83
82
  // Avoid screen-readers announcing the same text twice
84
83
  disableScreenReaderOutput: typeof buttonContent === 'string' && buttonContent === toolTipContent
85
84
  }
@@ -103,8 +102,7 @@ export var CollapsedItemActions = function CollapsedItemActions(_ref) {
103
102
  "data-test-subj": "euiCollapsedItemActionsButton"
104
103
  });
105
104
  var withTooltip = !actionsDisabled && ___EmotionJSX(EuiToolTip, {
106
- content: allActionsTooltip,
107
- delay: "long"
105
+ content: allActionsTooltip
108
106
  }, popoverButton);
109
107
  return ___EmotionJSX(EuiPopover, {
110
108
  className: className,
@@ -32,7 +32,6 @@ export var DefaultItemAction = function DefaultItemAction(_ref) {
32
32
  var tooltipContent = callWithItemIfFunction(item)(action.description);
33
33
  var tooltipProps = {
34
34
  content: tooltipContent,
35
- delay: 'long',
36
35
  // Avoid screen-readers announcing the same text twice
37
36
  disableScreenReaderOutput: typeof actionContent === 'string' && actionContent === tooltipContent
38
37
  };
@@ -56,7 +56,6 @@ export var KibanaCollapsibleNavSolution = function KibanaCollapsibleNavSolution(
56
56
  var solutionSolutionSwitcherAriaLabel = useEuiI18n('euiCollapsibleNavKibanaSolution.switcherAriaLabel', ' - click to switch to another solution');
57
57
  var solutionSolutionGroupLabel = useEuiI18n('euiCollapsibleNavKibanaSolution.groupLabel', 'Navigate to solution');
58
58
  var closeSolutionPopover = useCallback(function (event) {
59
- var _childItem$firstEleme;
60
59
  // Allow child items to stop the popover from being closed
61
60
  if (event.isPropagationStopped()) return;
62
61
  // Only listen for clicks on child items - currentTarget is the parent <ul>
@@ -65,7 +64,7 @@ export var KibanaCollapsibleNavSolution = function KibanaCollapsibleNavSolution(
65
64
  // Only close the popover if the item is a clickable link or button
66
65
  var target = event.target;
67
66
  var childItem = target.closest('.euiListGroupItem');
68
- if (['A', 'BUTTON'].includes((childItem === null || childItem === void 0 || (_childItem$firstEleme = childItem.firstElementChild) === null || _childItem$firstEleme === void 0 ? void 0 : _childItem$firstEleme.tagName) || '')) {
67
+ if (['A', 'BUTTON'].includes((childItem === null || childItem === void 0 ? void 0 : childItem.tagName) || '')) {
69
68
  setIsSolutionSwitcherOpen(false);
70
69
  }
71
70
  }, []);
@@ -78,12 +77,10 @@ export var KibanaCollapsibleNavSolution = function KibanaCollapsibleNavSolution(
78
77
  "data-test-subj": "kibanaSolutionSwitcherList",
79
78
  "aria-label": solutionSolutionGroupLabel,
80
79
  listItems: primaryItems,
81
- size: "s",
82
80
  bordered: true,
83
81
  onClick: closeSolutionPopover
84
82
  }), secondaryItems.length > 0 && ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiListGroup, {
85
83
  listItems: secondaryItems,
86
- size: "s",
87
84
  css: styles.euiCollapsibleNavKibanaSolution__secondaryItems,
88
85
  onClick: closeSolutionPopover
89
86
  })));
@@ -87,7 +87,6 @@ export var EuiColorPalettePicker = function EuiColorPalettePicker(_ref) {
87
87
  options: paletteOptions,
88
88
  valueOfSelected: valueOfSelected,
89
89
  onChange: onChange,
90
- hasDividers: true,
91
90
  isInvalid: isInvalid,
92
91
  compressed: compressed,
93
92
  disabled: disabled,
@@ -82,7 +82,7 @@ describe('EuiComboBox', function () {
82
82
  rowHeight: rowHeight
83
83
  }));
84
84
  cy.get('input[data-test-subj="comboBoxSearchInput"]').realClick();
85
- cy.get('button[data-test-subj="titanOption"]').should('exist');
85
+ cy.get('[data-test-subj="titanOption"]').should('exist');
86
86
  cy.checkAxe();
87
87
  });
88
88
  it('has zero violations after keyboard interaction', function () {
@@ -91,7 +91,7 @@ describe('EuiComboBox', function () {
91
91
  }));
92
92
  cy.realPress('Tab');
93
93
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.focus');
94
- cy.get('button[data-test-subj="titanOption"]').should('exist');
94
+ cy.get('[data-test-subj="titanOption"]').should('exist');
95
95
  cy.repeatRealPress('ArrowDown');
96
96
  cy.realPress('Enter');
97
97
  cy.repeatRealPress('ArrowDown');
@@ -117,14 +117,14 @@ describe('EuiComboBox', function () {
117
117
  }));
118
118
  cy.realPress('Tab');
119
119
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.focus');
120
- cy.get('button[data-test-subj="titanOption"]').should('exist');
120
+ cy.get('[data-test-subj="titanOption"]').should('exist');
121
121
  cy.realPress('ArrowDown');
122
122
  cy.realPress('ArrowDown');
123
123
  cy.realPress('ArrowDown');
124
124
  cy.get('input[data-test-subj="comboBoxSearchInput"]').invoke('attr', 'aria-activedescendant').should('include', 'option-2');
125
125
  cy.realPress('Enter');
126
126
  cy.realPress('ArrowDown');
127
- cy.get('input[data-test-subj="comboBoxSearchInput"]').invoke('attr', 'aria-activedescendant').should('include', 'option-3');
127
+ cy.get('input[data-test-subj="comboBoxSearchInput"]').invoke('attr', 'aria-activedescendant').should('include', 'option-4');
128
128
  });
129
129
  it('sets the correct aria-activedescendant id with custom option ids', function () {
130
130
  cy.realMount(___EmotionJSX(ComboBox, {
@@ -154,7 +154,7 @@ describe('EuiComboBox', function () {
154
154
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('exist');
155
155
  cy.realPress('Tab');
156
156
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.focus');
157
- cy.get('button[data-test-subj="titanOption"]').should('exist');
157
+ cy.get('[data-test-subj="titanOption"]').should('exist');
158
158
  cy.realPress('ArrowDown');
159
159
  cy.realPress('ArrowDown');
160
160
  cy.realPress('ArrowDown');
@@ -7,7 +7,7 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
7
7
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
8
8
  import _inherits from "@babel/runtime/helpers/inherits";
9
9
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
- 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"];
10
+ 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"];
11
11
  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; }
12
12
  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; }
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)); }
@@ -88,6 +88,9 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
88
88
  _this.listRefInstance = ref;
89
89
  });
90
90
  _defineProperty(_this, "setListOptionRefs", function (node, index) {
91
+ var current = _this.state.listOptionRefs[index];
92
+ // Skip updating if the ref is null (on cleanup) or didn't change
93
+ if (node === null || node === current) return;
91
94
  _this.setState(function (_ref) {
92
95
  var listOptionRefs = _ref.listOptionRefs;
93
96
  var _listOptionRefs = listOptionRefs;
@@ -108,41 +111,32 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
108
111
  isListOpen: false
109
112
  });
110
113
  });
111
- _defineProperty(_this, "incrementActiveOptionIndex", function (amount) {
112
- // If there are no options available, do nothing.
113
- if (!_this.state.matchingOptions.length) {
114
- return;
114
+ _defineProperty(_this, "findNextSelectableOptionIndex", function (options, startIndex) {
115
+ var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
116
+ if (!options.length) return -1;
117
+ var index = startIndex;
118
+ for (var count = 0; count < options.length; count++) {
119
+ var option = options[index];
120
+ if (!option.isGroupLabelOption && !option.disabled) {
121
+ return index;
122
+ }
123
+ index = (index + direction + options.length) % options.length;
115
124
  }
125
+ return -1; // the remaining options can't be selected (group labels or disabled)
126
+ });
127
+ _defineProperty(_this, "incrementActiveOptionIndex", function (amount) {
128
+ if (!_this.state.matchingOptions.length) return;
116
129
  _this.setState(function (_ref2) {
117
130
  var activeOptionIndex = _ref2.activeOptionIndex,
118
131
  matchingOptions = _ref2.matchingOptions;
119
- var nextActiveOptionIndex;
120
- if (activeOptionIndex < 0) {
121
- // If this is the beginning of the user's keyboard navigation of the menu, then we'll focus
122
- // either the first or last item.
123
- nextActiveOptionIndex = amount < 0 ? matchingOptions.length - 1 : 0;
124
- } else {
125
- nextActiveOptionIndex = activeOptionIndex + amount;
126
- if (nextActiveOptionIndex < 0) {
127
- nextActiveOptionIndex = matchingOptions.length - 1;
128
- } else if (nextActiveOptionIndex === matchingOptions.length) {
129
- nextActiveOptionIndex = 0;
130
- }
131
- }
132
-
133
- // Group titles are included in option list but are not selectable
134
- // Skip group title options
135
132
  var direction = amount > 0 ? 1 : -1;
136
- while (matchingOptions[nextActiveOptionIndex].isGroupLabelOption) {
137
- nextActiveOptionIndex = nextActiveOptionIndex + direction;
138
- if (nextActiveOptionIndex < 0) {
139
- nextActiveOptionIndex = matchingOptions.length - 1;
140
- } else if (nextActiveOptionIndex === matchingOptions.length) {
141
- nextActiveOptionIndex = 0;
142
- }
143
- }
133
+ var startIndex = activeOptionIndex < 0 ?
134
+ // Inintial interaction: jump to first or last item
135
+ amount < 0 ? matchingOptions.length - 1 : 0 :
136
+ // Advance by amount, wrapping around
137
+ (activeOptionIndex + amount + matchingOptions.length) % matchingOptions.length;
144
138
  return {
145
- activeOptionIndex: nextActiveOptionIndex
139
+ activeOptionIndex: _this.findNextSelectableOptionIndex(matchingOptions, startIndex, direction)
146
140
  };
147
141
  });
148
142
  });
@@ -360,27 +354,36 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
360
354
  onChange = _this$props7.onChange,
361
355
  selectedOptions = _this$props7.selectedOptions,
362
356
  singleSelectionProp = _this$props7.singleSelection;
357
+ var _this$state2 = _this.state,
358
+ matchingOptions = _this$state2.matchingOptions,
359
+ listOptionRefs = _this$state2.listOptionRefs;
363
360
  var singleSelection = Boolean(singleSelectionProp);
364
361
  var changeOptions = singleSelection ? [addedOption] : selectedOptions.concat(addedOption);
365
362
  onChange === null || onChange === void 0 || onChange(changeOptions);
366
363
  _this.clearSearchValue();
367
- _this.clearActiveOption();
368
- if (!isContainerBlur) {
369
- var _this$searchInputRefI2;
370
- (_this$searchInputRefI2 = _this.searchInputRefInstance) === null || _this$searchInputRefI2 === void 0 || _this$searchInputRefI2.focus();
371
- }
372
364
  if (singleSelection) {
365
+ // List closes after single selection; return focus to the input
366
+ _this.clearActiveOption();
367
+ if (!isContainerBlur) {
368
+ var _this$searchInputRefI2;
369
+ (_this$searchInputRefI2 = _this.searchInputRefInstance) === null || _this$searchInputRefI2 === void 0 || _this$searchInputRefI2.focus();
370
+ }
373
371
  requestAnimationFrame(function () {
374
372
  return _this.closeList();
375
373
  });
374
+ } else if (isContainerBlur) {
375
+ // User tabbed away. `onContainerBlur` will close the list. We're only cleaning up state
376
+ _this.clearActiveOption();
376
377
  } else {
377
- _this.setState(function (_ref4) {
378
- var listOptionRefs = _ref4.listOptionRefs,
379
- matchingOptions = _ref4.matchingOptions;
380
- return {
381
- listOptionRefs: listOptionRefs.slice(0, matchingOptions.length - 1),
382
- activeOptionIndex: matchingOptions.indexOf(addedOption)
383
- };
378
+ var currentIndex = matchingOptions.indexOf(addedOption);
379
+ var nextOptions = matchingOptions.filter(function (option) {
380
+ return option !== addedOption;
381
+ });
382
+ _this.setState({
383
+ listOptionRefs: listOptionRefs.slice(0, matchingOptions.length - 1),
384
+ activeOptionIndex: _this.findNextSelectableOptionIndex(nextOptions, Math.min(currentIndex, nextOptions.length - 1)
385
+ // direction defaults to 1 (forward)
386
+ )
384
387
  });
385
388
  }
386
389
  });
@@ -488,6 +491,7 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
488
491
  delimiter = _this$props11.delimiter,
489
492
  append = _this$props11.append,
490
493
  autoFocus = _this$props11.autoFocus,
494
+ onFocusBadge = _this$props11.onFocusBadge,
491
495
  truncationProps = _this$props11.truncationProps,
492
496
  inputPopoverProps = _this$props11.inputPopoverProps,
493
497
  optionMatcher = _this$props11.optionMatcher,
@@ -495,12 +499,12 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
495
499
  ariaLabelledby = _this$props11['aria-labelledby'],
496
500
  ariaDescribedby = _this$props11['aria-describedby'],
497
501
  rest = _objectWithoutProperties(_this$props11, _excluded);
498
- var _this$state2 = this.state,
499
- activeOptionIndex = _this$state2.activeOptionIndex,
500
- hasFocus = _this$state2.hasFocus,
501
- isListOpen = _this$state2.isListOpen,
502
- searchValue = _this$state2.searchValue,
503
- matchingOptions = _this$state2.matchingOptions;
502
+ var _this$state3 = this.state,
503
+ activeOptionIndex = _this$state3.activeOptionIndex,
504
+ hasFocus = _this$state3.hasFocus,
505
+ isListOpen = _this$state3.isListOpen,
506
+ searchValue = _this$state3.searchValue,
507
+ matchingOptions = _this$state3.matchingOptions;
504
508
 
505
509
  // Make sure we have a valid ID if users don't pass one as a prop
506
510
  var inputId = id !== null && id !== void 0 ? id : this.rootId('_eui-combobox-id');
@@ -551,7 +555,8 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
551
555
  delimiter: delimiter,
552
556
  getSelectedOptionForSearchValue: getSelectedOptionForSearchValue,
553
557
  listboxAriaLabel: listboxAriaLabel,
554
- truncationProps: truncationProps
558
+ truncationProps: truncationProps,
559
+ onFocusBadge: onFocusBadge
555
560
  });
556
561
  });
557
562
  }
@@ -576,11 +581,11 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
576
581
  ref: _this2.comboBoxRefCallback
577
582
  }), ___EmotionJSX(EuiInputPopover, _extends({
578
583
  fullWidth: fullWidth,
579
- panelPaddingSize: "none",
584
+ panelPaddingSize: "s",
580
585
  disableFocusTrap: true,
581
586
  closeOnScroll: true
582
587
  }, inputPopoverProps, {
583
- isOpen: isListOpen,
588
+ isOpen: isListOpen && !noSuggestions,
584
589
  closePopover: _this2.closeList
585
590
  /* we don't want content changes to be announced via aria-live
586
591
  because ComboBox uses a virtualized list that updates itself
@@ -588,7 +593,10 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
588
593
  "aria-live": "off",
589
594
  input: ___EmotionJSX(EuiComboBoxInput, {
590
595
  compressed: compressed,
591
- 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,
596
+ 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 :
597
+ // uses the original `options` array to ensure a stable `id`, otherwise `aria-activedescendant`
598
+ // loses focus on selecting an option (due to actively removing it from the list)
599
+ _this2.rootId("_option-".concat(_this2.props.options.indexOf(matchingOptions[activeOptionIndex]))) : undefined,
592
600
  fullWidth: fullWidth,
593
601
  hasSelectedOptions: selectedOptions.length > 0,
594
602
  id: inputId,