@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
@@ -74,7 +74,6 @@ var KibanaCollapsibleNavSolution = exports.KibanaCollapsibleNavSolution = functi
74
74
  var solutionSolutionSwitcherAriaLabel = (0, _i18n.useEuiI18n)('euiCollapsibleNavKibanaSolution.switcherAriaLabel', ' - click to switch to another solution');
75
75
  var solutionSolutionGroupLabel = (0, _i18n.useEuiI18n)('euiCollapsibleNavKibanaSolution.groupLabel', 'Navigate to solution');
76
76
  var closeSolutionPopover = (0, _react.useCallback)(function (event) {
77
- var _childItem$firstEleme;
78
77
  // Allow child items to stop the popover from being closed
79
78
  if (event.isPropagationStopped()) return;
80
79
  // Only listen for clicks on child items - currentTarget is the parent <ul>
@@ -83,7 +82,7 @@ var KibanaCollapsibleNavSolution = exports.KibanaCollapsibleNavSolution = functi
83
82
  // Only close the popover if the item is a clickable link or button
84
83
  var target = event.target;
85
84
  var childItem = target.closest('.euiListGroupItem');
86
- if (['A', 'BUTTON'].includes((childItem === null || childItem === void 0 || (_childItem$firstEleme = childItem.firstElementChild) === null || _childItem$firstEleme === void 0 ? void 0 : _childItem$firstEleme.tagName) || '')) {
85
+ if (['A', 'BUTTON'].includes((childItem === null || childItem === void 0 ? void 0 : childItem.tagName) || '')) {
87
86
  setIsSolutionSwitcherOpen(false);
88
87
  }
89
88
  }, []);
@@ -96,12 +95,10 @@ var KibanaCollapsibleNavSolution = exports.KibanaCollapsibleNavSolution = functi
96
95
  "data-test-subj": "kibanaSolutionSwitcherList",
97
96
  "aria-label": solutionSolutionGroupLabel,
98
97
  listItems: primaryItems,
99
- size: "s",
100
98
  bordered: true,
101
99
  onClick: closeSolutionPopover
102
100
  }), secondaryItems.length > 0 && (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_list_group.EuiListGroup, {
103
101
  listItems: secondaryItems,
104
- size: "s",
105
102
  css: styles.euiCollapsibleNavKibanaSolution__secondaryItems,
106
103
  onClick: closeSolutionPopover
107
104
  })));
@@ -182,22 +179,28 @@ KibanaCollapsibleNavSolution.propTypes = {
182
179
  "data-test-subj": _propTypes.default.string,
183
180
  css: _propTypes.default.any,
184
181
  /**
185
- * Size of the label text
186
- */
187
- size: _propTypes.default.any,
182
+ * Controls the disabled behavior via the native `disabled` attribute.
183
+ */
184
+ isDisabled: _propTypes.default.bool,
185
+ /**
186
+ * NOTE: Beta feature, may be changed or removed in the future
187
+ *
188
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
189
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
190
+ *
191
+ * Use e.g. when a disabled button should have a tooltip.
192
+ */
193
+ hasAriaDisabled: _propTypes.default.bool,
188
194
  /**
189
195
  * By default the item will get the color `text`.
190
196
  * You can customize the color of the item by passing a color name.
197
+ * @default 'text'
191
198
  */
192
199
  color: _propTypes.default.any,
193
200
  /**
194
201
  * Apply styles indicating an item is active
195
202
  */
196
203
  isActive: _propTypes.default.bool,
197
- /**
198
- * Apply styles indicating an item is disabled
199
- */
200
- isDisabled: _propTypes.default.bool,
201
204
  /**
202
205
  * Make the list item label a link.
203
206
  * While permitted, `href` and `onClick` should not be used together in most cases and may create problems.
@@ -100,7 +100,6 @@ var EuiColorPalettePicker = exports.EuiColorPalettePicker = function EuiColorPal
100
100
  options: paletteOptions,
101
101
  valueOfSelected: valueOfSelected,
102
102
  onChange: onChange,
103
- hasDividers: true,
104
103
  isInvalid: isInvalid,
105
104
  compressed: compressed,
106
105
  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');
@@ -17,7 +17,7 @@ var _combo_box_input = require("./combo_box_input/combo_box_input");
17
17
  var _combo_box_options_list = require("./combo_box_options_list");
18
18
  var _combo_box = require("./combo_box.styles");
19
19
  var _react2 = require("@emotion/react");
20
- var _excluded = ["data-test-subj", "async", "className", "compressed", "customOptionText", "fullWidth", "id", "inputRef", "isCaseSensitive", "isClearable", "isDisabled", "isInvalid", "isLoading", "noSuggestions", "onBlur", "onChange", "onCreateOption", "onSearchChange", "options", "placeholder", "renderOption", "rowHeight", "selectedOptions", "singleSelection", "prepend", "sortMatchesBy", "delimiter", "append", "autoFocus", "truncationProps", "inputPopoverProps", "optionMatcher", "aria-label", "aria-labelledby", "aria-describedby"];
20
+ var _excluded = ["data-test-subj", "async", "className", "compressed", "customOptionText", "fullWidth", "id", "inputRef", "isCaseSensitive", "isClearable", "isDisabled", "isInvalid", "isLoading", "noSuggestions", "onBlur", "onChange", "onCreateOption", "onSearchChange", "options", "placeholder", "renderOption", "rowHeight", "selectedOptions", "singleSelection", "prepend", "sortMatchesBy", "delimiter", "append", "autoFocus", "onFocusBadge", "truncationProps", "inputPopoverProps", "optionMatcher", "aria-label", "aria-labelledby", "aria-describedby"];
21
21
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
23
23
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -105,6 +105,9 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
105
105
  _this.listRefInstance = ref;
106
106
  });
107
107
  _defineProperty(_this, "setListOptionRefs", function (node, index) {
108
+ var current = _this.state.listOptionRefs[index];
109
+ // Skip updating if the ref is null (on cleanup) or didn't change
110
+ if (node === null || node === current) return;
108
111
  _this.setState(function (_ref) {
109
112
  var listOptionRefs = _ref.listOptionRefs;
110
113
  var _listOptionRefs = listOptionRefs;
@@ -125,41 +128,32 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
125
128
  isListOpen: false
126
129
  });
127
130
  });
128
- _defineProperty(_this, "incrementActiveOptionIndex", function (amount) {
129
- // If there are no options available, do nothing.
130
- if (!_this.state.matchingOptions.length) {
131
- return;
131
+ _defineProperty(_this, "findNextSelectableOptionIndex", function (options, startIndex) {
132
+ var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
133
+ if (!options.length) return -1;
134
+ var index = startIndex;
135
+ for (var count = 0; count < options.length; count++) {
136
+ var option = options[index];
137
+ if (!option.isGroupLabelOption && !option.disabled) {
138
+ return index;
139
+ }
140
+ index = (index + direction + options.length) % options.length;
132
141
  }
142
+ return -1; // the remaining options can't be selected (group labels or disabled)
143
+ });
144
+ _defineProperty(_this, "incrementActiveOptionIndex", function (amount) {
145
+ if (!_this.state.matchingOptions.length) return;
133
146
  _this.setState(function (_ref2) {
134
147
  var activeOptionIndex = _ref2.activeOptionIndex,
135
148
  matchingOptions = _ref2.matchingOptions;
136
- var nextActiveOptionIndex;
137
- if (activeOptionIndex < 0) {
138
- // If this is the beginning of the user's keyboard navigation of the menu, then we'll focus
139
- // either the first or last item.
140
- nextActiveOptionIndex = amount < 0 ? matchingOptions.length - 1 : 0;
141
- } else {
142
- nextActiveOptionIndex = activeOptionIndex + amount;
143
- if (nextActiveOptionIndex < 0) {
144
- nextActiveOptionIndex = matchingOptions.length - 1;
145
- } else if (nextActiveOptionIndex === matchingOptions.length) {
146
- nextActiveOptionIndex = 0;
147
- }
148
- }
149
-
150
- // Group titles are included in option list but are not selectable
151
- // Skip group title options
152
149
  var direction = amount > 0 ? 1 : -1;
153
- while (matchingOptions[nextActiveOptionIndex].isGroupLabelOption) {
154
- nextActiveOptionIndex = nextActiveOptionIndex + direction;
155
- if (nextActiveOptionIndex < 0) {
156
- nextActiveOptionIndex = matchingOptions.length - 1;
157
- } else if (nextActiveOptionIndex === matchingOptions.length) {
158
- nextActiveOptionIndex = 0;
159
- }
160
- }
150
+ var startIndex = activeOptionIndex < 0 ?
151
+ // Inintial interaction: jump to first or last item
152
+ amount < 0 ? matchingOptions.length - 1 : 0 :
153
+ // Advance by amount, wrapping around
154
+ (activeOptionIndex + amount + matchingOptions.length) % matchingOptions.length;
161
155
  return {
162
- activeOptionIndex: nextActiveOptionIndex
156
+ activeOptionIndex: _this.findNextSelectableOptionIndex(matchingOptions, startIndex, direction)
163
157
  };
164
158
  });
165
159
  });
@@ -377,27 +371,36 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
377
371
  onChange = _this$props7.onChange,
378
372
  selectedOptions = _this$props7.selectedOptions,
379
373
  singleSelectionProp = _this$props7.singleSelection;
374
+ var _this$state2 = _this.state,
375
+ matchingOptions = _this$state2.matchingOptions,
376
+ listOptionRefs = _this$state2.listOptionRefs;
380
377
  var singleSelection = Boolean(singleSelectionProp);
381
378
  var changeOptions = singleSelection ? [addedOption] : selectedOptions.concat(addedOption);
382
379
  onChange === null || onChange === void 0 || onChange(changeOptions);
383
380
  _this.clearSearchValue();
384
- _this.clearActiveOption();
385
- if (!isContainerBlur) {
386
- var _this$searchInputRefI2;
387
- (_this$searchInputRefI2 = _this.searchInputRefInstance) === null || _this$searchInputRefI2 === void 0 || _this$searchInputRefI2.focus();
388
- }
389
381
  if (singleSelection) {
382
+ // List closes after single selection; return focus to the input
383
+ _this.clearActiveOption();
384
+ if (!isContainerBlur) {
385
+ var _this$searchInputRefI2;
386
+ (_this$searchInputRefI2 = _this.searchInputRefInstance) === null || _this$searchInputRefI2 === void 0 || _this$searchInputRefI2.focus();
387
+ }
390
388
  requestAnimationFrame(function () {
391
389
  return _this.closeList();
392
390
  });
391
+ } else if (isContainerBlur) {
392
+ // User tabbed away. `onContainerBlur` will close the list. We're only cleaning up state
393
+ _this.clearActiveOption();
393
394
  } else {
394
- _this.setState(function (_ref4) {
395
- var listOptionRefs = _ref4.listOptionRefs,
396
- matchingOptions = _ref4.matchingOptions;
397
- return {
398
- listOptionRefs: listOptionRefs.slice(0, matchingOptions.length - 1),
399
- activeOptionIndex: matchingOptions.indexOf(addedOption)
400
- };
395
+ var currentIndex = matchingOptions.indexOf(addedOption);
396
+ var nextOptions = matchingOptions.filter(function (option) {
397
+ return option !== addedOption;
398
+ });
399
+ _this.setState({
400
+ listOptionRefs: listOptionRefs.slice(0, matchingOptions.length - 1),
401
+ activeOptionIndex: _this.findNextSelectableOptionIndex(nextOptions, Math.min(currentIndex, nextOptions.length - 1)
402
+ // direction defaults to 1 (forward)
403
+ )
401
404
  });
402
405
  }
403
406
  });
@@ -505,6 +508,7 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
505
508
  delimiter = _this$props11.delimiter,
506
509
  append = _this$props11.append,
507
510
  autoFocus = _this$props11.autoFocus,
511
+ onFocusBadge = _this$props11.onFocusBadge,
508
512
  truncationProps = _this$props11.truncationProps,
509
513
  inputPopoverProps = _this$props11.inputPopoverProps,
510
514
  optionMatcher = _this$props11.optionMatcher,
@@ -512,12 +516,12 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
512
516
  ariaLabelledby = _this$props11['aria-labelledby'],
513
517
  ariaDescribedby = _this$props11['aria-describedby'],
514
518
  rest = _objectWithoutProperties(_this$props11, _excluded);
515
- var _this$state2 = this.state,
516
- activeOptionIndex = _this$state2.activeOptionIndex,
517
- hasFocus = _this$state2.hasFocus,
518
- isListOpen = _this$state2.isListOpen,
519
- searchValue = _this$state2.searchValue,
520
- matchingOptions = _this$state2.matchingOptions;
519
+ var _this$state3 = this.state,
520
+ activeOptionIndex = _this$state3.activeOptionIndex,
521
+ hasFocus = _this$state3.hasFocus,
522
+ isListOpen = _this$state3.isListOpen,
523
+ searchValue = _this$state3.searchValue,
524
+ matchingOptions = _this$state3.matchingOptions;
521
525
 
522
526
  // Make sure we have a valid ID if users don't pass one as a prop
523
527
  var inputId = id !== null && id !== void 0 ? id : this.rootId('_eui-combobox-id');
@@ -568,7 +572,8 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
568
572
  delimiter: delimiter,
569
573
  getSelectedOptionForSearchValue: _matching_options.getSelectedOptionForSearchValue,
570
574
  listboxAriaLabel: listboxAriaLabel,
571
- truncationProps: truncationProps
575
+ truncationProps: truncationProps,
576
+ onFocusBadge: onFocusBadge
572
577
  });
573
578
  });
574
579
  }
@@ -593,11 +598,11 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
593
598
  ref: _this2.comboBoxRefCallback
594
599
  }), (0, _react2.jsx)(_popover.EuiInputPopover, _extends({
595
600
  fullWidth: fullWidth,
596
- panelPaddingSize: "none",
601
+ panelPaddingSize: "s",
597
602
  disableFocusTrap: true,
598
603
  closeOnScroll: true
599
604
  }, inputPopoverProps, {
600
- isOpen: isListOpen,
605
+ isOpen: isListOpen && !noSuggestions,
601
606
  closePopover: _this2.closeList
602
607
  /* we don't want content changes to be announced via aria-live
603
608
  because ComboBox uses a virtualized list that updates itself
@@ -605,7 +610,10 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
605
610
  "aria-live": "off",
606
611
  input: (0, _react2.jsx)(_combo_box_input.EuiComboBoxInput, {
607
612
  compressed: compressed,
608
- focusedOptionId: _this2.hasActiveOption() ? (_this2$state$listOpti = (_this2$state$listOpti2 = _this2.state.listOptionRefs[_this2.state.activeOptionIndex]) === null || _this2$state$listOpti2 === void 0 ? void 0 : _this2$state$listOpti2.id) !== null && _this2$state$listOpti !== void 0 ? _this2$state$listOpti : _this2.rootId("_option-".concat(_this2.state.activeOptionIndex)) : undefined,
613
+ focusedOptionId: _this2.hasActiveOption() ? (_this2$state$listOpti = (_this2$state$listOpti2 = _this2.state.listOptionRefs[_this2.state.activeOptionIndex]) === null || _this2$state$listOpti2 === void 0 ? void 0 : _this2$state$listOpti2.id) !== null && _this2$state$listOpti !== void 0 ? _this2$state$listOpti :
614
+ // uses the original `options` array to ensure a stable `id`, otherwise `aria-activedescendant`
615
+ // loses focus on selecting an option (due to actively removing it from the list)
616
+ _this2.rootId("_option-".concat(_this2.props.options.indexOf(matchingOptions[activeOptionIndex]))) : undefined,
609
617
  fullWidth: fullWidth,
610
618
  hasSelectedOptions: selectedOptions.length > 0,
611
619
  id: inputId,
@@ -795,7 +803,7 @@ EuiComboBox.propTypes = {
795
803
  "aria-labelledby": _propTypes.default.string,
796
804
  /**
797
805
  * By default, EuiComboBox will truncate option labels at the end of
798
- * the string. You can use pass in a custom truncation configuration that
806
+ * the string. You can pass in a custom truncation configuration that
799
807
  * accepts any [EuiTextTruncate](/#/utilities/text-truncation) prop,
800
808
  * except for `text` and `children`.
801
809
  *