@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
@@ -6,6 +6,7 @@
6
6
  * Side Public License, v 1.
7
7
  */
8
8
 
9
+ import { euiCanAnimate, euiCantAnimate } from '@elastic/eui-theme-common';
9
10
  import { useEuiTheme } from '../../services/theme';
10
11
  import { transparentize } from '../../services/color';
11
12
  import { logicalCSS, logicalCSSWithFallback } from '../functions';
@@ -47,11 +48,15 @@ export var useEuiScrollBar = function useEuiScrollBar(options) {
47
48
  * Overflow shadow masks for use in YScroll and XScroll helpers
48
49
  */
49
50
 
50
- var euiOverflowShadowStyles = function euiOverflowShadowStyles(_ref3) {
51
- var size = _ref3.euiTheme.size;
51
+ export var euiOverflowShadowStyles = function euiOverflowShadowStyles(_ref3) {
52
+ var _ref3$euiTheme = _ref3.euiTheme,
53
+ size = _ref3$euiTheme.size,
54
+ colors = _ref3$euiTheme.colors;
52
55
  var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
53
56
  _direction = _ref4.direction,
54
- _side = _ref4.side;
57
+ _side = _ref4.side,
58
+ _ref4$hasAnimatedOver = _ref4.hasAnimatedOverflowShadow,
59
+ hasAnimatedOverflowShadow = _ref4$hasAnimatedOver === void 0 ? false : _ref4$hasAnimatedOver;
55
60
  var direction = _direction || 'y';
56
61
  var side = _side || 'both';
57
62
  var hideHeight = size.s;
@@ -75,11 +80,20 @@ var euiOverflowShadowStyles = function euiOverflowShadowStyles(_ref3) {
75
80
  // - https://github.com/elastic/kibana/issues/180828
76
81
  // - https://github.com/elastic/eui/pull/6343#issuecomment-1302732021
77
82
  var chromiumMaskWorkaround = 'transform: translateZ(0);';
78
- if (direction === 'y') {
79
- return "mask-image: linear-gradient(to bottom, ".concat(gradient, "); ").concat(chromiumMaskWorkaround);
80
- } else {
81
- return "mask-image: linear-gradient(to right, ".concat(gradient, "); ").concat(chromiumMaskWorkaround);
83
+ var overflowShadowStatic = direction === 'y' ? "mask-image: linear-gradient(to bottom, ".concat(gradient, "); ").concat(chromiumMaskWorkaround) : "mask-image: linear-gradient(to right, ".concat(gradient, "); ").concat(chromiumMaskWorkaround);
84
+
85
+ // If supported, use the scroll timeline API to animate the gradient to show/hide it on the scroll edges.
86
+ // We only support vertical scrolling as horizontal scrolling has increased complexity on element dimensions.
87
+ if (hasAnimatedOverflowShadow && direction === 'y') {
88
+ var featureFlag = 'animation-timeline: scroll()';
89
+ var gradientStartColor = "var(--euiOverflowShadowColor, ".concat(colors.backgroundBasePlain, ")");
90
+ var gradientEndColor = 'transparent';
91
+ var gradientSize = size.base;
92
+ var gradientScrollRange = size.m;
93
+ var commonPseudoElementStyles = "\n content: '';\n display: block;\n position: sticky;\n z-index: 1;\n block-size: ".concat(gradientSize, ";\n pointer-events: none;\n ");
94
+ return "\n @supports not (".concat(featureFlag, ") {\n ").concat(overflowShadowStatic, "\n }\n\n ").concat(euiCantAnimate, " {\n ").concat(overflowShadowStatic, "\n }\n\n ").concat(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(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(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 ");
82
95
  }
96
+ return overflowShadowStatic;
83
97
  };
84
98
 
85
99
  /**
@@ -105,20 +119,27 @@ export var euiYScrollWithShadows = function euiYScrollWithShadows(euiTheme) {
105
119
  var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
106
120
  height = _ref7.height,
107
121
  _ref7$side = _ref7.side,
108
- side = _ref7$side === void 0 ? 'both' : _ref7$side;
122
+ side = _ref7$side === void 0 ? 'both' : _ref7$side,
123
+ _ref7$hasAnimatedOver = _ref7.hasAnimatedOverflowShadow,
124
+ hasAnimatedOverflowShadow = _ref7$hasAnimatedOver === void 0 ? false : _ref7$hasAnimatedOver;
109
125
  return "\n ".concat(euiYScroll(euiTheme, {
110
126
  height: height
111
127
  }), "\n ").concat(euiOverflowShadowStyles(euiTheme, {
112
128
  direction: 'y',
113
- side: side
129
+ side: side,
130
+ hasAnimatedOverflowShadow: hasAnimatedOverflowShadow
114
131
  }), "\n");
115
132
  };
116
133
  export var useEuiYScrollWithShadows = function useEuiYScrollWithShadows() {
117
134
  var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
118
- height = _ref8.height;
135
+ height = _ref8.height,
136
+ side = _ref8.side,
137
+ hasAnimatedOverflowShadow = _ref8.hasAnimatedOverflowShadow;
119
138
  var euiTheme = useEuiTheme();
120
139
  return euiYScrollWithShadows(euiTheme, {
121
- height: height
140
+ height: height,
141
+ side: side,
142
+ hasAnimatedOverflowShadow: hasAnimatedOverflowShadow
122
143
  });
123
144
  };
124
145
  export var euiXScroll = function euiXScroll(euiTheme) {
@@ -65,7 +65,6 @@ var KibanaCollapsibleNavSolution = exports.KibanaCollapsibleNavSolution = functi
65
65
  var solutionSolutionSwitcherAriaLabel = (0, _i18n.useEuiI18n)('euiCollapsibleNavKibanaSolution.switcherAriaLabel', ' - click to switch to another solution');
66
66
  var solutionSolutionGroupLabel = (0, _i18n.useEuiI18n)('euiCollapsibleNavKibanaSolution.groupLabel', 'Navigate to solution');
67
67
  var closeSolutionPopover = (0, _react.useCallback)(function (event) {
68
- var _childItem$firstEleme;
69
68
  // Allow child items to stop the popover from being closed
70
69
  if (event.isPropagationStopped()) return;
71
70
  // Only listen for clicks on child items - currentTarget is the parent <ul>
@@ -74,7 +73,7 @@ var KibanaCollapsibleNavSolution = exports.KibanaCollapsibleNavSolution = functi
74
73
  // Only close the popover if the item is a clickable link or button
75
74
  var target = event.target;
76
75
  var childItem = target.closest('.euiListGroupItem');
77
- if (['A', 'BUTTON'].includes((childItem === null || childItem === void 0 || (_childItem$firstEleme = childItem.firstElementChild) === null || _childItem$firstEleme === void 0 ? void 0 : _childItem$firstEleme.tagName) || '')) {
76
+ if (['A', 'BUTTON'].includes((childItem === null || childItem === void 0 ? void 0 : childItem.tagName) || '')) {
78
77
  setIsSolutionSwitcherOpen(false);
79
78
  }
80
79
  }, []);
@@ -87,12 +86,10 @@ var KibanaCollapsibleNavSolution = exports.KibanaCollapsibleNavSolution = functi
87
86
  "data-test-subj": "kibanaSolutionSwitcherList",
88
87
  "aria-label": solutionSolutionGroupLabel,
89
88
  listItems: primaryItems,
90
- size: "s",
91
89
  bordered: true,
92
90
  onClick: closeSolutionPopover
93
91
  }), secondaryItems.length > 0 && (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_list_group.EuiListGroup, {
94
92
  listItems: secondaryItems,
95
- size: "s",
96
93
  css: styles.euiCollapsibleNavKibanaSolution__secondaryItems,
97
94
  onClick: closeSolutionPopover
98
95
  })));
@@ -96,7 +96,6 @@ var EuiColorPalettePicker = exports.EuiColorPalettePicker = function EuiColorPal
96
96
  options: paletteOptions,
97
97
  valueOfSelected: valueOfSelected,
98
98
  onChange: onChange,
99
- hasDividers: true,
100
99
  isInvalid: isInvalid,
101
100
  compressed: compressed,
102
101
  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');
@@ -27,7 +27,7 @@ var _combo_box_input = require("./combo_box_input/combo_box_input");
27
27
  var _combo_box_options_list = require("./combo_box_options_list");
28
28
  var _combo_box = require("./combo_box.styles");
29
29
  var _react2 = require("@emotion/react");
30
- 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"];
30
+ 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"];
31
31
  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); }
32
32
  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; }
33
33
  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; }
@@ -93,6 +93,9 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
93
93
  _this.listRefInstance = ref;
94
94
  });
95
95
  (0, _defineProperty2.default)(_this, "setListOptionRefs", function (node, index) {
96
+ var current = _this.state.listOptionRefs[index];
97
+ // Skip updating if the ref is null (on cleanup) or didn't change
98
+ if (node === null || node === current) return;
96
99
  _this.setState(function (_ref) {
97
100
  var listOptionRefs = _ref.listOptionRefs;
98
101
  var _listOptionRefs = listOptionRefs;
@@ -113,41 +116,32 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
113
116
  isListOpen: false
114
117
  });
115
118
  });
116
- (0, _defineProperty2.default)(_this, "incrementActiveOptionIndex", function (amount) {
117
- // If there are no options available, do nothing.
118
- if (!_this.state.matchingOptions.length) {
119
- return;
119
+ (0, _defineProperty2.default)(_this, "findNextSelectableOptionIndex", function (options, startIndex) {
120
+ var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
121
+ if (!options.length) return -1;
122
+ var index = startIndex;
123
+ for (var count = 0; count < options.length; count++) {
124
+ var option = options[index];
125
+ if (!option.isGroupLabelOption && !option.disabled) {
126
+ return index;
127
+ }
128
+ index = (index + direction + options.length) % options.length;
120
129
  }
130
+ return -1; // the remaining options can't be selected (group labels or disabled)
131
+ });
132
+ (0, _defineProperty2.default)(_this, "incrementActiveOptionIndex", function (amount) {
133
+ if (!_this.state.matchingOptions.length) return;
121
134
  _this.setState(function (_ref2) {
122
135
  var activeOptionIndex = _ref2.activeOptionIndex,
123
136
  matchingOptions = _ref2.matchingOptions;
124
- var nextActiveOptionIndex;
125
- if (activeOptionIndex < 0) {
126
- // If this is the beginning of the user's keyboard navigation of the menu, then we'll focus
127
- // either the first or last item.
128
- nextActiveOptionIndex = amount < 0 ? matchingOptions.length - 1 : 0;
129
- } else {
130
- nextActiveOptionIndex = activeOptionIndex + amount;
131
- if (nextActiveOptionIndex < 0) {
132
- nextActiveOptionIndex = matchingOptions.length - 1;
133
- } else if (nextActiveOptionIndex === matchingOptions.length) {
134
- nextActiveOptionIndex = 0;
135
- }
136
- }
137
-
138
- // Group titles are included in option list but are not selectable
139
- // Skip group title options
140
137
  var direction = amount > 0 ? 1 : -1;
141
- while (matchingOptions[nextActiveOptionIndex].isGroupLabelOption) {
142
- nextActiveOptionIndex = nextActiveOptionIndex + direction;
143
- if (nextActiveOptionIndex < 0) {
144
- nextActiveOptionIndex = matchingOptions.length - 1;
145
- } else if (nextActiveOptionIndex === matchingOptions.length) {
146
- nextActiveOptionIndex = 0;
147
- }
148
- }
138
+ var startIndex = activeOptionIndex < 0 ?
139
+ // Inintial interaction: jump to first or last item
140
+ amount < 0 ? matchingOptions.length - 1 : 0 :
141
+ // Advance by amount, wrapping around
142
+ (activeOptionIndex + amount + matchingOptions.length) % matchingOptions.length;
149
143
  return {
150
- activeOptionIndex: nextActiveOptionIndex
144
+ activeOptionIndex: _this.findNextSelectableOptionIndex(matchingOptions, startIndex, direction)
151
145
  };
152
146
  });
153
147
  });
@@ -365,27 +359,36 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
365
359
  onChange = _this$props7.onChange,
366
360
  selectedOptions = _this$props7.selectedOptions,
367
361
  singleSelectionProp = _this$props7.singleSelection;
362
+ var _this$state2 = _this.state,
363
+ matchingOptions = _this$state2.matchingOptions,
364
+ listOptionRefs = _this$state2.listOptionRefs;
368
365
  var singleSelection = Boolean(singleSelectionProp);
369
366
  var changeOptions = singleSelection ? [addedOption] : selectedOptions.concat(addedOption);
370
367
  onChange === null || onChange === void 0 || onChange(changeOptions);
371
368
  _this.clearSearchValue();
372
- _this.clearActiveOption();
373
- if (!isContainerBlur) {
374
- var _this$searchInputRefI2;
375
- (_this$searchInputRefI2 = _this.searchInputRefInstance) === null || _this$searchInputRefI2 === void 0 || _this$searchInputRefI2.focus();
376
- }
377
369
  if (singleSelection) {
370
+ // List closes after single selection; return focus to the input
371
+ _this.clearActiveOption();
372
+ if (!isContainerBlur) {
373
+ var _this$searchInputRefI2;
374
+ (_this$searchInputRefI2 = _this.searchInputRefInstance) === null || _this$searchInputRefI2 === void 0 || _this$searchInputRefI2.focus();
375
+ }
378
376
  requestAnimationFrame(function () {
379
377
  return _this.closeList();
380
378
  });
379
+ } else if (isContainerBlur) {
380
+ // User tabbed away. `onContainerBlur` will close the list. We're only cleaning up state
381
+ _this.clearActiveOption();
381
382
  } else {
382
- _this.setState(function (_ref4) {
383
- var listOptionRefs = _ref4.listOptionRefs,
384
- matchingOptions = _ref4.matchingOptions;
385
- return {
386
- listOptionRefs: listOptionRefs.slice(0, matchingOptions.length - 1),
387
- activeOptionIndex: matchingOptions.indexOf(addedOption)
388
- };
383
+ var currentIndex = matchingOptions.indexOf(addedOption);
384
+ var nextOptions = matchingOptions.filter(function (option) {
385
+ return option !== addedOption;
386
+ });
387
+ _this.setState({
388
+ listOptionRefs: listOptionRefs.slice(0, matchingOptions.length - 1),
389
+ activeOptionIndex: _this.findNextSelectableOptionIndex(nextOptions, Math.min(currentIndex, nextOptions.length - 1)
390
+ // direction defaults to 1 (forward)
391
+ )
389
392
  });
390
393
  }
391
394
  });
@@ -493,6 +496,7 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
493
496
  delimiter = _this$props11.delimiter,
494
497
  append = _this$props11.append,
495
498
  autoFocus = _this$props11.autoFocus,
499
+ onFocusBadge = _this$props11.onFocusBadge,
496
500
  truncationProps = _this$props11.truncationProps,
497
501
  inputPopoverProps = _this$props11.inputPopoverProps,
498
502
  optionMatcher = _this$props11.optionMatcher,
@@ -500,12 +504,12 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
500
504
  ariaLabelledby = _this$props11['aria-labelledby'],
501
505
  ariaDescribedby = _this$props11['aria-describedby'],
502
506
  rest = (0, _objectWithoutProperties2.default)(_this$props11, _excluded);
503
- var _this$state2 = this.state,
504
- activeOptionIndex = _this$state2.activeOptionIndex,
505
- hasFocus = _this$state2.hasFocus,
506
- isListOpen = _this$state2.isListOpen,
507
- searchValue = _this$state2.searchValue,
508
- matchingOptions = _this$state2.matchingOptions;
507
+ var _this$state3 = this.state,
508
+ activeOptionIndex = _this$state3.activeOptionIndex,
509
+ hasFocus = _this$state3.hasFocus,
510
+ isListOpen = _this$state3.isListOpen,
511
+ searchValue = _this$state3.searchValue,
512
+ matchingOptions = _this$state3.matchingOptions;
509
513
 
510
514
  // Make sure we have a valid ID if users don't pass one as a prop
511
515
  var inputId = id !== null && id !== void 0 ? id : this.rootId('_eui-combobox-id');
@@ -556,7 +560,8 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
556
560
  delimiter: delimiter,
557
561
  getSelectedOptionForSearchValue: _matching_options.getSelectedOptionForSearchValue,
558
562
  listboxAriaLabel: listboxAriaLabel,
559
- truncationProps: truncationProps
563
+ truncationProps: truncationProps,
564
+ onFocusBadge: onFocusBadge
560
565
  });
561
566
  });
562
567
  }
@@ -581,11 +586,11 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
581
586
  ref: _this2.comboBoxRefCallback
582
587
  }), (0, _react2.jsx)(_popover.EuiInputPopover, (0, _extends2.default)({
583
588
  fullWidth: fullWidth,
584
- panelPaddingSize: "none",
589
+ panelPaddingSize: "s",
585
590
  disableFocusTrap: true,
586
591
  closeOnScroll: true
587
592
  }, inputPopoverProps, {
588
- isOpen: isListOpen,
593
+ isOpen: isListOpen && !noSuggestions,
589
594
  closePopover: _this2.closeList
590
595
  /* we don't want content changes to be announced via aria-live
591
596
  because ComboBox uses a virtualized list that updates itself
@@ -593,7 +598,10 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
593
598
  "aria-live": "off",
594
599
  input: (0, _react2.jsx)(_combo_box_input.EuiComboBoxInput, {
595
600
  compressed: compressed,
596
- focusedOptionId: _this2.hasActiveOption() ? (_this2$state$listOpti = (_this2$state$listOpti2 = _this2.state.listOptionRefs[_this2.state.activeOptionIndex]) === null || _this2$state$listOpti2 === void 0 ? void 0 : _this2$state$listOpti2.id) !== null && _this2$state$listOpti !== void 0 ? _this2$state$listOpti : _this2.rootId("_option-".concat(_this2.state.activeOptionIndex)) : undefined,
601
+ 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 :
602
+ // uses the original `options` array to ensure a stable `id`, otherwise `aria-activedescendant`
603
+ // loses focus on selecting an option (due to actively removing it from the list)
604
+ _this2.rootId("_option-".concat(_this2.props.options.indexOf(matchingOptions[activeOptionIndex]))) : undefined,
597
605
  fullWidth: fullWidth,
598
606
  hasSelectedOptions: selectedOptions.length > 0,
599
607
  id: inputId,