@elastic/eui 115.0.0 → 116.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  2. package/es/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  3. package/es/components/combo_box/combo_box.a11y.js +5 -5
  4. package/es/components/combo_box/combo_box.js +61 -53
  5. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +147 -84
  6. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +8 -7
  7. package/es/components/context_menu/context_menu.js +19 -21
  8. package/es/components/context_menu/context_menu.styles.js +5 -2
  9. package/es/components/context_menu/context_menu_item.js +69 -58
  10. package/es/components/context_menu/context_menu_item.styles.js +14 -28
  11. package/es/components/context_menu/context_menu_panel.js +37 -21
  12. package/es/components/context_menu/context_menu_panel.styles.js +7 -2
  13. package/es/components/context_menu/context_menu_panel_title.js +124 -0
  14. package/es/components/context_menu/context_menu_panel_title.styles.js +20 -0
  15. package/es/components/context_menu/index.js +2 -1
  16. package/es/components/datagrid/body/cell/data_grid_cell.js +35 -29
  17. package/es/components/datagrid/body/data_grid_body.js +23 -17
  18. package/es/components/datagrid/body/data_grid_body_custom.js +23 -17
  19. package/es/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  20. package/es/components/datagrid/body/header/column_actions.js +1 -2
  21. package/es/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  22. package/es/components/datagrid/controls/column_sorting.js +23 -17
  23. package/es/components/datagrid/utils/in_memory.js +23 -17
  24. package/es/components/filter_group/filter_group.a11y.js +8 -2
  25. package/es/components/flyout/flyout_menu.js +1 -4
  26. package/es/components/form/checkbox/checkbox.js +6 -6
  27. package/es/components/form/checkbox/checkbox.styles.js +1 -22
  28. package/es/components/form/checkbox/checkbox_control.js +78 -0
  29. package/es/components/form/checkbox/checkbox_control.styles.js +40 -0
  30. package/es/components/form/checkbox/index.js +1 -0
  31. package/es/components/form/form.styles.js +2 -1
  32. package/es/components/form/radio/radio.styles.js +1 -1
  33. package/es/components/form/super_select/super_select.js +118 -99
  34. package/es/components/form/super_select/super_select.styles.js +4 -8
  35. package/es/components/form/super_select/super_select_item.js +10 -18
  36. package/es/components/link/external_link_icon.js +4 -2
  37. package/es/components/list_group/list_group.js +20 -34
  38. package/es/components/list_group/list_group.styles.js +2 -16
  39. package/es/components/list_group/list_group_item.js +75 -86
  40. package/es/components/list_group/list_group_item.styles.js +17 -61
  41. package/es/components/list_group/list_group_item_extra_action.styles.js +6 -6
  42. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  43. package/es/components/list_item_layout/_list_item_layout.js +692 -0
  44. package/es/components/list_item_layout/_list_item_layout.styles.js +93 -0
  45. package/es/components/list_item_layout/index.js +9 -0
  46. package/es/components/search_bar/filters/field_value_selection_filter.js +2 -1
  47. package/es/components/selectable/selectable.js +1 -0
  48. package/es/components/selectable/selectable_list/selectable_list.js +52 -36
  49. package/es/components/selectable/selectable_list/selectable_list.styles.js +19 -4
  50. package/es/components/selectable/selectable_list/selectable_list_item.js +45 -152
  51. package/es/components/selectable/selectable_list/utils/get_list_item_size.js +17 -0
  52. package/es/components/selectable/selectable_search/selectable_search.js +4 -1
  53. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  54. package/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  55. package/es/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  56. package/es/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  57. package/es/global_styling/mixins/_helpers.js +32 -11
  58. package/eui.d.ts +10397 -8051
  59. package/i18ntokens.json +2607 -2589
  60. package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  61. package/lib/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  62. package/lib/components/combo_box/combo_box.a11y.js +5 -5
  63. package/lib/components/combo_box/combo_box.js +61 -53
  64. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -82
  65. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  66. package/lib/components/context_menu/context_menu.js +20 -22
  67. package/lib/components/context_menu/context_menu.styles.js +4 -1
  68. package/lib/components/context_menu/context_menu_item.js +70 -59
  69. package/lib/components/context_menu/context_menu_item.styles.js +13 -27
  70. package/lib/components/context_menu/context_menu_panel.js +37 -21
  71. package/lib/components/context_menu/context_menu_panel.styles.js +7 -2
  72. package/lib/components/context_menu/context_menu_panel_title.js +130 -0
  73. package/lib/components/context_menu/context_menu_panel_title.styles.js +26 -0
  74. package/lib/components/context_menu/index.js +8 -1
  75. package/lib/components/datagrid/body/cell/data_grid_cell.js +35 -29
  76. package/lib/components/datagrid/body/data_grid_body.js +23 -17
  77. package/lib/components/datagrid/body/data_grid_body_custom.js +23 -17
  78. package/lib/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  79. package/lib/components/datagrid/body/header/column_actions.js +1 -2
  80. package/lib/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  81. package/lib/components/datagrid/controls/column_sorting.js +23 -17
  82. package/lib/components/datagrid/utils/in_memory.js +23 -17
  83. package/lib/components/filter_group/filter_group.a11y.js +8 -2
  84. package/lib/components/flyout/flyout_menu.js +1 -4
  85. package/lib/components/form/checkbox/checkbox.js +6 -6
  86. package/lib/components/form/checkbox/checkbox.styles.js +1 -22
  87. package/lib/components/form/checkbox/checkbox_control.js +84 -0
  88. package/lib/components/form/checkbox/checkbox_control.styles.js +44 -0
  89. package/lib/components/form/checkbox/index.js +7 -0
  90. package/lib/components/form/form.styles.js +2 -1
  91. package/lib/components/form/radio/radio.styles.js +1 -1
  92. package/lib/components/form/super_select/super_select.js +116 -97
  93. package/lib/components/form/super_select/super_select.styles.js +4 -8
  94. package/lib/components/form/super_select/super_select_item.js +13 -18
  95. package/lib/components/link/external_link_icon.js +4 -2
  96. package/lib/components/list_group/list_group.js +21 -35
  97. package/lib/components/list_group/list_group.styles.js +2 -16
  98. package/lib/components/list_group/list_group_item.js +75 -86
  99. package/lib/components/list_group/list_group_item.styles.js +17 -61
  100. package/lib/components/list_group/list_group_item_extra_action.styles.js +5 -5
  101. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  102. package/lib/components/list_item_layout/_list_item_layout.js +699 -0
  103. package/lib/components/list_item_layout/_list_item_layout.styles.js +97 -0
  104. package/lib/components/list_item_layout/index.js +12 -0
  105. package/lib/components/search_bar/filters/field_value_selection_filter.js +2 -1
  106. package/lib/components/selectable/selectable.js +1 -0
  107. package/lib/components/selectable/selectable_list/selectable_list.js +50 -34
  108. package/lib/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  109. package/lib/components/selectable/selectable_list/selectable_list_item.js +44 -152
  110. package/lib/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  111. package/lib/components/selectable/selectable_search/selectable_search.js +4 -1
  112. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  113. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  114. package/lib/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  115. package/lib/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  116. package/lib/global_styling/mixins/_helpers.js +33 -12
  117. package/optimize/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -4
  118. package/optimize/es/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  119. package/optimize/es/components/combo_box/combo_box.a11y.js +5 -5
  120. package/optimize/es/components/combo_box/combo_box.js +60 -52
  121. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -83
  122. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +8 -7
  123. package/optimize/es/components/context_menu/context_menu.js +18 -13
  124. package/optimize/es/components/context_menu/context_menu.styles.js +5 -2
  125. package/optimize/es/components/context_menu/context_menu_item.js +55 -53
  126. package/optimize/es/components/context_menu/context_menu_item.styles.js +14 -28
  127. package/optimize/es/components/context_menu/context_menu_panel.js +36 -17
  128. package/optimize/es/components/context_menu/context_menu_panel.styles.js +7 -2
  129. package/optimize/es/components/context_menu/context_menu_panel_title.js +53 -0
  130. package/optimize/es/components/context_menu/context_menu_panel_title.styles.js +20 -0
  131. package/optimize/es/components/context_menu/index.js +2 -1
  132. package/optimize/es/components/datagrid/body/header/column_actions.js +1 -2
  133. package/optimize/es/components/filter_group/filter_group.a11y.js +8 -2
  134. package/optimize/es/components/flyout/flyout_menu.js +1 -4
  135. package/optimize/es/components/form/checkbox/checkbox.js +6 -6
  136. package/optimize/es/components/form/checkbox/checkbox.styles.js +1 -22
  137. package/optimize/es/components/form/checkbox/checkbox_control.js +48 -0
  138. package/optimize/es/components/form/checkbox/checkbox_control.styles.js +40 -0
  139. package/optimize/es/components/form/checkbox/index.js +1 -0
  140. package/optimize/es/components/form/form.styles.js +2 -1
  141. package/optimize/es/components/form/radio/radio.styles.js +1 -1
  142. package/optimize/es/components/form/super_select/super_select.js +118 -90
  143. package/optimize/es/components/form/super_select/super_select.styles.js +4 -8
  144. package/optimize/es/components/form/super_select/super_select_item.js +10 -14
  145. package/optimize/es/components/link/external_link_icon.js +4 -2
  146. package/optimize/es/components/list_group/list_group.js +7 -14
  147. package/optimize/es/components/list_group/list_group.styles.js +2 -16
  148. package/optimize/es/components/list_group/list_group_item.js +62 -79
  149. package/optimize/es/components/list_group/list_group_item.styles.js +17 -61
  150. package/optimize/es/components/list_group/list_group_item_extra_action.styles.js +6 -6
  151. package/optimize/es/components/list_item_layout/_list_item_layout.js +353 -0
  152. package/optimize/es/components/list_item_layout/_list_item_layout.styles.js +93 -0
  153. package/optimize/es/components/list_item_layout/index.js +9 -0
  154. package/optimize/es/components/search_bar/filters/field_value_selection_filter.js +2 -1
  155. package/optimize/es/components/selectable/selectable_list/selectable_list.js +48 -33
  156. package/optimize/es/components/selectable/selectable_list/selectable_list.styles.js +19 -4
  157. package/optimize/es/components/selectable/selectable_list/selectable_list_item.js +41 -143
  158. package/optimize/es/components/selectable/selectable_list/utils/get_list_item_size.js +17 -0
  159. package/optimize/es/components/selectable/selectable_search/selectable_search.js +4 -1
  160. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  161. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  162. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  163. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  164. package/optimize/es/global_styling/mixins/_helpers.js +32 -11
  165. package/optimize/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -4
  166. package/optimize/lib/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  167. package/optimize/lib/components/combo_box/combo_box.a11y.js +5 -5
  168. package/optimize/lib/components/combo_box/combo_box.js +60 -52
  169. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +143 -81
  170. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  171. package/optimize/lib/components/context_menu/context_menu.js +19 -14
  172. package/optimize/lib/components/context_menu/context_menu.styles.js +4 -1
  173. package/optimize/lib/components/context_menu/context_menu_item.js +56 -54
  174. package/optimize/lib/components/context_menu/context_menu_item.styles.js +13 -27
  175. package/optimize/lib/components/context_menu/context_menu_panel.js +36 -17
  176. package/optimize/lib/components/context_menu/context_menu_panel.styles.js +7 -2
  177. package/optimize/lib/components/context_menu/context_menu_panel_title.js +59 -0
  178. package/optimize/lib/components/context_menu/context_menu_panel_title.styles.js +26 -0
  179. package/optimize/lib/components/context_menu/index.js +8 -1
  180. package/optimize/lib/components/datagrid/body/header/column_actions.js +1 -2
  181. package/optimize/lib/components/filter_group/filter_group.a11y.js +8 -2
  182. package/optimize/lib/components/flyout/flyout_menu.js +1 -4
  183. package/optimize/lib/components/form/checkbox/checkbox.js +6 -6
  184. package/optimize/lib/components/form/checkbox/checkbox.styles.js +1 -22
  185. package/optimize/lib/components/form/checkbox/checkbox_control.js +54 -0
  186. package/optimize/lib/components/form/checkbox/checkbox_control.styles.js +44 -0
  187. package/optimize/lib/components/form/checkbox/index.js +7 -0
  188. package/optimize/lib/components/form/form.styles.js +2 -1
  189. package/optimize/lib/components/form/radio/radio.styles.js +1 -1
  190. package/optimize/lib/components/form/super_select/super_select.js +116 -88
  191. package/optimize/lib/components/form/super_select/super_select.styles.js +4 -8
  192. package/optimize/lib/components/form/super_select/super_select_item.js +13 -14
  193. package/optimize/lib/components/link/external_link_icon.js +4 -2
  194. package/optimize/lib/components/list_group/list_group.js +8 -15
  195. package/optimize/lib/components/list_group/list_group.styles.js +2 -16
  196. package/optimize/lib/components/list_group/list_group_item.js +62 -79
  197. package/optimize/lib/components/list_group/list_group_item.styles.js +17 -61
  198. package/optimize/lib/components/list_group/list_group_item_extra_action.styles.js +5 -5
  199. package/optimize/lib/components/list_item_layout/_list_item_layout.js +361 -0
  200. package/optimize/lib/components/list_item_layout/_list_item_layout.styles.js +97 -0
  201. package/optimize/lib/components/list_item_layout/index.js +12 -0
  202. package/optimize/lib/components/search_bar/filters/field_value_selection_filter.js +2 -1
  203. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +46 -31
  204. package/optimize/lib/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  205. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.js +41 -143
  206. package/optimize/lib/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  207. package/optimize/lib/components/selectable/selectable_search/selectable_search.js +4 -1
  208. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  209. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  210. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  211. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  212. package/optimize/lib/global_styling/mixins/_helpers.js +33 -12
  213. package/package.json +4 -4
  214. package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  215. package/test-env/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  216. package/test-env/components/combo_box/combo_box.a11y.js +5 -5
  217. package/test-env/components/combo_box/combo_box.js +61 -53
  218. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -82
  219. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  220. package/test-env/components/context_menu/context_menu.js +20 -22
  221. package/test-env/components/context_menu/context_menu.styles.js +4 -1
  222. package/test-env/components/context_menu/context_menu_item.js +67 -59
  223. package/test-env/components/context_menu/context_menu_item.styles.js +13 -27
  224. package/test-env/components/context_menu/context_menu_panel.js +37 -21
  225. package/test-env/components/context_menu/context_menu_panel.styles.js +7 -2
  226. package/test-env/components/context_menu/context_menu_panel_title.js +129 -0
  227. package/test-env/components/context_menu/context_menu_panel_title.styles.js +26 -0
  228. package/test-env/components/context_menu/index.js +8 -1
  229. package/test-env/components/datagrid/body/cell/data_grid_cell.js +35 -29
  230. package/test-env/components/datagrid/body/data_grid_body.js +23 -17
  231. package/test-env/components/datagrid/body/data_grid_body_custom.js +23 -17
  232. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  233. package/test-env/components/datagrid/body/header/column_actions.js +1 -2
  234. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  235. package/test-env/components/datagrid/controls/column_sorting.js +23 -17
  236. package/test-env/components/datagrid/utils/in_memory.js +23 -17
  237. package/test-env/components/filter_group/filter_group.a11y.js +8 -2
  238. package/test-env/components/flyout/flyout_menu.js +1 -4
  239. package/test-env/components/form/checkbox/checkbox.js +6 -6
  240. package/test-env/components/form/checkbox/checkbox.styles.js +1 -22
  241. package/test-env/components/form/checkbox/checkbox_control.js +83 -0
  242. package/test-env/components/form/checkbox/checkbox_control.styles.js +44 -0
  243. package/test-env/components/form/checkbox/index.js +7 -0
  244. package/test-env/components/form/form.styles.js +2 -1
  245. package/test-env/components/form/radio/radio.styles.js +1 -1
  246. package/test-env/components/form/super_select/super_select.js +116 -97
  247. package/test-env/components/form/super_select/super_select.styles.js +4 -8
  248. package/test-env/components/form/super_select/super_select_item.js +13 -18
  249. package/test-env/components/link/external_link_icon.js +4 -2
  250. package/test-env/components/list_group/list_group.js +21 -35
  251. package/test-env/components/list_group/list_group.styles.js +2 -16
  252. package/test-env/components/list_group/list_group_item.js +75 -86
  253. package/test-env/components/list_group/list_group_item.styles.js +17 -61
  254. package/test-env/components/list_group/list_group_item_extra_action.styles.js +5 -5
  255. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  256. package/test-env/components/list_item_layout/_list_item_layout.js +691 -0
  257. package/test-env/components/list_item_layout/_list_item_layout.styles.js +97 -0
  258. package/test-env/components/list_item_layout/index.js +12 -0
  259. package/test-env/components/search_bar/filters/field_value_selection_filter.js +2 -1
  260. package/test-env/components/selectable/selectable.js +1 -0
  261. package/test-env/components/selectable/selectable_list/selectable_list.js +50 -34
  262. package/test-env/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  263. package/test-env/components/selectable/selectable_list/selectable_list_item.js +42 -147
  264. package/test-env/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  265. package/test-env/components/selectable/selectable_search/selectable_search.js +4 -1
  266. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  267. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  268. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  269. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  270. package/test-env/global_styling/mixins/_helpers.js +33 -12
  271. package/es/components/selectable/selectable_list/selectable_list_item.styles.js +0 -55
  272. package/lib/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
  273. package/optimize/es/components/selectable/selectable_list/selectable_list_item.styles.js +0 -55
  274. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
  275. package/test-env/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
@@ -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) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@elastic/eui",
3
3
  "description": "Elastic UI Component Library",
4
- "version": "115.0.0",
4
+ "version": "116.0.0",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "main": "lib",
7
7
  "module": "es",
@@ -53,7 +53,7 @@
53
53
  "directory": "packages/eui"
54
54
  },
55
55
  "dependencies": {
56
- "@elastic/eui-theme-common": "9.0.0",
56
+ "@elastic/eui-theme-common": "10.0.0",
57
57
  "@elastic/prismjs-esql": "^1.1.2",
58
58
  "@hello-pangea/dnd": "^16.6.0",
59
59
  "@types/lodash": "^4.14.202",
@@ -109,7 +109,7 @@
109
109
  "@elastic/charts": "^64.1.0",
110
110
  "@elastic/datemath": "^5.0.3",
111
111
  "@elastic/eslint-plugin-eui": "2.12.0",
112
- "@elastic/eui-theme-borealis": "7.0.0",
112
+ "@elastic/eui-theme-borealis": "8.0.0",
113
113
  "@emotion/babel-preset-css-prop": "^11.11.0",
114
114
  "@emotion/cache": "^11.11.0",
115
115
  "@emotion/css": "^11.11.0",
@@ -249,7 +249,7 @@
249
249
  },
250
250
  "peerDependencies": {
251
251
  "@elastic/datemath": "^5.0.2",
252
- "@elastic/eui-theme-borealis": "7.0.0",
252
+ "@elastic/eui-theme-borealis": "8.0.0",
253
253
  "@emotion/css": "11.x",
254
254
  "@emotion/react": "11.x",
255
255
  "@types/react": "^17.0 || ^18.0",
@@ -66,7 +66,6 @@ var KibanaCollapsibleNavSolution = exports.KibanaCollapsibleNavSolution = functi
66
66
  var solutionSolutionSwitcherAriaLabel = (0, _i18n.useEuiI18n)('euiCollapsibleNavKibanaSolution.switcherAriaLabel', ' - click to switch to another solution');
67
67
  var solutionSolutionGroupLabel = (0, _i18n.useEuiI18n)('euiCollapsibleNavKibanaSolution.groupLabel', 'Navigate to solution');
68
68
  var closeSolutionPopover = (0, _react.useCallback)(function (event) {
69
- var _childItem$firstEleme;
70
69
  // Allow child items to stop the popover from being closed
71
70
  if (event.isPropagationStopped()) return;
72
71
  // Only listen for clicks on child items - currentTarget is the parent <ul>
@@ -75,7 +74,7 @@ var KibanaCollapsibleNavSolution = exports.KibanaCollapsibleNavSolution = functi
75
74
  // Only close the popover if the item is a clickable link or button
76
75
  var target = event.target;
77
76
  var childItem = target.closest('.euiListGroupItem');
78
- if (['A', 'BUTTON'].includes((childItem === null || childItem === void 0 || (_childItem$firstEleme = childItem.firstElementChild) === null || _childItem$firstEleme === void 0 ? void 0 : _childItem$firstEleme.tagName) || '')) {
77
+ if (['A', 'BUTTON'].includes((childItem === null || childItem === void 0 ? void 0 : childItem.tagName) || '')) {
79
78
  setIsSolutionSwitcherOpen(false);
80
79
  }
81
80
  }, []);
@@ -88,12 +87,10 @@ var KibanaCollapsibleNavSolution = exports.KibanaCollapsibleNavSolution = functi
88
87
  "data-test-subj": "kibanaSolutionSwitcherList",
89
88
  "aria-label": solutionSolutionGroupLabel,
90
89
  listItems: primaryItems,
91
- size: "s",
92
90
  bordered: true,
93
91
  onClick: closeSolutionPopover
94
92
  }), secondaryItems.length > 0 && (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_list_group.EuiListGroup, {
95
93
  listItems: secondaryItems,
96
- size: "s",
97
94
  css: styles.euiCollapsibleNavKibanaSolution__secondaryItems,
98
95
  onClick: closeSolutionPopover
99
96
  })));
@@ -174,22 +171,28 @@ KibanaCollapsibleNavSolution.propTypes = {
174
171
  "data-test-subj": _propTypes.default.string,
175
172
  css: _propTypes.default.any,
176
173
  /**
177
- * Size of the label text
178
- */
179
- size: _propTypes.default.any,
174
+ * Controls the disabled behavior via the native `disabled` attribute.
175
+ */
176
+ isDisabled: _propTypes.default.bool,
177
+ /**
178
+ * NOTE: Beta feature, may be changed or removed in the future
179
+ *
180
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
181
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
182
+ *
183
+ * Use e.g. when a disabled button should have a tooltip.
184
+ */
185
+ hasAriaDisabled: _propTypes.default.bool,
180
186
  /**
181
187
  * By default the item will get the color `text`.
182
188
  * You can customize the color of the item by passing a color name.
189
+ * @default 'text'
183
190
  */
184
191
  color: _propTypes.default.any,
185
192
  /**
186
193
  * Apply styles indicating an item is active
187
194
  */
188
195
  isActive: _propTypes.default.bool,
189
- /**
190
- * Apply styles indicating an item is disabled
191
- */
192
- isDisabled: _propTypes.default.bool,
193
196
  /**
194
197
  * Make the list item label a link.
195
198
  * While permitted, `href` and `onClick` should not be used together in most cases and may create problems.
@@ -97,7 +97,6 @@ var EuiColorPalettePicker = exports.EuiColorPalettePicker = function EuiColorPal
97
97
  options: paletteOptions,
98
98
  valueOfSelected: valueOfSelected,
99
99
  onChange: onChange,
100
- hasDividers: true,
101
100
  isInvalid: isInvalid,
102
101
  compressed: compressed,
103
102
  disabled: disabled,
@@ -88,7 +88,7 @@ describe('EuiComboBox', function () {
88
88
  rowHeight: rowHeight
89
89
  }));
90
90
  cy.get('input[data-test-subj="comboBoxSearchInput"]').realClick();
91
- cy.get('button[data-test-subj="titanOption"]').should('exist');
91
+ cy.get('[data-test-subj="titanOption"]').should('exist');
92
92
  cy.checkAxe();
93
93
  });
94
94
  it('has zero violations after keyboard interaction', function () {
@@ -97,7 +97,7 @@ describe('EuiComboBox', function () {
97
97
  }));
98
98
  cy.realPress('Tab');
99
99
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.focus');
100
- cy.get('button[data-test-subj="titanOption"]').should('exist');
100
+ cy.get('[data-test-subj="titanOption"]').should('exist');
101
101
  cy.repeatRealPress('ArrowDown');
102
102
  cy.realPress('Enter');
103
103
  cy.repeatRealPress('ArrowDown');
@@ -123,14 +123,14 @@ describe('EuiComboBox', function () {
123
123
  }));
124
124
  cy.realPress('Tab');
125
125
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.focus');
126
- cy.get('button[data-test-subj="titanOption"]').should('exist');
126
+ cy.get('[data-test-subj="titanOption"]').should('exist');
127
127
  cy.realPress('ArrowDown');
128
128
  cy.realPress('ArrowDown');
129
129
  cy.realPress('ArrowDown');
130
130
  cy.get('input[data-test-subj="comboBoxSearchInput"]').invoke('attr', 'aria-activedescendant').should('include', 'option-2');
131
131
  cy.realPress('Enter');
132
132
  cy.realPress('ArrowDown');
133
- cy.get('input[data-test-subj="comboBoxSearchInput"]').invoke('attr', 'aria-activedescendant').should('include', 'option-3');
133
+ cy.get('input[data-test-subj="comboBoxSearchInput"]').invoke('attr', 'aria-activedescendant').should('include', 'option-4');
134
134
  });
135
135
  it('sets the correct aria-activedescendant id with custom option ids', function () {
136
136
  cy.realMount((0, _react2.jsx)(ComboBox, {
@@ -160,7 +160,7 @@ describe('EuiComboBox', function () {
160
160
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('exist');
161
161
  cy.realPress('Tab');
162
162
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.focus');
163
- cy.get('button[data-test-subj="titanOption"]').should('exist');
163
+ cy.get('[data-test-subj="titanOption"]').should('exist');
164
164
  cy.realPress('ArrowDown');
165
165
  cy.realPress('ArrowDown');
166
166
  cy.realPress('ArrowDown');
@@ -28,7 +28,7 @@ var _combo_box_input = require("./combo_box_input/combo_box_input");
28
28
  var _combo_box_options_list = require("./combo_box_options_list");
29
29
  var _combo_box = require("./combo_box.styles");
30
30
  var _react2 = require("@emotion/react");
31
- 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"];
31
+ 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"];
32
32
  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); }
33
33
  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; }
34
34
  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; }
@@ -94,6 +94,9 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
94
94
  _this.listRefInstance = ref;
95
95
  });
96
96
  (0, _defineProperty2.default)(_this, "setListOptionRefs", function (node, index) {
97
+ var current = _this.state.listOptionRefs[index];
98
+ // Skip updating if the ref is null (on cleanup) or didn't change
99
+ if (node === null || node === current) return;
97
100
  _this.setState(function (_ref) {
98
101
  var listOptionRefs = _ref.listOptionRefs;
99
102
  var _listOptionRefs = listOptionRefs;
@@ -114,41 +117,32 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
114
117
  isListOpen: false
115
118
  });
116
119
  });
117
- (0, _defineProperty2.default)(_this, "incrementActiveOptionIndex", function (amount) {
118
- // If there are no options available, do nothing.
119
- if (!_this.state.matchingOptions.length) {
120
- return;
120
+ (0, _defineProperty2.default)(_this, "findNextSelectableOptionIndex", function (options, startIndex) {
121
+ var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
122
+ if (!options.length) return -1;
123
+ var index = startIndex;
124
+ for (var count = 0; count < options.length; count++) {
125
+ var option = options[index];
126
+ if (!option.isGroupLabelOption && !option.disabled) {
127
+ return index;
128
+ }
129
+ index = (index + direction + options.length) % options.length;
121
130
  }
131
+ return -1; // the remaining options can't be selected (group labels or disabled)
132
+ });
133
+ (0, _defineProperty2.default)(_this, "incrementActiveOptionIndex", function (amount) {
134
+ if (!_this.state.matchingOptions.length) return;
122
135
  _this.setState(function (_ref2) {
123
136
  var activeOptionIndex = _ref2.activeOptionIndex,
124
137
  matchingOptions = _ref2.matchingOptions;
125
- var nextActiveOptionIndex;
126
- if (activeOptionIndex < 0) {
127
- // If this is the beginning of the user's keyboard navigation of the menu, then we'll focus
128
- // either the first or last item.
129
- nextActiveOptionIndex = amount < 0 ? matchingOptions.length - 1 : 0;
130
- } else {
131
- nextActiveOptionIndex = activeOptionIndex + amount;
132
- if (nextActiveOptionIndex < 0) {
133
- nextActiveOptionIndex = matchingOptions.length - 1;
134
- } else if (nextActiveOptionIndex === matchingOptions.length) {
135
- nextActiveOptionIndex = 0;
136
- }
137
- }
138
-
139
- // Group titles are included in option list but are not selectable
140
- // Skip group title options
141
138
  var direction = amount > 0 ? 1 : -1;
142
- while (matchingOptions[nextActiveOptionIndex].isGroupLabelOption) {
143
- nextActiveOptionIndex = nextActiveOptionIndex + direction;
144
- if (nextActiveOptionIndex < 0) {
145
- nextActiveOptionIndex = matchingOptions.length - 1;
146
- } else if (nextActiveOptionIndex === matchingOptions.length) {
147
- nextActiveOptionIndex = 0;
148
- }
149
- }
139
+ var startIndex = activeOptionIndex < 0 ?
140
+ // Inintial interaction: jump to first or last item
141
+ amount < 0 ? matchingOptions.length - 1 : 0 :
142
+ // Advance by amount, wrapping around
143
+ (activeOptionIndex + amount + matchingOptions.length) % matchingOptions.length;
150
144
  return {
151
- activeOptionIndex: nextActiveOptionIndex
145
+ activeOptionIndex: _this.findNextSelectableOptionIndex(matchingOptions, startIndex, direction)
152
146
  };
153
147
  });
154
148
  });
@@ -366,27 +360,36 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
366
360
  onChange = _this$props7.onChange,
367
361
  selectedOptions = _this$props7.selectedOptions,
368
362
  singleSelectionProp = _this$props7.singleSelection;
363
+ var _this$state2 = _this.state,
364
+ matchingOptions = _this$state2.matchingOptions,
365
+ listOptionRefs = _this$state2.listOptionRefs;
369
366
  var singleSelection = Boolean(singleSelectionProp);
370
367
  var changeOptions = singleSelection ? [addedOption] : selectedOptions.concat(addedOption);
371
368
  onChange === null || onChange === void 0 || onChange(changeOptions);
372
369
  _this.clearSearchValue();
373
- _this.clearActiveOption();
374
- if (!isContainerBlur) {
375
- var _this$searchInputRefI2;
376
- (_this$searchInputRefI2 = _this.searchInputRefInstance) === null || _this$searchInputRefI2 === void 0 || _this$searchInputRefI2.focus();
377
- }
378
370
  if (singleSelection) {
371
+ // List closes after single selection; return focus to the input
372
+ _this.clearActiveOption();
373
+ if (!isContainerBlur) {
374
+ var _this$searchInputRefI2;
375
+ (_this$searchInputRefI2 = _this.searchInputRefInstance) === null || _this$searchInputRefI2 === void 0 || _this$searchInputRefI2.focus();
376
+ }
379
377
  requestAnimationFrame(function () {
380
378
  return _this.closeList();
381
379
  });
380
+ } else if (isContainerBlur) {
381
+ // User tabbed away. `onContainerBlur` will close the list. We're only cleaning up state
382
+ _this.clearActiveOption();
382
383
  } else {
383
- _this.setState(function (_ref4) {
384
- var listOptionRefs = _ref4.listOptionRefs,
385
- matchingOptions = _ref4.matchingOptions;
386
- return {
387
- listOptionRefs: listOptionRefs.slice(0, matchingOptions.length - 1),
388
- activeOptionIndex: matchingOptions.indexOf(addedOption)
389
- };
384
+ var currentIndex = matchingOptions.indexOf(addedOption);
385
+ var nextOptions = matchingOptions.filter(function (option) {
386
+ return option !== addedOption;
387
+ });
388
+ _this.setState({
389
+ listOptionRefs: listOptionRefs.slice(0, matchingOptions.length - 1),
390
+ activeOptionIndex: _this.findNextSelectableOptionIndex(nextOptions, Math.min(currentIndex, nextOptions.length - 1)
391
+ // direction defaults to 1 (forward)
392
+ )
390
393
  });
391
394
  }
392
395
  });
@@ -494,6 +497,7 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
494
497
  delimiter = _this$props11.delimiter,
495
498
  append = _this$props11.append,
496
499
  autoFocus = _this$props11.autoFocus,
500
+ onFocusBadge = _this$props11.onFocusBadge,
497
501
  truncationProps = _this$props11.truncationProps,
498
502
  inputPopoverProps = _this$props11.inputPopoverProps,
499
503
  optionMatcher = _this$props11.optionMatcher,
@@ -501,12 +505,12 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
501
505
  ariaLabelledby = _this$props11['aria-labelledby'],
502
506
  ariaDescribedby = _this$props11['aria-describedby'],
503
507
  rest = (0, _objectWithoutProperties2.default)(_this$props11, _excluded);
504
- var _this$state2 = this.state,
505
- activeOptionIndex = _this$state2.activeOptionIndex,
506
- hasFocus = _this$state2.hasFocus,
507
- isListOpen = _this$state2.isListOpen,
508
- searchValue = _this$state2.searchValue,
509
- matchingOptions = _this$state2.matchingOptions;
508
+ var _this$state3 = this.state,
509
+ activeOptionIndex = _this$state3.activeOptionIndex,
510
+ hasFocus = _this$state3.hasFocus,
511
+ isListOpen = _this$state3.isListOpen,
512
+ searchValue = _this$state3.searchValue,
513
+ matchingOptions = _this$state3.matchingOptions;
510
514
 
511
515
  // Make sure we have a valid ID if users don't pass one as a prop
512
516
  var inputId = id !== null && id !== void 0 ? id : this.rootId('_eui-combobox-id');
@@ -557,7 +561,8 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
557
561
  delimiter: delimiter,
558
562
  getSelectedOptionForSearchValue: _matching_options.getSelectedOptionForSearchValue,
559
563
  listboxAriaLabel: listboxAriaLabel,
560
- truncationProps: truncationProps
564
+ truncationProps: truncationProps,
565
+ onFocusBadge: onFocusBadge
561
566
  });
562
567
  });
563
568
  }
@@ -582,11 +587,11 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
582
587
  ref: _this2.comboBoxRefCallback
583
588
  }), (0, _react2.jsx)(_popover.EuiInputPopover, (0, _extends2.default)({
584
589
  fullWidth: fullWidth,
585
- panelPaddingSize: "none",
590
+ panelPaddingSize: "s",
586
591
  disableFocusTrap: true,
587
592
  closeOnScroll: true
588
593
  }, inputPopoverProps, {
589
- isOpen: isListOpen,
594
+ isOpen: isListOpen && !noSuggestions,
590
595
  closePopover: _this2.closeList
591
596
  /* we don't want content changes to be announced via aria-live
592
597
  because ComboBox uses a virtualized list that updates itself
@@ -594,7 +599,10 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
594
599
  "aria-live": "off",
595
600
  input: (0, _react2.jsx)(_combo_box_input.EuiComboBoxInput, {
596
601
  compressed: compressed,
597
- 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,
602
+ 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 :
603
+ // uses the original `options` array to ensure a stable `id`, otherwise `aria-activedescendant`
604
+ // loses focus on selecting an option (due to actively removing it from the list)
605
+ _this2.rootId("_option-".concat(_this2.props.options.indexOf(matchingOptions[activeOptionIndex]))) : undefined,
598
606
  fullWidth: fullWidth,
599
607
  hasSelectedOptions: selectedOptions.length > 0,
600
608
  id: inputId,
@@ -784,7 +792,7 @@ EuiComboBox.propTypes = {
784
792
  "aria-labelledby": _propTypes.default.string,
785
793
  /**
786
794
  * By default, EuiComboBox will truncate option labels at the end of
787
- * the string. You can use pass in a custom truncation configuration that
795
+ * the string. You can pass in a custom truncation configuration that
788
796
  * accepts any [EuiTextTruncate](/#/utilities/text-truncation) prop,
789
797
  * except for `text` and `children`.
790
798
  *