@elastic/eui 114.3.0 → 116.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. package/es/components/basic_table/basic_table.js +3 -6
  2. package/es/components/basic_table/collapsed_item_actions.js +1 -3
  3. package/es/components/basic_table/default_item_action.js +0 -1
  4. package/es/components/basic_table/in_memory_table.js +3 -6
  5. package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  6. package/es/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  7. package/es/components/color_picker/color_picker_swatch.js +1 -2
  8. package/es/components/combo_box/combo_box.a11y.js +5 -5
  9. package/es/components/combo_box/combo_box.js +61 -53
  10. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +147 -84
  11. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +8 -7
  12. package/es/components/context_menu/context_menu.js +19 -21
  13. package/es/components/context_menu/context_menu.styles.js +5 -2
  14. package/es/components/context_menu/context_menu_item.js +69 -58
  15. package/es/components/context_menu/context_menu_item.styles.js +14 -28
  16. package/es/components/context_menu/context_menu_panel.js +37 -21
  17. package/es/components/context_menu/context_menu_panel.styles.js +7 -2
  18. package/es/components/context_menu/context_menu_panel_title.js +124 -0
  19. package/es/components/context_menu/context_menu_panel_title.styles.js +20 -0
  20. package/es/components/context_menu/index.js +2 -1
  21. package/es/components/datagrid/body/cell/data_grid_cell.js +35 -29
  22. package/es/components/datagrid/body/data_grid_body.js +23 -17
  23. package/es/components/datagrid/body/data_grid_body_custom.js +23 -17
  24. package/es/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  25. package/es/components/datagrid/body/header/column_actions.js +1 -2
  26. package/es/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  27. package/es/components/datagrid/controls/column_sorting.js +23 -17
  28. package/es/components/datagrid/controls/display_selector.js +1 -2
  29. package/es/components/datagrid/controls/fullscreen_selector.js +1 -2
  30. package/es/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  31. package/es/components/datagrid/utils/in_memory.js +23 -17
  32. package/es/components/filter_group/filter_group.a11y.js +8 -2
  33. package/es/components/filter_group/filter_select_item.js +36 -17
  34. package/es/components/flyout/flyout_menu.js +1 -4
  35. package/es/components/form/checkbox/checkbox.js +6 -6
  36. package/es/components/form/checkbox/checkbox.styles.js +1 -22
  37. package/es/components/form/checkbox/checkbox_control.js +78 -0
  38. package/es/components/form/checkbox/checkbox_control.styles.js +40 -0
  39. package/es/components/form/checkbox/index.js +1 -0
  40. package/es/components/form/form.styles.js +2 -1
  41. package/es/components/form/radio/radio.styles.js +1 -1
  42. package/es/components/form/super_select/super_select.js +118 -99
  43. package/es/components/form/super_select/super_select.styles.js +4 -8
  44. package/es/components/form/super_select/super_select_item.js +10 -18
  45. package/es/components/key_pad_menu/key_pad_menu_item.js +1 -2
  46. package/es/components/link/external_link_icon.js +4 -2
  47. package/es/components/list_group/list_group.js +20 -34
  48. package/es/components/list_group/list_group.styles.js +2 -16
  49. package/es/components/list_group/list_group_item.js +75 -87
  50. package/es/components/list_group/list_group_item.styles.js +17 -61
  51. package/es/components/list_group/list_group_item_extra_action.styles.js +6 -6
  52. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  53. package/es/components/list_item_layout/_list_item_layout.js +692 -0
  54. package/es/components/list_item_layout/_list_item_layout.styles.js +93 -0
  55. package/es/components/list_item_layout/index.js +9 -0
  56. package/es/components/markdown_editor/markdown_editor.js +1 -1
  57. package/es/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
  58. package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
  59. package/es/components/markdown_editor/markdown_editor_toolbar.js +14 -10
  60. package/es/components/portal/portal.js +72 -117
  61. package/es/components/search_bar/filters/field_value_selection_filter.js +2 -1
  62. package/es/components/search_bar/filters/field_value_toggle_group_filter.js +42 -91
  63. package/es/components/selectable/selectable.js +1 -0
  64. package/es/components/selectable/selectable_list/selectable_list.js +52 -36
  65. package/es/components/selectable/selectable_list/selectable_list.styles.js +19 -4
  66. package/es/components/selectable/selectable_list/selectable_list_item.js +45 -152
  67. package/es/components/selectable/selectable_list/utils/get_list_item_size.js +17 -0
  68. package/es/components/selectable/selectable_search/selectable_search.js +4 -1
  69. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  70. package/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  71. package/es/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  72. package/es/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  73. package/es/components/table/table_header_cell.js +1 -2
  74. package/es/components/tool_tip/icon_tip.js +4 -8
  75. package/es/components/tool_tip/tool_tip.js +233 -261
  76. package/es/components/tool_tip/tool_tip.styles.js +10 -18
  77. package/es/components/tool_tip/tool_tip_anchor.js +3 -3
  78. package/es/components/tool_tip/tool_tip_manager.js +1 -0
  79. package/es/components/tool_tip/tool_tip_popover.js +7 -7
  80. package/es/global_styling/mixins/_helpers.js +32 -11
  81. package/es/test/rtl/component_helpers.d.ts +0 -3
  82. package/es/test/rtl/component_helpers.js +40 -62
  83. package/eui.d.ts +10463 -8188
  84. package/i18ntokens.json +2607 -2589
  85. package/lib/components/basic_table/basic_table.js +3 -6
  86. package/lib/components/basic_table/collapsed_item_actions.js +1 -3
  87. package/lib/components/basic_table/default_item_action.js +0 -1
  88. package/lib/components/basic_table/in_memory_table.js +3 -6
  89. package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  90. package/lib/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  91. package/lib/components/color_picker/color_picker_swatch.js +1 -2
  92. package/lib/components/combo_box/combo_box.a11y.js +5 -5
  93. package/lib/components/combo_box/combo_box.js +61 -53
  94. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -82
  95. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  96. package/lib/components/context_menu/context_menu.js +20 -22
  97. package/lib/components/context_menu/context_menu.styles.js +4 -1
  98. package/lib/components/context_menu/context_menu_item.js +70 -59
  99. package/lib/components/context_menu/context_menu_item.styles.js +13 -27
  100. package/lib/components/context_menu/context_menu_panel.js +37 -21
  101. package/lib/components/context_menu/context_menu_panel.styles.js +7 -2
  102. package/lib/components/context_menu/context_menu_panel_title.js +130 -0
  103. package/lib/components/context_menu/context_menu_panel_title.styles.js +26 -0
  104. package/lib/components/context_menu/index.js +8 -1
  105. package/lib/components/datagrid/body/cell/data_grid_cell.js +35 -29
  106. package/lib/components/datagrid/body/data_grid_body.js +23 -17
  107. package/lib/components/datagrid/body/data_grid_body_custom.js +23 -17
  108. package/lib/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  109. package/lib/components/datagrid/body/header/column_actions.js +1 -2
  110. package/lib/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  111. package/lib/components/datagrid/controls/column_sorting.js +23 -17
  112. package/lib/components/datagrid/controls/display_selector.js +1 -2
  113. package/lib/components/datagrid/controls/fullscreen_selector.js +1 -2
  114. package/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  115. package/lib/components/datagrid/utils/in_memory.js +23 -17
  116. package/lib/components/filter_group/filter_group.a11y.js +8 -2
  117. package/lib/components/filter_group/filter_select_item.js +35 -16
  118. package/lib/components/flyout/flyout_menu.js +1 -4
  119. package/lib/components/form/checkbox/checkbox.js +6 -6
  120. package/lib/components/form/checkbox/checkbox.styles.js +1 -22
  121. package/lib/components/form/checkbox/checkbox_control.js +84 -0
  122. package/lib/components/form/checkbox/checkbox_control.styles.js +44 -0
  123. package/lib/components/form/checkbox/index.js +7 -0
  124. package/lib/components/form/form.styles.js +2 -1
  125. package/lib/components/form/radio/radio.styles.js +1 -1
  126. package/lib/components/form/super_select/super_select.js +116 -97
  127. package/lib/components/form/super_select/super_select.styles.js +4 -8
  128. package/lib/components/form/super_select/super_select_item.js +13 -18
  129. package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -2
  130. package/lib/components/link/external_link_icon.js +4 -2
  131. package/lib/components/list_group/list_group.js +21 -35
  132. package/lib/components/list_group/list_group.styles.js +2 -16
  133. package/lib/components/list_group/list_group_item.js +75 -87
  134. package/lib/components/list_group/list_group_item.styles.js +17 -61
  135. package/lib/components/list_group/list_group_item_extra_action.styles.js +5 -5
  136. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  137. package/lib/components/list_item_layout/_list_item_layout.js +699 -0
  138. package/lib/components/list_item_layout/_list_item_layout.styles.js +97 -0
  139. package/lib/components/list_item_layout/index.js +12 -0
  140. package/lib/components/markdown_editor/markdown_editor.js +1 -1
  141. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
  142. package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
  143. package/lib/components/markdown_editor/markdown_editor_toolbar.js +12 -10
  144. package/lib/components/portal/portal.js +73 -118
  145. package/lib/components/search_bar/filters/field_value_selection_filter.js +2 -1
  146. package/lib/components/search_bar/filters/field_value_toggle_group_filter.js +44 -93
  147. package/lib/components/selectable/selectable.js +1 -0
  148. package/lib/components/selectable/selectable_list/selectable_list.js +50 -34
  149. package/lib/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  150. package/lib/components/selectable/selectable_list/selectable_list_item.js +44 -152
  151. package/lib/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  152. package/lib/components/selectable/selectable_search/selectable_search.js +4 -1
  153. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  154. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  155. package/lib/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  156. package/lib/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  157. package/lib/components/table/table_header_cell.js +1 -2
  158. package/lib/components/tool_tip/icon_tip.js +4 -8
  159. package/lib/components/tool_tip/tool_tip.js +240 -266
  160. package/lib/components/tool_tip/tool_tip.styles.js +8 -16
  161. package/lib/components/tool_tip/tool_tip_anchor.js +2 -2
  162. package/lib/components/tool_tip/tool_tip_manager.js +1 -0
  163. package/lib/components/tool_tip/tool_tip_popover.js +6 -6
  164. package/lib/global_styling/mixins/_helpers.js +33 -12
  165. package/lib/test/rtl/component_helpers.d.ts +0 -3
  166. package/lib/test/rtl/component_helpers.js +41 -63
  167. package/optimize/es/components/basic_table/collapsed_item_actions.js +1 -3
  168. package/optimize/es/components/basic_table/default_item_action.js +0 -1
  169. package/optimize/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -4
  170. package/optimize/es/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  171. package/optimize/es/components/combo_box/combo_box.a11y.js +5 -5
  172. package/optimize/es/components/combo_box/combo_box.js +60 -52
  173. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -83
  174. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +8 -7
  175. package/optimize/es/components/context_menu/context_menu.js +18 -13
  176. package/optimize/es/components/context_menu/context_menu.styles.js +5 -2
  177. package/optimize/es/components/context_menu/context_menu_item.js +55 -53
  178. package/optimize/es/components/context_menu/context_menu_item.styles.js +14 -28
  179. package/optimize/es/components/context_menu/context_menu_panel.js +36 -17
  180. package/optimize/es/components/context_menu/context_menu_panel.styles.js +7 -2
  181. package/optimize/es/components/context_menu/context_menu_panel_title.js +53 -0
  182. package/optimize/es/components/context_menu/context_menu_panel_title.styles.js +20 -0
  183. package/optimize/es/components/context_menu/index.js +2 -1
  184. package/optimize/es/components/datagrid/body/header/column_actions.js +1 -2
  185. package/optimize/es/components/datagrid/controls/display_selector.js +1 -2
  186. package/optimize/es/components/datagrid/controls/fullscreen_selector.js +1 -2
  187. package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  188. package/optimize/es/components/filter_group/filter_group.a11y.js +8 -2
  189. package/optimize/es/components/filter_group/filter_select_item.js +36 -17
  190. package/optimize/es/components/flyout/flyout_menu.js +1 -4
  191. package/optimize/es/components/form/checkbox/checkbox.js +6 -6
  192. package/optimize/es/components/form/checkbox/checkbox.styles.js +1 -22
  193. package/optimize/es/components/form/checkbox/checkbox_control.js +48 -0
  194. package/optimize/es/components/form/checkbox/checkbox_control.styles.js +40 -0
  195. package/optimize/es/components/form/checkbox/index.js +1 -0
  196. package/optimize/es/components/form/form.styles.js +2 -1
  197. package/optimize/es/components/form/radio/radio.styles.js +1 -1
  198. package/optimize/es/components/form/super_select/super_select.js +118 -90
  199. package/optimize/es/components/form/super_select/super_select.styles.js +4 -8
  200. package/optimize/es/components/form/super_select/super_select_item.js +10 -14
  201. package/optimize/es/components/key_pad_menu/key_pad_menu_item.js +1 -2
  202. package/optimize/es/components/link/external_link_icon.js +4 -2
  203. package/optimize/es/components/list_group/list_group.js +7 -14
  204. package/optimize/es/components/list_group/list_group.styles.js +2 -16
  205. package/optimize/es/components/list_group/list_group_item.js +62 -80
  206. package/optimize/es/components/list_group/list_group_item.styles.js +17 -61
  207. package/optimize/es/components/list_group/list_group_item_extra_action.styles.js +6 -6
  208. package/optimize/es/components/list_item_layout/_list_item_layout.js +353 -0
  209. package/optimize/es/components/list_item_layout/_list_item_layout.styles.js +93 -0
  210. package/optimize/es/components/list_item_layout/index.js +9 -0
  211. package/optimize/es/components/markdown_editor/markdown_editor_drop_zone.js +5 -2
  212. package/optimize/es/components/markdown_editor/markdown_editor_toolbar.js +13 -9
  213. package/optimize/es/components/portal/portal.js +65 -91
  214. package/optimize/es/components/search_bar/filters/field_value_selection_filter.js +2 -1
  215. package/optimize/es/components/search_bar/filters/field_value_toggle_group_filter.js +43 -66
  216. package/optimize/es/components/selectable/selectable_list/selectable_list.js +48 -33
  217. package/optimize/es/components/selectable/selectable_list/selectable_list.styles.js +19 -4
  218. package/optimize/es/components/selectable/selectable_list/selectable_list_item.js +41 -143
  219. package/optimize/es/components/selectable/selectable_list/utils/get_list_item_size.js +17 -0
  220. package/optimize/es/components/selectable/selectable_search/selectable_search.js +4 -1
  221. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  222. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  223. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  224. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  225. package/optimize/es/components/tool_tip/icon_tip.js +3 -5
  226. package/optimize/es/components/tool_tip/tool_tip.js +227 -250
  227. package/optimize/es/components/tool_tip/tool_tip.styles.js +10 -18
  228. package/optimize/es/components/tool_tip/tool_tip_anchor.js +3 -3
  229. package/optimize/es/components/tool_tip/tool_tip_manager.js +1 -0
  230. package/optimize/es/components/tool_tip/tool_tip_popover.js +7 -7
  231. package/optimize/es/global_styling/mixins/_helpers.js +32 -11
  232. package/optimize/es/test/rtl/component_helpers.d.ts +0 -3
  233. package/optimize/es/test/rtl/component_helpers.js +40 -62
  234. package/optimize/lib/components/basic_table/collapsed_item_actions.js +1 -3
  235. package/optimize/lib/components/basic_table/default_item_action.js +0 -1
  236. package/optimize/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -4
  237. package/optimize/lib/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  238. package/optimize/lib/components/combo_box/combo_box.a11y.js +5 -5
  239. package/optimize/lib/components/combo_box/combo_box.js +60 -52
  240. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +143 -81
  241. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  242. package/optimize/lib/components/context_menu/context_menu.js +19 -14
  243. package/optimize/lib/components/context_menu/context_menu.styles.js +4 -1
  244. package/optimize/lib/components/context_menu/context_menu_item.js +56 -54
  245. package/optimize/lib/components/context_menu/context_menu_item.styles.js +13 -27
  246. package/optimize/lib/components/context_menu/context_menu_panel.js +36 -17
  247. package/optimize/lib/components/context_menu/context_menu_panel.styles.js +7 -2
  248. package/optimize/lib/components/context_menu/context_menu_panel_title.js +59 -0
  249. package/optimize/lib/components/context_menu/context_menu_panel_title.styles.js +26 -0
  250. package/optimize/lib/components/context_menu/index.js +8 -1
  251. package/optimize/lib/components/datagrid/body/header/column_actions.js +1 -2
  252. package/optimize/lib/components/datagrid/controls/display_selector.js +1 -2
  253. package/optimize/lib/components/datagrid/controls/fullscreen_selector.js +1 -2
  254. package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  255. package/optimize/lib/components/filter_group/filter_group.a11y.js +8 -2
  256. package/optimize/lib/components/filter_group/filter_select_item.js +35 -16
  257. package/optimize/lib/components/flyout/flyout_menu.js +1 -4
  258. package/optimize/lib/components/form/checkbox/checkbox.js +6 -6
  259. package/optimize/lib/components/form/checkbox/checkbox.styles.js +1 -22
  260. package/optimize/lib/components/form/checkbox/checkbox_control.js +54 -0
  261. package/optimize/lib/components/form/checkbox/checkbox_control.styles.js +44 -0
  262. package/optimize/lib/components/form/checkbox/index.js +7 -0
  263. package/optimize/lib/components/form/form.styles.js +2 -1
  264. package/optimize/lib/components/form/radio/radio.styles.js +1 -1
  265. package/optimize/lib/components/form/super_select/super_select.js +116 -88
  266. package/optimize/lib/components/form/super_select/super_select.styles.js +4 -8
  267. package/optimize/lib/components/form/super_select/super_select_item.js +13 -14
  268. package/optimize/lib/components/key_pad_menu/key_pad_menu_item.js +1 -2
  269. package/optimize/lib/components/link/external_link_icon.js +4 -2
  270. package/optimize/lib/components/list_group/list_group.js +8 -15
  271. package/optimize/lib/components/list_group/list_group.styles.js +2 -16
  272. package/optimize/lib/components/list_group/list_group_item.js +62 -80
  273. package/optimize/lib/components/list_group/list_group_item.styles.js +17 -61
  274. package/optimize/lib/components/list_group/list_group_item_extra_action.styles.js +5 -5
  275. package/optimize/lib/components/list_item_layout/_list_item_layout.js +361 -0
  276. package/optimize/lib/components/list_item_layout/_list_item_layout.styles.js +97 -0
  277. package/optimize/lib/components/list_item_layout/index.js +12 -0
  278. package/optimize/lib/components/markdown_editor/markdown_editor_drop_zone.js +5 -2
  279. package/optimize/lib/components/markdown_editor/markdown_editor_toolbar.js +13 -9
  280. package/optimize/lib/components/portal/portal.js +68 -93
  281. package/optimize/lib/components/search_bar/filters/field_value_selection_filter.js +2 -1
  282. package/optimize/lib/components/search_bar/filters/field_value_toggle_group_filter.js +45 -69
  283. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +46 -31
  284. package/optimize/lib/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  285. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.js +41 -143
  286. package/optimize/lib/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  287. package/optimize/lib/components/selectable/selectable_search/selectable_search.js +4 -1
  288. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  289. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  290. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  291. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  292. package/optimize/lib/components/tool_tip/icon_tip.js +3 -5
  293. package/optimize/lib/components/tool_tip/tool_tip.js +229 -251
  294. package/optimize/lib/components/tool_tip/tool_tip.styles.js +8 -16
  295. package/optimize/lib/components/tool_tip/tool_tip_anchor.js +2 -2
  296. package/optimize/lib/components/tool_tip/tool_tip_manager.js +1 -0
  297. package/optimize/lib/components/tool_tip/tool_tip_popover.js +6 -6
  298. package/optimize/lib/global_styling/mixins/_helpers.js +33 -12
  299. package/optimize/lib/test/rtl/component_helpers.d.ts +0 -3
  300. package/optimize/lib/test/rtl/component_helpers.js +41 -63
  301. package/package.json +5 -13
  302. package/test-env/components/basic_table/basic_table.js +3 -6
  303. package/test-env/components/basic_table/collapsed_item_actions.js +1 -3
  304. package/test-env/components/basic_table/default_item_action.js +0 -1
  305. package/test-env/components/basic_table/in_memory_table.js +3 -6
  306. package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  307. package/test-env/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  308. package/test-env/components/color_picker/color_picker_swatch.js +1 -2
  309. package/test-env/components/combo_box/combo_box.a11y.js +5 -5
  310. package/test-env/components/combo_box/combo_box.js +61 -53
  311. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -82
  312. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  313. package/test-env/components/context_menu/context_menu.js +20 -22
  314. package/test-env/components/context_menu/context_menu.styles.js +4 -1
  315. package/test-env/components/context_menu/context_menu_item.js +67 -59
  316. package/test-env/components/context_menu/context_menu_item.styles.js +13 -27
  317. package/test-env/components/context_menu/context_menu_panel.js +37 -21
  318. package/test-env/components/context_menu/context_menu_panel.styles.js +7 -2
  319. package/test-env/components/context_menu/context_menu_panel_title.js +129 -0
  320. package/test-env/components/context_menu/context_menu_panel_title.styles.js +26 -0
  321. package/test-env/components/context_menu/index.js +8 -1
  322. package/test-env/components/datagrid/body/cell/data_grid_cell.js +35 -29
  323. package/test-env/components/datagrid/body/data_grid_body.js +23 -17
  324. package/test-env/components/datagrid/body/data_grid_body_custom.js +23 -17
  325. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  326. package/test-env/components/datagrid/body/header/column_actions.js +1 -2
  327. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  328. package/test-env/components/datagrid/controls/column_sorting.js +23 -17
  329. package/test-env/components/datagrid/controls/display_selector.js +1 -2
  330. package/test-env/components/datagrid/controls/fullscreen_selector.js +1 -2
  331. package/test-env/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  332. package/test-env/components/datagrid/utils/in_memory.js +23 -17
  333. package/test-env/components/filter_group/filter_group.a11y.js +8 -2
  334. package/test-env/components/filter_group/filter_select_item.js +35 -16
  335. package/test-env/components/flyout/flyout_menu.js +1 -4
  336. package/test-env/components/form/checkbox/checkbox.js +6 -6
  337. package/test-env/components/form/checkbox/checkbox.styles.js +1 -22
  338. package/test-env/components/form/checkbox/checkbox_control.js +83 -0
  339. package/test-env/components/form/checkbox/checkbox_control.styles.js +44 -0
  340. package/test-env/components/form/checkbox/index.js +7 -0
  341. package/test-env/components/form/form.styles.js +2 -1
  342. package/test-env/components/form/radio/radio.styles.js +1 -1
  343. package/test-env/components/form/super_select/super_select.js +116 -97
  344. package/test-env/components/form/super_select/super_select.styles.js +4 -8
  345. package/test-env/components/form/super_select/super_select_item.js +13 -18
  346. package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -2
  347. package/test-env/components/link/external_link_icon.js +4 -2
  348. package/test-env/components/list_group/list_group.js +21 -35
  349. package/test-env/components/list_group/list_group.styles.js +2 -16
  350. package/test-env/components/list_group/list_group_item.js +75 -87
  351. package/test-env/components/list_group/list_group_item.styles.js +17 -61
  352. package/test-env/components/list_group/list_group_item_extra_action.styles.js +5 -5
  353. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  354. package/test-env/components/list_item_layout/_list_item_layout.js +691 -0
  355. package/test-env/components/list_item_layout/_list_item_layout.styles.js +97 -0
  356. package/test-env/components/list_item_layout/index.js +12 -0
  357. package/test-env/components/markdown_editor/markdown_editor.js +1 -1
  358. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
  359. package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
  360. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +14 -10
  361. package/test-env/components/portal/portal.js +70 -113
  362. package/test-env/components/search_bar/filters/field_value_selection_filter.js +2 -1
  363. package/test-env/components/search_bar/filters/field_value_toggle_group_filter.js +44 -88
  364. package/test-env/components/selectable/selectable.js +1 -0
  365. package/test-env/components/selectable/selectable_list/selectable_list.js +50 -34
  366. package/test-env/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  367. package/test-env/components/selectable/selectable_list/selectable_list_item.js +42 -147
  368. package/test-env/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  369. package/test-env/components/selectable/selectable_search/selectable_search.js +4 -1
  370. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  371. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  372. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  373. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  374. package/test-env/components/table/table_header_cell.js +1 -2
  375. package/test-env/components/tool_tip/icon_tip.js +4 -8
  376. package/test-env/components/tool_tip/tool_tip.js +230 -256
  377. package/test-env/components/tool_tip/tool_tip.styles.js +8 -16
  378. package/test-env/components/tool_tip/tool_tip_anchor.js +2 -2
  379. package/test-env/components/tool_tip/tool_tip_manager.js +1 -0
  380. package/test-env/components/tool_tip/tool_tip_popover.js +6 -6
  381. package/test-env/global_styling/mixins/_helpers.js +33 -12
  382. package/test-env/test/rtl/component_helpers.js +41 -63
  383. package/es/components/selectable/selectable_list/selectable_list_item.styles.js +0 -55
  384. package/lib/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
  385. package/optimize/es/components/selectable/selectable_list/selectable_list_item.styles.js +0 -55
  386. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
  387. package/test-env/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
@@ -12,7 +12,7 @@ var _excluded = ["className", "id", "checked", "label", "onChange", "type", "dis
12
12
  import React, { useCallback } from 'react';
13
13
  import classNames from 'classnames';
14
14
  import { useCombinedRefs, useEuiMemoizedStyles } from '../../../services';
15
- import { EuiIcon } from '../../icon';
15
+ import { EuiCheckboxControl } from './checkbox_control';
16
16
  import { euiCheckboxStyles } from './checkbox.styles';
17
17
  import { jsx as ___EmotionJSX } from "@emotion/react";
18
18
  export var EuiCheckbox = function EuiCheckbox(_ref) {
@@ -34,10 +34,9 @@ export var EuiCheckbox = function EuiCheckbox(_ref) {
34
34
  rest = _objectWithoutProperties(_ref, _excluded);
35
35
  var classes = classNames('euiCheckbox', className);
36
36
  var styles = useEuiMemoizedStyles(euiCheckboxStyles);
37
- var inputStyles = [styles.input.euiCheckbox__square, !!label && styles.input.hasLabel, disabled ? checked || indeterminate ? styles.input.disabled.selected : styles.input.disabled.unselected : checked || indeterminate ? styles.input.enabled.selected : styles.input.enabled.unselected, readOnly && styles.input.readOnly];
37
+ var inputStyles = [styles.input.euiCheckbox__square, !!label && styles.input.hasLabel, readOnly && styles.input.readOnly];
38
38
  var labelClasses = classNames('euiCheckbox__label', labelProps === null || labelProps === void 0 ? void 0 : labelProps.className);
39
39
  var labelStyles = [styles.label.euiCheckbox__label, disabled ? styles.label.disabled : styles.label.enabled, readOnly && styles.label.readOnly, labelProps === null || labelProps === void 0 ? void 0 : labelProps.css];
40
- var iconStyles = [styles.input.icon.euiCheckbox__icon, indeterminate ? styles.input.icon.indeterminate : styles.input.icon.check];
41
40
 
42
41
  // @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#indeterminate_state_checkboxes
43
42
  var setIndeterminateState = useCallback(function (input) {
@@ -50,9 +49,10 @@ export var EuiCheckbox = function EuiCheckbox(_ref) {
50
49
  }, ___EmotionJSX("div", {
51
50
  css: inputStyles,
52
51
  className: "euiCheckbox__square"
53
- }, ___EmotionJSX(EuiIcon, {
54
- css: iconStyles,
55
- type: indeterminate ? 'stopFill' : checked ? 'check' : 'empty'
52
+ }, ___EmotionJSX(EuiCheckboxControl, {
53
+ checked: checked,
54
+ indeterminate: indeterminate,
55
+ disabled: disabled
56
56
  }), ___EmotionJSX("input", _extends({
57
57
  css: styles.input.euiCheckbox__input,
58
58
  className: "euiCheckbox__input",
@@ -17,14 +17,6 @@ var _ref = process.env.NODE_ENV === "production" ? {
17
17
  styles: "cursor:default;label:readOnly;",
18
18
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
19
19
  };
20
- var _ref2 = process.env.NODE_ENV === "production" ? {
21
- name: "u54glv-indeterminate",
22
- styles: "transform:scale(0.5);label:indeterminate;"
23
- } : {
24
- name: "u54glv-indeterminate",
25
- styles: "transform:scale(0.5);label:indeterminate;",
26
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
27
- };
28
20
  export var euiCheckboxStyles = function euiCheckboxStyles(euiThemeContext) {
29
21
  var euiTheme = euiThemeContext.euiTheme;
30
22
  var controlStyles = euiFormCustomControlStyles(euiThemeContext);
@@ -33,25 +25,12 @@ export var euiCheckboxStyles = function euiCheckboxStyles(euiThemeContext) {
33
25
  return {
34
26
  euiCheckbox: /*#__PURE__*/css(controlStyles.wrapper, ";label:euiCheckbox;"),
35
27
  input: {
36
- euiCheckbox__square: /*#__PURE__*/css(controlStyles.input.fauxInput, " border-radius:", euiTheme.border.radius.small, ";;label:euiCheckbox__square;"),
28
+ euiCheckbox__square: /*#__PURE__*/css("position:relative;", controlStyles.input.focusVisible, " border-radius:", euiTheme.border.radius.small, ";;label:euiCheckbox__square;"),
37
29
  hasLabel: controlStyles.input.hasLabel,
38
30
  // Skip css`` className generation
39
- enabled: {
40
- selected: /*#__PURE__*/css(controlStyles.input.enabled.selected, ";label:selected;"),
41
- unselected: /*#__PURE__*/css(controlStyles.input.enabled.unselected, ";label:unselected;")
42
- },
43
- disabled: {
44
- selected: /*#__PURE__*/css(controlStyles.input.disabled.selected, ";label:selected;"),
45
- unselected: /*#__PURE__*/css(controlStyles.input.disabled.unselected, ";label:unselected;")
46
- },
47
31
  // Readonly checkboxes are used by EuiMarkdownEditor
48
32
  // Maintain the initial color to enforce that clicks are not doing anything
49
33
  readOnly: /*#__PURE__*/css("&:has(input:focus-visible){outline:", euiTheme.focus.width, " solid ", unselectedBorder, ";}&:has(input:focus){border-color:", unselectedBorder, ";};label:readOnly;"),
50
- icon: {
51
- euiCheckbox__icon: /*#__PURE__*/css(";label:euiCheckbox__icon;"),
52
- check: /*#__PURE__*/css(controlStyles.input.icon, " stroke:currentColor;;label:check;"),
53
- indeterminate: _ref2
54
- },
55
34
  euiCheckbox__input: /*#__PURE__*/css(controlStyles.input.hiddenInput, " &[readonly]{cursor:default;};label:euiCheckbox__input;")
56
35
  },
57
36
  label: {
@@ -0,0 +1,48 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["className", "checked", "indeterminate", "excluded", "disabled"];
4
+ /*
5
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
6
+ * or more contributor license agreements. Licensed under the Elastic License
7
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
8
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
9
+ * Side Public License, v 1.
10
+ */
11
+
12
+ import React from 'react';
13
+ import classNames from 'classnames';
14
+ import { useEuiMemoizedStyles } from '../../../services';
15
+ import { EuiIcon } from '../../icon';
16
+ import { euiCheckboxControlStyles } from './checkbox_control.styles';
17
+ import { jsx as ___EmotionJSX } from "@emotion/react";
18
+ /**
19
+ * Presentation-only checkbox control element. Renders a checkbox square and state icon only without functionality.
20
+ */
21
+ export var EuiCheckboxControl = function EuiCheckboxControl(_ref) {
22
+ var className = _ref.className,
23
+ _ref$checked = _ref.checked,
24
+ checked = _ref$checked === void 0 ? false : _ref$checked,
25
+ _ref$indeterminate = _ref.indeterminate,
26
+ indeterminate = _ref$indeterminate === void 0 ? false : _ref$indeterminate,
27
+ _ref$excluded = _ref.excluded,
28
+ excluded = _ref$excluded === void 0 ? false : _ref$excluded,
29
+ _ref$disabled = _ref.disabled,
30
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
31
+ rest = _objectWithoutProperties(_ref, _excluded);
32
+ var isSelected = checked || indeterminate || excluded;
33
+ var isExcluded = excluded && !indeterminate;
34
+ var classes = classNames('euiCheckboxControl', className);
35
+ var styles = useEuiMemoizedStyles(euiCheckboxControlStyles);
36
+ var cssStyles = [styles.euiCheckboxControl, disabled ? isSelected ? styles.disabled.selected : styles.disabled.unselected : isExcluded ? styles.enabled.excluded : isSelected ? styles.enabled.selected : styles.enabled.unselected];
37
+ var iconStyles = [styles.icon.euiCheckbox__icon, indeterminate ? styles.icon.indeterminate : styles.icon.check];
38
+ var iconType = indeterminate ? 'stopFill' : excluded ? 'cross' : checked ? 'check' : 'empty';
39
+ return ___EmotionJSX("span", _extends({
40
+ css: cssStyles,
41
+ className: classes
42
+ }, rest), ___EmotionJSX(EuiIcon, {
43
+ role: "presentation",
44
+ css: iconStyles,
45
+ type: iconType,
46
+ size: "m"
47
+ }));
48
+ };
@@ -0,0 +1,40 @@
1
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
2
+ /*
3
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
4
+ * or more contributor license agreements. Licensed under the Elastic License
5
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
6
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
7
+ * Side Public License, v 1.
8
+ */
9
+
10
+ import { css } from '@emotion/react';
11
+ import { euiFormCustomControlStyles } from '../form.styles';
12
+ var _ref = process.env.NODE_ENV === "production" ? {
13
+ name: "u54glv-indeterminate",
14
+ styles: "transform:scale(0.5);label:indeterminate;"
15
+ } : {
16
+ name: "u54glv-indeterminate",
17
+ styles: "transform:scale(0.5);label:indeterminate;",
18
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
19
+ };
20
+ export var euiCheckboxControlStyles = function euiCheckboxControlStyles(euiThemeContext) {
21
+ var euiTheme = euiThemeContext.euiTheme;
22
+ var controlStyles = euiFormCustomControlStyles(euiThemeContext);
23
+ return {
24
+ euiCheckboxControl: /*#__PURE__*/css(controlStyles.input.fauxInput, " border-radius:", euiTheme.border.radius.small, ";;label:euiCheckboxControl;"),
25
+ enabled: {
26
+ selected: /*#__PURE__*/css(controlStyles.input.enabled.selected, ";label:selected;"),
27
+ unselected: /*#__PURE__*/css(controlStyles.input.enabled.unselected, ";label:unselected;"),
28
+ excluded: /*#__PURE__*/css(controlStyles.input.enabled.selected, " background-color:", euiTheme.colors.backgroundFilledDanger, ";border-color:", euiTheme.colors.backgroundFilledDanger, ";;label:excluded;")
29
+ },
30
+ disabled: {
31
+ selected: /*#__PURE__*/css(controlStyles.input.disabled.selected, ";label:selected;"),
32
+ unselected: /*#__PURE__*/css(controlStyles.input.disabled.unselected, ";label:unselected;")
33
+ },
34
+ icon: {
35
+ euiCheckbox__icon: /*#__PURE__*/css(";label:euiCheckbox__icon;"),
36
+ check: /*#__PURE__*/css(controlStyles.input.icon, " stroke:currentColor;;label:check;"),
37
+ indeterminate: _ref
38
+ }
39
+ };
40
+ };
@@ -7,4 +7,5 @@
7
7
  */
8
8
 
9
9
  export { EuiCheckbox } from './checkbox';
10
+ export { EuiCheckboxControl } from './checkbox_control';
10
11
  export { EuiCheckboxGroup } from './checkbox_group';
@@ -276,7 +276,8 @@ export var euiFormCustomControlStyles = function euiFormCustomControlStyles(euiT
276
276
  return {
277
277
  wrapper: "\n display: flex;\n align-items: flex-start;\n ",
278
278
  input: {
279
- fauxInput: "\n position: relative;\n ".concat(logicalCSS('height', controlVars.sizes.control), "\n ").concat(logicalCSS('width', controlVars.sizes.control), "\n display: flex;\n justify-content: center;\n align-items: center;\n /* For Windows high contrast themes, a border must always be rendered, not just a background */\n border: ").concat(euiTheme.border.width.thin, " solid transparent;\n\n &:has(input:focus-visible) {\n outline: ").concat(euiTheme.focus.width, " solid ").concat(controlVars.colors.selected, ";\n outline-offset: ").concat(euiTheme.focus.width, ";\n }\n\n ").concat(euiCanAnimate, " {\n transition-property: background-color, color;\n transition-duration: ").concat(controlVars.animation.speed, ";\n transition-timing-function: ").concat(controlVars.animation.easing, ";\n }\n "),
279
+ fauxInput: "\n position: relative;\n ".concat(logicalCSS('height', controlVars.sizes.control), "\n ").concat(logicalCSS('width', controlVars.sizes.control), "\n display: flex;\n justify-content: center;\n align-items: center;\n /* For Windows high contrast themes, a border must always be rendered, not just a background */\n border: ").concat(euiTheme.border.width.thin, " solid transparent;\n\n ").concat(euiCanAnimate, " {\n transition-property: background-color, color;\n transition-duration: ").concat(controlVars.animation.speed, ";\n transition-timing-function: ").concat(controlVars.animation.easing, ";\n }\n "),
280
+ focusVisible: "\n &:has(input:focus-visible) {\n outline: ".concat(euiTheme.focus.width, " solid ").concat(controlVars.colors.selected, ";\n outline-offset: ").concat(euiTheme.focus.width, ";\n }\n "),
280
281
  // TODO: Revert https://github.com/elastic/eui/pull/7981
281
282
  // once https://github.com/dperini/nwsapi/issues/123
282
283
  // has been fixed, and restore `&:has(+ label)` selector
@@ -13,7 +13,7 @@ export var euiRadioStyles = function euiRadioStyles(euiThemeContext) {
13
13
  return {
14
14
  euiRadio: /*#__PURE__*/css(controlStyles.wrapper, ";label:euiRadio;"),
15
15
  input: {
16
- euiRadio__circle: /*#__PURE__*/css(controlStyles.input.fauxInput, " border-radius:50%;;label:euiRadio__circle;"),
16
+ euiRadio__circle: /*#__PURE__*/css(controlStyles.input.fauxInput, " ", controlStyles.input.focusVisible, " border-radius:50%;;label:euiRadio__circle;"),
17
17
  hasLabel: controlStyles.input.hasLabel,
18
18
  // Skip css`` className generation
19
19
  enabled: {
@@ -6,8 +6,8 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
6
6
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
7
  import _inherits from "@babel/runtime/helpers/inherits";
8
8
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
- var _excluded = ["className", "options", "valueOfSelected", "placeholder", "onChange", "isOpen", "isInvalid", "hasDividers", "itemClassName", "itemLayoutAlign", "fullWidth", "popoverProps", "compressed"],
10
- _excluded2 = ["value", "dropdownDisplay", "inputDisplay"];
9
+ var _excluded = ["className", "options", "valueOfSelected", "placeholder", "onChange", "isOpen", "isInvalid", "itemClassName", "fullWidth", "popoverProps", "compressed"],
10
+ _excluded2 = ["value", "dropdownDisplay", "inputDisplay", "disabled"];
11
11
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
12
12
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
13
13
  /*
@@ -20,13 +20,13 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
20
20
 
21
21
  import React, { Component, createRef } from 'react';
22
22
  import classNames from 'classnames';
23
- import { htmlIdGenerator, keys } from '../../../services';
23
+ import { htmlIdGenerator, keys, RenderWithEuiStylesMemoizer } from '../../../services';
24
24
  import { EuiI18n } from '../../i18n';
25
25
  import { EuiScreenReaderOnly } from '../../accessibility';
26
26
  import { EuiInputPopover } from '../../popover';
27
27
  import { EuiSuperSelectControl } from './super_select_control';
28
28
  import { EuiSuperSelectItem } from './super_select_item';
29
- import { euiSuperSelectStyles as styles } from './super_select.styles';
29
+ import { euiSuperSelectStyles } from './super_select.styles';
30
30
  import { jsx as ___EmotionJSX } from "@emotion/react";
31
31
  var ShiftDirection = /*#__PURE__*/function (ShiftDirection) {
32
32
  ShiftDirection["BACK"] = "back";
@@ -46,40 +46,50 @@ export var EuiSuperSelect = /*#__PURE__*/function (_Component) {
46
46
  _defineProperty(_this, "controlButtonRef", /*#__PURE__*/createRef());
47
47
  _defineProperty(_this, "describedById", htmlIdGenerator('euiSuperSelect_')('_screenreaderDescribeId'));
48
48
  _defineProperty(_this, "state", {
49
- isPopoverOpen: _this.props.isOpen || false
49
+ isPopoverOpen: _this.props.isOpen || false,
50
+ currentIndex: 0
50
51
  });
51
52
  _defineProperty(_this, "setItemNode", function (node, index) {
52
53
  _this.itemNodes[index] = node;
53
54
  });
54
55
  _defineProperty(_this, "openPopover", function () {
56
+ var _this$props = _this.props,
57
+ options = _this$props.options,
58
+ valueOfSelected = _this$props.valueOfSelected;
59
+ var indexOfSelected = options.findIndex(function (option) {
60
+ return (option === null || option === void 0 ? void 0 : option.value) === valueOfSelected;
61
+ });
62
+ var candidateIndex = valueOfSelected != null && indexOfSelected >= 0 ? indexOfSelected : 0;
63
+ var initialIndex = candidateIndex;
64
+
65
+ // If the item is disabled, find the first focusable item going forward
66
+ while (initialIndex < options.length && (_options$initialIndex = options[initialIndex]) !== null && _options$initialIndex !== void 0 && _options$initialIndex.disabled) {
67
+ var _options$initialIndex;
68
+ initialIndex++;
69
+ }
70
+ if (initialIndex >= options.length) {
71
+ initialIndex = candidateIndex;
72
+ }
55
73
  _this.setState({
56
- isPopoverOpen: true
74
+ isPopoverOpen: options.length > 0,
75
+ currentIndex: initialIndex
57
76
  });
58
- var focusSelected = function focusSelected() {
59
- var indexOfSelected = _this.props.options.reduce(function (indexOfSelected, option, index) {
60
- if (indexOfSelected != null) return indexOfSelected;
61
- if (option == null) return null;
62
- return option.value === _this.props.valueOfSelected ? index : null;
63
- }, null);
77
+ requestAnimationFrame(function () {
64
78
  requestAnimationFrame(function () {
65
79
  if (!_this._isMounted) {
66
80
  return;
67
81
  }
68
- if (_this.props.valueOfSelected != null && indexOfSelected != null) {
69
- _this.focusItemAt(indexOfSelected);
70
- } else {
71
- _this.focusItemAt(0);
72
- }
82
+ _this.focusItemAt(initialIndex);
73
83
  if (_this.props.onFocus) {
74
84
  _this.props.onFocus();
75
85
  }
76
86
  });
77
- };
78
- requestAnimationFrame(focusSelected);
87
+ });
79
88
  });
80
89
  _defineProperty(_this, "closePopover", function () {
81
90
  _this.setState({
82
- isPopoverOpen: false
91
+ isPopoverOpen: false,
92
+ currentIndex: -1
83
93
  });
84
94
 
85
95
  // Refocus back to the toggling control button on popover close
@@ -149,54 +159,58 @@ export var EuiSuperSelect = /*#__PURE__*/function (_Component) {
149
159
  }
150
160
  }, {
151
161
  key: "focusItemAt",
152
- value: function focusItemAt(index, direction) {
153
- var _targetElement;
154
- var targetElement = this.itemNodes[index];
155
- // If the current index is disabled, find the next non-disabled element
156
- while (targetElement && targetElement.disabled) {
157
- direction === ShiftDirection.BACK ? index-- : index++;
158
- targetElement = this.itemNodes[index];
159
- }
160
- (_targetElement = targetElement) === null || _targetElement === void 0 || _targetElement.focus();
162
+ value: function focusItemAt(index) {
163
+ var _this$itemNodes$index;
164
+ (_this$itemNodes$index = this.itemNodes[index]) === null || _this$itemNodes$index === void 0 || _this$itemNodes$index.focus();
161
165
  }
162
166
  }, {
163
167
  key: "shiftFocus",
164
168
  value: function shiftFocus(direction) {
165
- var currentIndex = this.itemNodes.indexOf(document.activeElement);
166
- var targetElementIndex;
169
+ var options = this.props.options;
170
+ var currentIndex = this.state.currentIndex;
167
171
  if (currentIndex === -1) {
168
172
  // somehow the select options has lost focus
169
- targetElementIndex = 0;
170
- } else {
171
- // Note: this component purposely does not cycle arrow key navigation
172
- // to match native <select> elements
173
- if (direction === ShiftDirection.BACK) {
174
- targetElementIndex = currentIndex - 1;
175
- } else {
176
- targetElementIndex = currentIndex + 1;
173
+ this.focusItemAt(0);
174
+ this.setState({
175
+ currentIndex: 0
176
+ });
177
+ return;
178
+ }
179
+
180
+ // Note: this component purposely does not cycle arrow key navigation
181
+ // to match native <select> elements
182
+ var step = direction === ShiftDirection.BACK ? -1 : 1;
183
+ var nextIndex = currentIndex + step;
184
+ while (nextIndex >= 0 && nextIndex < options.length) {
185
+ var _options$nextIndex;
186
+ if (!((_options$nextIndex = options[nextIndex]) !== null && _options$nextIndex !== void 0 && _options$nextIndex.disabled)) {
187
+ this.focusItemAt(nextIndex);
188
+ this.setState({
189
+ currentIndex: nextIndex
190
+ });
191
+ return;
177
192
  }
193
+ nextIndex += step;
178
194
  }
179
- this.focusItemAt(targetElementIndex, direction);
180
195
  }
181
196
  }, {
182
197
  key: "render",
183
198
  value: function render() {
184
- var _this2 = this;
185
- var _this$props = this.props,
186
- className = _this$props.className,
187
- options = _this$props.options,
188
- valueOfSelected = _this$props.valueOfSelected,
189
- placeholder = _this$props.placeholder,
190
- onChange = _this$props.onChange,
191
- isOpen = _this$props.isOpen,
192
- isInvalid = _this$props.isInvalid,
193
- hasDividers = _this$props.hasDividers,
194
- itemClassName = _this$props.itemClassName,
195
- itemLayoutAlign = _this$props.itemLayoutAlign,
196
- fullWidth = _this$props.fullWidth,
197
- popoverProps = _this$props.popoverProps,
198
- compressed = _this$props.compressed,
199
- rest = _objectWithoutProperties(_this$props, _excluded);
199
+ var _this2 = this,
200
+ _options$this$state$c;
201
+ var _this$props2 = this.props,
202
+ className = _this$props2.className,
203
+ options = _this$props2.options,
204
+ valueOfSelected = _this$props2.valueOfSelected,
205
+ placeholder = _this$props2.placeholder,
206
+ onChange = _this$props2.onChange,
207
+ isOpen = _this$props2.isOpen,
208
+ isInvalid = _this$props2.isInvalid,
209
+ itemClassName = _this$props2.itemClassName,
210
+ fullWidth = _this$props2.fullWidth,
211
+ popoverProps = _this$props2.popoverProps,
212
+ compressed = _this$props2.compressed,
213
+ rest = _objectWithoutProperties(_this$props2, _excluded);
200
214
  var popoverClasses = classNames('euiSuperSelect', popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.className);
201
215
  var button = ___EmotionJSX(EuiSuperSelectControl, _extends({
202
216
  options: options,
@@ -216,58 +230,72 @@ export var EuiSuperSelect = /*#__PURE__*/function (_Component) {
216
230
  var value = option.value,
217
231
  dropdownDisplay = option.dropdownDisplay,
218
232
  inputDisplay = option.inputDisplay,
233
+ disabled = option.disabled,
219
234
  optionRest = _objectWithoutProperties(option, _excluded2);
220
235
  if (value == null) return;
221
236
  return ___EmotionJSX(EuiSuperSelectItem, _extends({
222
- key: index,
237
+ key: index
238
+ /* NOTE: This should rather use "li" to align select-like behavior. But the current
239
+ implementation relies on the interactive and focusable item for the navigation.
240
+ This will require additional refactoring to adjust but we might want to decide first
241
+ if the effort is worth it, considering the unification plans for selection components
242
+ as part of OneSelect (https://github.com/elastic/eui/issues/8808).
243
+ */,
244
+ element: "button",
223
245
  id: String(value),
224
246
  className: itemClassName,
225
- hasDividers: hasDividers,
226
- layoutAlign: itemLayoutAlign,
227
- icon: valueOfSelected === value ? 'check' : 'empty',
247
+ checked: valueOfSelected === value ? 'on' : undefined,
248
+ isSelected: valueOfSelected === value,
249
+ isFocused: _this2.state.currentIndex === index,
250
+ isSingleSelection: true,
251
+ isDisabled: disabled,
252
+ textWrap: "wrap",
228
253
  onClick: function onClick() {
229
254
  return _this2.itemClicked(value);
230
255
  },
231
256
  onKeyDown: _this2.onItemKeyDown,
232
- buttonRef: function buttonRef(node) {
257
+ ref: function ref(node) {
233
258
  return _this2.setItemNode(node, index);
234
259
  },
235
260
  "aria-selected": valueOfSelected === value
236
261
  }, optionRest), dropdownDisplay || inputDisplay);
237
262
  });
238
- return ___EmotionJSX(EuiInputPopover, _extends({
239
- closePopover: this.closePopover,
240
- panelPaddingSize: "none"
241
- }, popoverProps, {
242
- className: popoverClasses,
243
- isOpen: isOpen || this.state.isPopoverOpen,
244
- input: button,
245
- fullWidth: fullWidth,
246
- disableFocusTrap: true // This component handles its own focus manually
247
- }), ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("p", {
248
- id: this.describedById
249
- }, ___EmotionJSX(EuiI18n, {
250
- token: "euiSuperSelect.screenReaderAnnouncement",
251
- default: "You are in a form selector and must select a single option. Use the Up and Down arrow keys to navigate or Escape to close."
252
- }))), ___EmotionJSX(EuiI18n, {
253
- token: "euiSuperSelect.ariaLabel",
254
- default: "Select listbox"
255
- }, function (ariaLabel) {
256
- return ___EmotionJSX("div", {
257
- "aria-label": ariaLabel,
258
- "aria-describedby": _this2.describedById,
259
- css: styles.euiSuperSelect__listbox,
260
- className: "euiSuperSelect__listbox eui-scrollBar",
261
- role: "listbox",
262
- "aria-activedescendant": valueOfSelected != null ? String(valueOfSelected) : undefined,
263
- tabIndex: 0
264
- }, items);
265
- }));
263
+ var ariaActiveDescendant = ((_options$this$state$c = options[this.state.currentIndex]) === null || _options$this$state$c === void 0 ? void 0 : _options$this$state$c.value) != null ? String(options[this.state.currentIndex].value) : undefined;
264
+ return ___EmotionJSX(RenderWithEuiStylesMemoizer, null, function (stylesMemoizer) {
265
+ var styles = stylesMemoizer(euiSuperSelectStyles);
266
+ return ___EmotionJSX(EuiInputPopover, _extends({
267
+ closePopover: _this2.closePopover,
268
+ panelPaddingSize: "none"
269
+ }, popoverProps, {
270
+ className: popoverClasses,
271
+ isOpen: isOpen || _this2.state.isPopoverOpen,
272
+ input: button,
273
+ fullWidth: fullWidth,
274
+ disableFocusTrap: true // This component handles its own focus manually
275
+ }), ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("p", {
276
+ id: _this2.describedById
277
+ }, ___EmotionJSX(EuiI18n, {
278
+ token: "euiSuperSelect.screenReaderAnnouncement",
279
+ default: "You are in a form selector and must select a single option. Use the Up and Down arrow keys to navigate or Escape to close."
280
+ }))), ___EmotionJSX(EuiI18n, {
281
+ token: "euiSuperSelect.ariaLabel",
282
+ default: "Select listbox"
283
+ }, function (ariaLabel) {
284
+ return ___EmotionJSX("div", {
285
+ "aria-label": ariaLabel,
286
+ "aria-describedby": _this2.describedById,
287
+ css: styles.euiSuperSelect__listbox,
288
+ className: "euiSuperSelect__listbox eui-scrollBar",
289
+ role: "listbox",
290
+ "aria-activedescendant": ariaActiveDescendant,
291
+ tabIndex: 0
292
+ }, items);
293
+ }));
294
+ });
266
295
  }
267
296
  }]);
268
297
  }(Component);
269
298
  _defineProperty(EuiSuperSelect, "defaultProps", {
270
- hasDividers: false,
271
299
  fullWidth: false,
272
300
  compressed: false,
273
301
  isInvalid: false,
@@ -7,16 +7,12 @@
7
7
  */
8
8
 
9
9
  import { css } from '@emotion/react';
10
- import { euiFontSize, euiTextTruncate, logicalCSS, logicalCSSWithFallback, logicalTextAlignCSS } from '../../../global_styling';
10
+ import { euiTextTruncate, logicalCSS, logicalCSSWithFallback, logicalTextAlignCSS } from '../../../global_styling';
11
11
  import { euiFormControlStyles, euiFormVariables } from '../form.styles';
12
- export var euiSuperSelectStyles = {
13
- euiSuperSelect__listbox: /*#__PURE__*/css(logicalCSS('max-height', '300px'), " ", logicalCSSWithFallback('overflow-y', 'auto'), " ", logicalCSSWithFallback('overflow-x', 'hidden'), ";;label:euiSuperSelect__listbox;")
14
- };
15
- export var euiSuperSelectItemStyles = function euiSuperSelectItemStyles(euiThemeContext) {
16
- var euiTheme = euiThemeContext.euiTheme;
12
+ export var euiSuperSelectStyles = function euiSuperSelectStyles(_ref) {
13
+ var euiTheme = _ref.euiTheme;
17
14
  return {
18
- euiSuperSelect__item: /*#__PURE__*/css("padding:", euiTheme.size.s, ";", euiFontSize(euiThemeContext, 's'), ";;label:euiSuperSelect__item;"),
19
- hasDividers: /*#__PURE__*/css("&:not(:last-of-type){", logicalCSS('border-bottom', euiTheme.border.thin), ";};label:hasDividers;")
15
+ euiSuperSelect__listbox: /*#__PURE__*/css(logicalCSS('max-height', '300px'), " ", logicalCSSWithFallback('overflow-y', 'auto'), " ", logicalCSSWithFallback('overflow-x', 'hidden'), " padding:", euiTheme.size.s, ";.euiSuperSelect__item:focus{outline:none;};label:euiSuperSelect__listbox;")
20
16
  };
21
17
  };
22
18
  export var euiSuperSelectControlStyles = function euiSuperSelectControlStyles(euiThemeContext) {
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["children", "className", "hasDividers"];
3
+ var _excluded = ["children", "className"];
4
4
  /*
5
5
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
6
6
  * or more contributor license agreements. Licensed under the Elastic License
@@ -9,11 +9,9 @@ var _excluded = ["children", "className", "hasDividers"];
9
9
  * Side Public License, v 1.
10
10
  */
11
11
 
12
- import React from 'react';
12
+ import React, { forwardRef } from 'react';
13
13
  import classNames from 'classnames';
14
- import { useEuiMemoizedStyles } from '../../../services';
15
- import { EuiContextMenuItem } from '../../context_menu';
16
- import { euiSuperSelectItemStyles } from './super_select.styles';
14
+ import { EuiListItemLayout } from '../../list_item_layout';
17
15
 
18
16
  // Type exposed to consumers via API
19
17
 
@@ -21,17 +19,15 @@ import { euiSuperSelectItemStyles } from './super_select.styles';
21
19
  // from consumer props to internal EUI props
22
20
  import { jsx as ___EmotionJSX } from "@emotion/react";
23
21
  // Internal subcomponent util, primarily for easier usage of hooks
24
- export var EuiSuperSelectItem = function EuiSuperSelectItem(_ref) {
22
+ export var EuiSuperSelectItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
25
23
  var children = _ref.children,
26
24
  className = _ref.className,
27
- hasDividers = _ref.hasDividers,
28
25
  rest = _objectWithoutProperties(_ref, _excluded);
29
26
  var classes = classNames('euiSuperSelect__item', className);
30
- var styles = useEuiMemoizedStyles(euiSuperSelectItemStyles);
31
- var cssStyles = [styles.euiSuperSelect__item, hasDividers && styles.hasDividers];
32
- return ___EmotionJSX(EuiContextMenuItem, _extends({
33
- css: cssStyles,
34
- className: classes,
35
- role: "option"
27
+ return ___EmotionJSX(EuiListItemLayout, _extends({
28
+ ref: ref,
29
+ role: "option",
30
+ className: classes
36
31
  }, rest), children);
37
- };
32
+ });
33
+ EuiSuperSelectItem.displayName = 'EuiSuperSelectItem';
@@ -126,7 +126,6 @@ export var EuiKeyPadMenuItem = function EuiKeyPadMenuItem(_ref) {
126
126
  }, label)));
127
127
  return betaBadgeLabel ? ___EmotionJSX(EuiToolTip, _extends({}, betaBadgeTooltipProps, {
128
128
  title: betaBadgeLabel,
129
- content: betaBadgeTooltipContent,
130
- delay: "long"
129
+ content: betaBadgeTooltipContent
131
130
  }), button) : button;
132
131
  };
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["target", "external"];
3
+ var _excluded = ["target", "external", "size"];
4
4
  /*
5
5
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
6
6
  * or more contributor license agreements. Licensed under the Elastic License
@@ -28,6 +28,8 @@ var iconStyle = function iconStyle(_ref) {
28
28
  export var EuiExternalLinkIcon = function EuiExternalLinkIcon(_ref2) {
29
29
  var target = _ref2.target,
30
30
  external = _ref2.external,
31
+ _ref2$size = _ref2.size,
32
+ size = _ref2$size === void 0 ? 's' : _ref2$size,
31
33
  rest = _objectWithoutProperties(_ref2, _excluded);
32
34
  var iconCssStyle = useEuiMemoizedStyles(iconStyle);
33
35
  var showExternalLinkIcon = target === '_blank' && external !== false || external === true;
@@ -36,7 +38,7 @@ export var EuiExternalLinkIcon = function EuiExternalLinkIcon(_ref2) {
36
38
  }
37
39
  return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiIcon, _extends({
38
40
  css: iconCssStyle,
39
- size: "s",
41
+ size: size,
40
42
  type: "external",
41
43
  role: "presentation"
42
44
  }, rest)), target === '_blank' ? ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("span", null, ___EmotionJSX(EuiI18n, {