@elastic/eui 115.0.0 → 116.0.0-snapshot.1778594703965

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 +39 -23
  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 +39 -23
  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 +38 -19
  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 +38 -19
  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 +6 -5
  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 +39 -23
  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
@@ -66,7 +66,6 @@ export var KibanaCollapsibleNavSolution = function KibanaCollapsibleNavSolution(
66
66
  var solutionSolutionSwitcherAriaLabel = useEuiI18n('euiCollapsibleNavKibanaSolution.switcherAriaLabel', ' - click to switch to another solution');
67
67
  var solutionSolutionGroupLabel = useEuiI18n('euiCollapsibleNavKibanaSolution.groupLabel', 'Navigate to solution');
68
68
  var closeSolutionPopover = 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 @@ export var KibanaCollapsibleNavSolution = function KibanaCollapsibleNavSolution(
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 @@ export var KibanaCollapsibleNavSolution = function KibanaCollapsibleNavSolution(
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 && ___EmotionJSX(React.Fragment, null, ___EmotionJSX(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.string,
175
172
  css: PropTypes.any,
176
173
  /**
177
- * Size of the label text
178
- */
179
- size: PropTypes.any,
174
+ * Controls the disabled behavior via the native `disabled` attribute.
175
+ */
176
+ isDisabled: PropTypes.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.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.any,
185
192
  /**
186
193
  * Apply styles indicating an item is active
187
194
  */
188
195
  isActive: PropTypes.bool,
189
- /**
190
- * Apply styles indicating an item is disabled
191
- */
192
- isDisabled: PropTypes.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.
@@ -92,7 +92,6 @@ export var EuiColorPalettePicker = function EuiColorPalettePicker(_ref) {
92
92
  options: paletteOptions,
93
93
  valueOfSelected: valueOfSelected,
94
94
  onChange: onChange,
95
- hasDividers: true,
96
95
  isInvalid: isInvalid,
97
96
  compressed: compressed,
98
97
  disabled: disabled,
@@ -87,7 +87,7 @@ describe('EuiComboBox', function () {
87
87
  rowHeight: rowHeight
88
88
  }));
89
89
  cy.get('input[data-test-subj="comboBoxSearchInput"]').realClick();
90
- cy.get('button[data-test-subj="titanOption"]').should('exist');
90
+ cy.get('[data-test-subj="titanOption"]').should('exist');
91
91
  cy.checkAxe();
92
92
  });
93
93
  it('has zero violations after keyboard interaction', function () {
@@ -96,7 +96,7 @@ describe('EuiComboBox', function () {
96
96
  }));
97
97
  cy.realPress('Tab');
98
98
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.focus');
99
- cy.get('button[data-test-subj="titanOption"]').should('exist');
99
+ cy.get('[data-test-subj="titanOption"]').should('exist');
100
100
  cy.repeatRealPress('ArrowDown');
101
101
  cy.realPress('Enter');
102
102
  cy.repeatRealPress('ArrowDown');
@@ -122,14 +122,14 @@ describe('EuiComboBox', function () {
122
122
  }));
123
123
  cy.realPress('Tab');
124
124
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.focus');
125
- cy.get('button[data-test-subj="titanOption"]').should('exist');
125
+ cy.get('[data-test-subj="titanOption"]').should('exist');
126
126
  cy.realPress('ArrowDown');
127
127
  cy.realPress('ArrowDown');
128
128
  cy.realPress('ArrowDown');
129
129
  cy.get('input[data-test-subj="comboBoxSearchInput"]').invoke('attr', 'aria-activedescendant').should('include', 'option-2');
130
130
  cy.realPress('Enter');
131
131
  cy.realPress('ArrowDown');
132
- cy.get('input[data-test-subj="comboBoxSearchInput"]').invoke('attr', 'aria-activedescendant').should('include', 'option-3');
132
+ cy.get('input[data-test-subj="comboBoxSearchInput"]').invoke('attr', 'aria-activedescendant').should('include', 'option-4');
133
133
  });
134
134
  it('sets the correct aria-activedescendant id with custom option ids', function () {
135
135
  cy.realMount(___EmotionJSX(ComboBox, {
@@ -159,7 +159,7 @@ describe('EuiComboBox', function () {
159
159
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('exist');
160
160
  cy.realPress('Tab');
161
161
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.focus');
162
- cy.get('button[data-test-subj="titanOption"]').should('exist');
162
+ cy.get('[data-test-subj="titanOption"]').should('exist');
163
163
  cy.realPress('ArrowDown');
164
164
  cy.realPress('ArrowDown');
165
165
  cy.realPress('ArrowDown');
@@ -1,4 +1,4 @@
1
- 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"];
1
+ 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"];
2
2
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
3
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
4
4
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
@@ -101,6 +101,9 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
101
101
  _this.listRefInstance = ref;
102
102
  });
103
103
  _defineProperty(_this, "setListOptionRefs", function (node, index) {
104
+ var current = _this.state.listOptionRefs[index];
105
+ // Skip updating if the ref is null (on cleanup) or didn't change
106
+ if (node === null || node === current) return;
104
107
  _this.setState(function (_ref) {
105
108
  var listOptionRefs = _ref.listOptionRefs;
106
109
  var _listOptionRefs = listOptionRefs;
@@ -121,41 +124,32 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
121
124
  isListOpen: false
122
125
  });
123
126
  });
124
- _defineProperty(_this, "incrementActiveOptionIndex", function (amount) {
125
- // If there are no options available, do nothing.
126
- if (!_this.state.matchingOptions.length) {
127
- return;
127
+ _defineProperty(_this, "findNextSelectableOptionIndex", function (options, startIndex) {
128
+ var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
129
+ if (!options.length) return -1;
130
+ var index = startIndex;
131
+ for (var count = 0; count < options.length; count++) {
132
+ var option = options[index];
133
+ if (!option.isGroupLabelOption && !option.disabled) {
134
+ return index;
135
+ }
136
+ index = (index + direction + options.length) % options.length;
128
137
  }
138
+ return -1; // the remaining options can't be selected (group labels or disabled)
139
+ });
140
+ _defineProperty(_this, "incrementActiveOptionIndex", function (amount) {
141
+ if (!_this.state.matchingOptions.length) return;
129
142
  _this.setState(function (_ref2) {
130
143
  var activeOptionIndex = _ref2.activeOptionIndex,
131
144
  matchingOptions = _ref2.matchingOptions;
132
- var nextActiveOptionIndex;
133
- if (activeOptionIndex < 0) {
134
- // If this is the beginning of the user's keyboard navigation of the menu, then we'll focus
135
- // either the first or last item.
136
- nextActiveOptionIndex = amount < 0 ? matchingOptions.length - 1 : 0;
137
- } else {
138
- nextActiveOptionIndex = activeOptionIndex + amount;
139
- if (nextActiveOptionIndex < 0) {
140
- nextActiveOptionIndex = matchingOptions.length - 1;
141
- } else if (nextActiveOptionIndex === matchingOptions.length) {
142
- nextActiveOptionIndex = 0;
143
- }
144
- }
145
-
146
- // Group titles are included in option list but are not selectable
147
- // Skip group title options
148
145
  var direction = amount > 0 ? 1 : -1;
149
- while (matchingOptions[nextActiveOptionIndex].isGroupLabelOption) {
150
- nextActiveOptionIndex = nextActiveOptionIndex + direction;
151
- if (nextActiveOptionIndex < 0) {
152
- nextActiveOptionIndex = matchingOptions.length - 1;
153
- } else if (nextActiveOptionIndex === matchingOptions.length) {
154
- nextActiveOptionIndex = 0;
155
- }
156
- }
146
+ var startIndex = activeOptionIndex < 0 ?
147
+ // Inintial interaction: jump to first or last item
148
+ amount < 0 ? matchingOptions.length - 1 : 0 :
149
+ // Advance by amount, wrapping around
150
+ (activeOptionIndex + amount + matchingOptions.length) % matchingOptions.length;
157
151
  return {
158
- activeOptionIndex: nextActiveOptionIndex
152
+ activeOptionIndex: _this.findNextSelectableOptionIndex(matchingOptions, startIndex, direction)
159
153
  };
160
154
  });
161
155
  });
@@ -373,27 +367,36 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
373
367
  onChange = _this$props7.onChange,
374
368
  selectedOptions = _this$props7.selectedOptions,
375
369
  singleSelectionProp = _this$props7.singleSelection;
370
+ var _this$state2 = _this.state,
371
+ matchingOptions = _this$state2.matchingOptions,
372
+ listOptionRefs = _this$state2.listOptionRefs;
376
373
  var singleSelection = Boolean(singleSelectionProp);
377
374
  var changeOptions = singleSelection ? [addedOption] : selectedOptions.concat(addedOption);
378
375
  onChange === null || onChange === void 0 || onChange(changeOptions);
379
376
  _this.clearSearchValue();
380
- _this.clearActiveOption();
381
- if (!isContainerBlur) {
382
- var _this$searchInputRefI2;
383
- (_this$searchInputRefI2 = _this.searchInputRefInstance) === null || _this$searchInputRefI2 === void 0 || _this$searchInputRefI2.focus();
384
- }
385
377
  if (singleSelection) {
378
+ // List closes after single selection; return focus to the input
379
+ _this.clearActiveOption();
380
+ if (!isContainerBlur) {
381
+ var _this$searchInputRefI2;
382
+ (_this$searchInputRefI2 = _this.searchInputRefInstance) === null || _this$searchInputRefI2 === void 0 || _this$searchInputRefI2.focus();
383
+ }
386
384
  requestAnimationFrame(function () {
387
385
  return _this.closeList();
388
386
  });
387
+ } else if (isContainerBlur) {
388
+ // User tabbed away. `onContainerBlur` will close the list. We're only cleaning up state
389
+ _this.clearActiveOption();
389
390
  } else {
390
- _this.setState(function (_ref4) {
391
- var listOptionRefs = _ref4.listOptionRefs,
392
- matchingOptions = _ref4.matchingOptions;
393
- return {
394
- listOptionRefs: listOptionRefs.slice(0, matchingOptions.length - 1),
395
- activeOptionIndex: matchingOptions.indexOf(addedOption)
396
- };
391
+ var currentIndex = matchingOptions.indexOf(addedOption);
392
+ var nextOptions = matchingOptions.filter(function (option) {
393
+ return option !== addedOption;
394
+ });
395
+ _this.setState({
396
+ listOptionRefs: listOptionRefs.slice(0, matchingOptions.length - 1),
397
+ activeOptionIndex: _this.findNextSelectableOptionIndex(nextOptions, Math.min(currentIndex, nextOptions.length - 1)
398
+ // direction defaults to 1 (forward)
399
+ )
397
400
  });
398
401
  }
399
402
  });
@@ -501,6 +504,7 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
501
504
  delimiter = _this$props11.delimiter,
502
505
  append = _this$props11.append,
503
506
  autoFocus = _this$props11.autoFocus,
507
+ onFocusBadge = _this$props11.onFocusBadge,
504
508
  truncationProps = _this$props11.truncationProps,
505
509
  inputPopoverProps = _this$props11.inputPopoverProps,
506
510
  optionMatcher = _this$props11.optionMatcher,
@@ -508,12 +512,12 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
508
512
  ariaLabelledby = _this$props11['aria-labelledby'],
509
513
  ariaDescribedby = _this$props11['aria-describedby'],
510
514
  rest = _objectWithoutProperties(_this$props11, _excluded);
511
- var _this$state2 = this.state,
512
- activeOptionIndex = _this$state2.activeOptionIndex,
513
- hasFocus = _this$state2.hasFocus,
514
- isListOpen = _this$state2.isListOpen,
515
- searchValue = _this$state2.searchValue,
516
- matchingOptions = _this$state2.matchingOptions;
515
+ var _this$state3 = this.state,
516
+ activeOptionIndex = _this$state3.activeOptionIndex,
517
+ hasFocus = _this$state3.hasFocus,
518
+ isListOpen = _this$state3.isListOpen,
519
+ searchValue = _this$state3.searchValue,
520
+ matchingOptions = _this$state3.matchingOptions;
517
521
 
518
522
  // Make sure we have a valid ID if users don't pass one as a prop
519
523
  var inputId = id !== null && id !== void 0 ? id : this.rootId('_eui-combobox-id');
@@ -564,7 +568,8 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
564
568
  delimiter: delimiter,
565
569
  getSelectedOptionForSearchValue: getSelectedOptionForSearchValue,
566
570
  listboxAriaLabel: listboxAriaLabel,
567
- truncationProps: truncationProps
571
+ truncationProps: truncationProps,
572
+ onFocusBadge: onFocusBadge
568
573
  });
569
574
  });
570
575
  }
@@ -589,11 +594,11 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
589
594
  ref: _this2.comboBoxRefCallback
590
595
  }), ___EmotionJSX(EuiInputPopover, _extends({
591
596
  fullWidth: fullWidth,
592
- panelPaddingSize: "none",
597
+ panelPaddingSize: "s",
593
598
  disableFocusTrap: true,
594
599
  closeOnScroll: true
595
600
  }, inputPopoverProps, {
596
- isOpen: isListOpen,
601
+ isOpen: isListOpen && !noSuggestions,
597
602
  closePopover: _this2.closeList
598
603
  /* we don't want content changes to be announced via aria-live
599
604
  because ComboBox uses a virtualized list that updates itself
@@ -601,7 +606,10 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
601
606
  "aria-live": "off",
602
607
  input: ___EmotionJSX(EuiComboBoxInput, {
603
608
  compressed: compressed,
604
- 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,
609
+ 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 :
610
+ // uses the original `options` array to ensure a stable `id`, otherwise `aria-activedescendant`
611
+ // loses focus on selecting an option (due to actively removing it from the list)
612
+ _this2.rootId("_option-".concat(_this2.props.options.indexOf(matchingOptions[activeOptionIndex]))) : undefined,
605
613
  fullWidth: fullWidth,
606
614
  hasSelectedOptions: selectedOptions.length > 0,
607
615
  id: inputId,
@@ -791,7 +799,7 @@ EuiComboBox.propTypes = {
791
799
  "aria-labelledby": PropTypes.string,
792
800
  /**
793
801
  * By default, EuiComboBox will truncate option labels at the end of
794
- * the string. You can use pass in a custom truncation configuration that
802
+ * the string. You can pass in a custom truncation configuration that
795
803
  * accepts any [EuiTextTruncate](/#/utilities/text-truncation) prop,
796
804
  * except for `text` and `children`.
797
805
  *