@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
@@ -1,11 +1,4 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
4
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
5
- import _inherits from "@babel/runtime/helpers/inherits";
6
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
- function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
8
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
9
2
  /*
10
3
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
11
4
  * or more contributor license agreements. Licensed under the Elastic License
@@ -14,99 +7,80 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
14
7
  * Side Public License, v 1.
15
8
  */
16
9
 
17
- /**
18
- * NOTE: We can't test this component because Enzyme doesn't support rendering
19
- * into portals.
20
- */
21
-
22
- import React, { Component } from 'react';
10
+ import { memo, useContext, useEffect, useLayoutEffect, useRef, useState } from 'react';
23
11
  import { createPortal } from 'react-dom';
24
12
  import { EuiNestedThemeContext } from '../../services';
25
13
  import { usePropsWithComponentDefaults } from '../provider/component_defaults';
26
- import { jsx as ___EmotionJSX } from "@emotion/react";
14
+ var usePortalEffect = typeof document === 'undefined' ? useEffect : useLayoutEffect;
27
15
  var INSERT_POSITIONS = ['after', 'before'];
28
16
  var insertPositions = {
29
17
  after: 'afterend',
30
18
  before: 'beforebegin'
31
19
  };
32
- export var EuiPortal = function EuiPortal(props) {
33
- var propsWithDefaults = usePropsWithComponentDefaults('EuiPortal', props);
34
- return ___EmotionJSX(EuiPortalClass, propsWithDefaults);
35
- };
36
- export var EuiPortalClass = /*#__PURE__*/function (_Component) {
37
- function EuiPortalClass(props) {
38
- var _this;
39
- _classCallCheck(this, EuiPortalClass);
40
- _this = _callSuper(this, EuiPortalClass, [props]);
41
- _this.state = {
42
- portalNode: null
43
- };
44
- return _this;
45
- }
46
- _inherits(EuiPortalClass, _Component);
47
- return _createClass(EuiPortalClass, [{
48
- key: "componentDidMount",
49
- value: function componentDidMount() {
50
- var insert = this.props.insert;
51
- var portalNode = document.createElement('div');
52
- portalNode.dataset.euiportal = 'true';
53
- if (insert == null) {
54
- // no insertion defined, append to body
55
- document.body.appendChild(portalNode);
56
- } else {
57
- // inserting before or after an element
58
- var sibling = insert.sibling,
59
- position = insert.position;
60
- sibling.insertAdjacentElement(insertPositions[position], portalNode);
61
- }
62
- this.setThemeColor(portalNode);
63
- this.updatePortalRef(portalNode);
20
+ export var EuiPortal = /*#__PURE__*/memo(function (_props) {
21
+ var props = usePropsWithComponentDefaults('EuiPortal', _props);
22
+ var children = props.children,
23
+ insert = props.insert,
24
+ setPortalRef = props.portalRef;
25
+ var portalRef = useRef(setPortalRef);
26
+ var _useContext = useContext(EuiNestedThemeContext),
27
+ hasDifferentColorFromGlobalTheme = _useContext.hasDifferentColorFromGlobalTheme,
28
+ colorClassName = _useContext.colorClassName;
29
+ var _useState = useState(null),
30
+ _useState2 = _slicedToArray(_useState, 2),
31
+ portalNode = _useState2[0],
32
+ setPortalNode = _useState2[1];
64
33
 
65
- // Update state with portalNode to intentionally trigger component rerender
66
- // and call createPortal with correct root element in render()
67
- this.setState({
68
- portalNode: portalNode
69
- });
70
- }
71
- }, {
72
- key: "componentWillUnmount",
73
- value: function componentWillUnmount() {
74
- var portalNode = this.state.portalNode;
75
- if (portalNode !== null && portalNode !== void 0 && portalNode.parentNode) {
76
- portalNode.parentNode.removeChild(portalNode);
77
- }
78
- this.updatePortalRef(null);
34
+ // Set the inherited color of the portal based on the wrapping EuiThemeProvider
35
+ var setThemeColor = function setThemeColor(portalNode) {
36
+ if (hasDifferentColorFromGlobalTheme && insert == null) {
37
+ portalNode.classList.add(colorClassName);
79
38
  }
39
+ };
40
+ var updatePortalRef = function updatePortalRef(ref) {
41
+ var _portalRef$current;
42
+ (_portalRef$current = portalRef.current) === null || _portalRef$current === void 0 || _portalRef$current.call(portalRef, ref);
43
+ };
44
+ useEffect(function () {
45
+ portalRef.current = setPortalRef;
46
+ }, [setPortalRef]);
80
47
 
81
- // Set the inherited color of the portal based on the wrapping EuiThemeProvider
82
- }, {
83
- key: "setThemeColor",
84
- value: function setThemeColor(portalNode) {
85
- if (this.context) {
86
- var _this$context = this.context,
87
- hasDifferentColorFromGlobalTheme = _this$context.hasDifferentColorFromGlobalTheme,
88
- colorClassName = _this$context.colorClassName;
89
- if (hasDifferentColorFromGlobalTheme && this.props.insert == null) {
90
- portalNode.classList.add(colorClassName);
91
- }
92
- }
93
- }
94
- }, {
95
- key: "updatePortalRef",
96
- value: function updatePortalRef(ref) {
97
- if (this.props.portalRef) {
98
- this.props.portalRef(ref);
99
- }
48
+ /* Uses `useLayoutEffect` on client-side instead of `useEffect` to ensure the portal
49
+ node is created and inserted into the DOM synchronously. This matches the same timing
50
+ as the previous class component `componentDidMount` behavior.
51
+ Using `useEffect` would add an additional render cycle that would break expected
52
+ behavior of e.g. `@hello-pangea/dnd` which handles keyboard focus and doesn't expect
53
+ a rerender. This falls back to `useEffect` for SSR to avoid console errors. `useEffect` will
54
+ be a no-op, same as `componentDidMount` */
55
+ usePortalEffect(function () {
56
+ var node = document.createElement('div');
57
+ node.dataset.euiportal = 'true';
58
+ if (insert == null) {
59
+ // no insertion defined, append to body
60
+ document.body.appendChild(node);
61
+ } else {
62
+ // inserting before or after an element
63
+ var sibling = insert.sibling,
64
+ position = insert.position;
65
+ sibling.insertAdjacentElement(insertPositions[position], node);
100
66
  }
101
- }, {
102
- key: "render",
103
- value: function render() {
104
- var portalNode = this.state.portalNode;
105
- if (!portalNode) {
106
- return null;
67
+ setThemeColor(node);
68
+ updatePortalRef(node);
69
+
70
+ // Update state with portalNode to intentionally trigger component rerender
71
+ // and call createPortal with the correct root element
72
+ setPortalNode(node);
73
+ return function () {
74
+ if (node !== null && node !== void 0 && node.parentNode) {
75
+ node.parentNode.removeChild(node);
107
76
  }
108
- return /*#__PURE__*/createPortal(this.props.children, portalNode);
109
- }
110
- }]);
111
- }(Component);
112
- _defineProperty(EuiPortalClass, "contextType", EuiNestedThemeContext);
77
+ updatePortalRef(null);
78
+ };
79
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- on mount only
80
+ }, []);
81
+ if (!portalNode) {
82
+ return null;
83
+ }
84
+ return /*#__PURE__*/createPortal(children, portalNode);
85
+ });
86
+ EuiPortal.displayName = 'EuiPortal';
@@ -350,7 +350,8 @@ export var FieldValueSelectionFilter = /*#__PURE__*/function (_Component) {
350
350
  noMatchesMessage: config.noOptionsMessage,
351
351
  listProps: {
352
352
  isVirtualized: isOverSearchThreshold || false,
353
- autoFocus: true
353
+ autoFocus: true,
354
+ paddingSize: 's'
354
355
  },
355
356
  onChange: function onChange(options, event, changedOption) {
356
357
  if (changedOption.data) {
@@ -1,10 +1,3 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
4
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
5
- import _inherits from "@babel/runtime/helpers/inherits";
6
- function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
7
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
8
1
  /*
9
2
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
10
3
  * or more contributor license agreements. Licensed under the Elastic License
@@ -13,72 +6,56 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
13
6
  * Side Public License, v 1.
14
7
  */
15
8
 
16
- import React, { Component } from 'react';
9
+ import React from 'react';
17
10
  import { EuiFilterButton } from '../../filter_group';
18
11
  import { Query } from '../query';
19
12
  import { jsx as ___EmotionJSX } from "@emotion/react";
20
- export var FieldValueToggleGroupFilter = /*#__PURE__*/function (_Component) {
21
- function FieldValueToggleGroupFilter() {
22
- _classCallCheck(this, FieldValueToggleGroupFilter);
23
- return _callSuper(this, FieldValueToggleGroupFilter, arguments);
24
- }
25
- _inherits(FieldValueToggleGroupFilter, _Component);
26
- return _createClass(FieldValueToggleGroupFilter, [{
27
- key: "resolveDisplay",
28
- value: function resolveDisplay(config, query, item) {
29
- var clause = query.getSimpleFieldClause(config.field, item.value);
30
- if (clause) {
31
- if (Query.isMust(clause)) {
32
- return {
33
- active: true,
34
- name: item.name
35
- };
36
- }
13
+ export var FieldValueToggleGroupFilter = function FieldValueToggleGroupFilter(props) {
14
+ var resolveDisplay = function resolveDisplay(config, query, item) {
15
+ var clause = query.getSimpleFieldClause(config.field, item.value);
16
+ if (clause) {
17
+ if (Query.isMust(clause)) {
37
18
  return {
38
19
  active: true,
39
- name: item.negatedName ? item.negatedName : "Not ".concat(item.name)
20
+ name: item.name
40
21
  };
41
22
  }
42
23
  return {
43
- active: false,
44
- name: item.name
24
+ active: true,
25
+ name: item.negatedName ? item.negatedName : "Not ".concat(item.name)
45
26
  };
46
27
  }
47
- }, {
48
- key: "valueChanged",
49
- value: function valueChanged(item, active) {
50
- var field = this.props.config.field;
51
- var value = item.value,
52
- operator = item.operator;
53
- var query = active ? this.props.query.removeSimpleFieldClauses(field) : this.props.query.removeSimpleFieldClauses(field).addSimpleFieldValue(field, value, true, operator);
54
- this.props.onChange(query);
55
- }
56
- }, {
57
- key: "render",
58
- value: function render() {
59
- var _this = this;
60
- var _this$props = this.props,
61
- config = _this$props.config,
62
- query = _this$props.query;
63
- return config.items.map(function (item, index) {
64
- var _this$resolveDisplay = _this.resolveDisplay(config, query, item),
65
- active = _this$resolveDisplay.active,
66
- name = _this$resolveDisplay.name;
67
- var onClick = function onClick() {
68
- _this.valueChanged(item, active);
69
- };
70
- var key = "field_value_toggle_filter_item_".concat(index);
71
- var isLastItem = index === config.items.length - 1;
72
- return ___EmotionJSX(EuiFilterButton, {
73
- key: key,
74
- onClick: onClick,
75
- isSelected: active,
76
- hasActiveFilters: active,
77
- "aria-pressed": !!active,
78
- withNext: !isLastItem,
79
- isToggle: true
80
- }, name);
81
- });
82
- }
83
- }]);
84
- }(Component);
28
+ return {
29
+ active: false,
30
+ name: item.name
31
+ };
32
+ };
33
+ var valueChanged = function valueChanged(item, active) {
34
+ var field = props.config.field;
35
+ var value = item.value,
36
+ operator = item.operator;
37
+ var query = active ? props.query.removeSimpleFieldClauses(field) : props.query.removeSimpleFieldClauses(field).addSimpleFieldValue(field, value, true, operator);
38
+ props.onChange(query);
39
+ };
40
+ var config = props.config,
41
+ query = props.query;
42
+ return config.items.map(function (item, index) {
43
+ var _resolveDisplay = resolveDisplay(config, query, item),
44
+ active = _resolveDisplay.active,
45
+ name = _resolveDisplay.name;
46
+ var onClick = function onClick() {
47
+ valueChanged(item, active);
48
+ };
49
+ var key = "field_value_toggle_filter_item_".concat(index);
50
+ var isLastItem = index === config.items.length - 1;
51
+ return ___EmotionJSX(EuiFilterButton, {
52
+ key: key,
53
+ onClick: onClick,
54
+ isSelected: active,
55
+ hasActiveFilters: active,
56
+ "aria-pressed": !!active,
57
+ withNext: !isLastItem,
58
+ isToggle: true
59
+ }, name);
60
+ });
61
+ };
@@ -8,7 +8,7 @@ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
8
8
  import _inherits from "@babel/runtime/helpers/inherits";
9
9
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
10
  var _excluded = ["data"],
11
- _excluded2 = ["label", "isGroupLabel", "checked", "disabled", "prepend", "append", "ref", "key", "searchableLabel", "data", "truncationProps"],
11
+ _excluded2 = ["label", "isGroupLabel", "checked", "disabled", "prepend", "append", "ref", "key", "searchableLabel", "data", "truncationProps", "css"],
12
12
  _excluded3 = ["className", "options", "searchValue", "onOptionClick", "renderOption", "height", "windowProps", "rowHeight", "activeOptionIndex", "makeOptionId", "showIcons", "singleSelection", "visibleOptions", "allowExclusions", "bordered", "paddingSize", "searchable", "onFocusBadge", "listId", "setActiveOptionIndex", "aria-label", "aria-labelledby", "aria-describedby", "role", "isPreFiltered", "isVirtualized", "textWrap", "truncationProps", "autoFocus"];
13
13
  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; }
14
14
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -24,14 +24,15 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
24
24
 
25
25
  import React, { Component, memo } from 'react';
26
26
  import classNames from 'classnames';
27
- import { FixedSizeList, areEqual } from 'react-window';
27
+ import { VariableSizeList, areEqual } from 'react-window';
28
28
  import { RenderWithEuiStylesMemoizer } from '../../../services';
29
29
  import { EuiAutoSizer } from '../../auto_sizer';
30
30
  import { EuiHighlight } from '../../highlight';
31
31
  import { EuiMark } from '../../mark';
32
32
  import { EuiTextTruncate } from '../../text_truncate';
33
33
  import { EuiSelectableListItem } from './selectable_list_item';
34
- import { euiSelectableListStyles } from './selectable_list.styles';
34
+ import { euiSelectableListGroupLabelStyles, euiSelectableListStyles } from './selectable_list.styles';
35
+ import { getListItemSize } from './utils/get_list_item_size';
35
36
 
36
37
  // Consumer Configurable Props via `EuiSelectable.listProps`
37
38
  import { jsx as ___EmotionJSX } from "@emotion/react";
@@ -109,11 +110,17 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
109
110
  ariaSetSize: latestAriaPosIndex
110
111
  };
111
112
  });
112
- _defineProperty(_this, "ListRow", /*#__PURE__*/memo(function (_ref) {
113
+ _defineProperty(_this, "getItemSize", function (index) {
114
+ var _ref = _this.props,
115
+ rowHeight = _ref.rowHeight;
116
+ var option = _this.state.optionArray[index];
117
+ return getListItemSize(index, rowHeight, !!(option !== null && option !== void 0 && option.isGroupLabel));
118
+ });
119
+ _defineProperty(_this, "ListRow", /*#__PURE__*/memo(function (_ref2) {
113
120
  var _option$textWrap;
114
- var data = _ref.data,
115
- index = _ref.index,
116
- style = _ref.style;
121
+ var data = _ref2.data,
122
+ index = _ref2.index,
123
+ style = _ref2.style;
117
124
  var option = data[index];
118
125
  var optionData = option.data,
119
126
  _option = _objectWithoutProperties(option, _excluded);
@@ -128,12 +135,12 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
128
135
  searchableLabel = option.searchableLabel,
129
136
  _data = option.data,
130
137
  _truncationProps = option.truncationProps,
138
+ css = option.css,
131
139
  optionRest = _objectWithoutProperties(option, _excluded2);
132
140
  var _this$props2 = _this.props,
133
141
  activeOptionIndex = _this$props2.activeOptionIndex,
134
142
  allowExclusions = _this$props2.allowExclusions,
135
143
  onFocusBadge = _this$props2.onFocusBadge,
136
- paddingSize = _this$props2.paddingSize,
137
144
  showIcons = _this$props2.showIcons,
138
145
  makeOptionId = _this$props2.makeOptionId,
139
146
  renderOption = _this$props2.renderOption,
@@ -141,13 +148,14 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
141
148
  searchable = _this$props2.searchable,
142
149
  searchValue = _this$props2.searchValue,
143
150
  isPreFiltered = _this$props2.isPreFiltered,
144
- isVirtualized = _this$props2.isVirtualized;
151
+ isVirtualized = _this$props2.isVirtualized,
152
+ singleSelection = _this$props2.singleSelection;
145
153
  if (isGroupLabel) {
146
154
  return ___EmotionJSX(RenderWithEuiStylesMemoizer, null, function (stylesMemoizer) {
147
- var styles = stylesMemoizer(euiSelectableListStyles);
155
+ var styles = stylesMemoizer(euiSelectableListGroupLabelStyles);
148
156
  return ___EmotionJSX("li", _extends({
149
157
  role: "presentation",
150
- css: styles.euiSelectableList__groupLabel,
158
+ css: [styles.groupLabel, css, ";label:EuiSelectableList;"],
151
159
  className: "euiSelectableList__groupLabel",
152
160
  style: style
153
161
  }, optionRest), prepend, label, append);
@@ -189,9 +197,9 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
189
197
  onFocusBadge: onFocusBadge,
190
198
  allowExclusions: allowExclusions,
191
199
  showIcons: showIcons,
192
- paddingSize: paddingSize,
193
200
  searchable: searchable,
194
- textWrap: textWrap
201
+ textWrap: textWrap,
202
+ singleSelection: singleSelection === false ? false : true
195
203
  // @ts-ignore complex
196
204
  }, optionRest), renderOption ? renderOption( // @ts-ignore complex
197
205
  _objectSpread(_objectSpread({}, _option), optionData), searchValue) : highlightSearch ? _this.renderSearchedText(label, truncationProps) : truncationProps ? _this.renderTruncatedText(label, truncationProps) : label);
@@ -214,7 +222,9 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
214
222
  innerElementType: 'ul',
215
223
  itemCount: optionArray.length,
216
224
  itemData: itemData,
217
- itemSize: rowHeight,
225
+ itemSize: _this.getItemSize,
226
+ // Prevents scrollbar jump before VariableSizeList populates the cached size
227
+ estimatedItemSize: rowHeight,
218
228
  'data-skip-axe': 'scrollable-region-focusable'
219
229
  }, windowProps);
220
230
 
@@ -235,19 +245,19 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
235
245
  }
236
246
  return heightIsFull ? ___EmotionJSX(EuiAutoSizer, {
237
247
  onResize: _this.calculateDefaultOptionWidth
238
- }, function (_ref2) {
239
- var width = _ref2.width,
240
- height = _ref2.height;
241
- return ___EmotionJSX(FixedSizeList, _extends({
248
+ }, function (_ref3) {
249
+ var width = _ref3.width,
250
+ height = _ref3.height;
251
+ return ___EmotionJSX(VariableSizeList, _extends({
242
252
  width: width,
243
253
  height: height
244
254
  }, virtualizationProps), _this.ListRow);
245
255
  }) : ___EmotionJSX(EuiAutoSizer, {
246
256
  disableHeight: true,
247
257
  onResize: _this.calculateDefaultOptionWidth
248
- }, function (_ref3) {
249
- var width = _ref3.width;
250
- return ___EmotionJSX(FixedSizeList, _extends({
258
+ }, function (_ref4) {
259
+ var width = _ref4.width;
260
+ return ___EmotionJSX(VariableSizeList, _extends({
251
261
  width: width,
252
262
  height: calculatedHeight
253
263
  }, virtualizationProps), _this.ListRow);
@@ -264,8 +274,8 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
264
274
  // each individual item. This logic tries to offset this performance hit by
265
275
  // guesstimating a default width for each option
266
276
  _defineProperty(_this, "focusBadgeOffset", 0);
267
- _defineProperty(_this, "calculateDefaultOptionWidth", function (_ref4) {
268
- var containerWidth = _ref4.width;
277
+ _defineProperty(_this, "calculateDefaultOptionWidth", function (_ref5) {
278
+ var containerWidth = _ref5.width;
269
279
  var _this$props4 = _this.props,
270
280
  truncationProps = _this$props4.truncationProps,
271
281
  searchable = _this$props4.searchable,
@@ -274,9 +284,9 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
274
284
  // If it's not likely we'll need to use EuiTextTruncate, don't set state/rerender on every panel resize
275
285
  var mayTruncate = searchable || truncationProps;
276
286
  if (!mayTruncate) return;
277
- var paddingOffset = _this.props.paddingSize === 'none' ? 0 : 24; // Defaults to 's'
278
- var checkedIconOffset = _this.props.showIcons === false ? 0 : 28; // Defaults to true
279
- _this.focusBadgeOffset = _this.props.onFocusBadge === false ? 0 : 46;
287
+ var paddingOffset = 24; // 2 * list item padding (8px) + 2 * text padding (4px)
288
+ var checkedIconOffset = _this.props.showIcons === false ? 0 : 24; // icon (16px) + gap (8px)
289
+ _this.focusBadgeOffset = !_this.props.onFocusBadge ? 0 : 28; // badge (20px) + gap (8px)
280
290
 
281
291
  // Wait a tick for the listbox ref to update before proceeding
282
292
  _this.animationFrameId = requestAnimationFrame(function () {
@@ -356,8 +366,8 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
356
366
  options = _this$props5.options,
357
367
  _this$props5$visibleO = _this$props5.visibleOptions,
358
368
  visibleOptions = _this$props5$visibleO === void 0 ? options : _this$props5$visibleO;
359
- _this.props.setActiveOptionIndex(visibleOptions.findIndex(function (_ref5) {
360
- var label = _ref5.label;
369
+ _this.props.setActiveOptionIndex(visibleOptions.findIndex(function (_ref6) {
370
+ var label = _ref6.label;
361
371
  return label === option.label;
362
372
  }), function () {
363
373
  if (option.checked === 'on' && allowExclusions) {
@@ -450,11 +460,12 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
450
460
  paddingSize = _this$props9.paddingSize,
451
461
  textWrap = _this$props9.textWrap,
452
462
  onFocusBadge = _this$props9.onFocusBadge,
453
- searchable = _this$props9.searchable;
463
+ searchable = _this$props9.searchable,
464
+ singleSelection = _this$props9.singleSelection;
454
465
 
455
466
  // using shouldComponentUpdate to determine needed rerender before actual rerender
456
467
  // without needing state updates or lagging behind on updates
457
- if (nextProps.allowExclusions !== allowExclusions || nextProps.showIcons !== showIcons || nextProps.paddingSize !== paddingSize || nextProps.textWrap !== textWrap || nextProps.onFocusBadge !== onFocusBadge || nextProps.searchable !== searchable) {
468
+ if (nextProps.allowExclusions !== allowExclusions || nextProps.showIcons !== showIcons || nextProps.paddingSize !== paddingSize || nextProps.textWrap !== textWrap || nextProps.onFocusBadge !== onFocusBadge || nextProps.searchable !== searchable || nextProps.singleSelection !== singleSelection) {
458
469
  this.listRowRerender += 1;
459
470
  }
460
471
  return true;
@@ -472,7 +483,8 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
472
483
  paddingSize = _this$props10.paddingSize,
473
484
  textWrap = _this$props10.textWrap,
474
485
  onFocusBadge = _this$props10.onFocusBadge,
475
- searchable = _this$props10.searchable;
486
+ searchable = _this$props10.searchable,
487
+ singleSelection = _this$props10.singleSelection;
476
488
  if (prevProps.activeOptionIndex !== activeOptionIndex) {
477
489
  var makeOptionId = this.props.makeOptionId;
478
490
  if (this.listBoxRef && this.props.searchable !== true) {
@@ -481,6 +493,8 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
481
493
  if (typeof activeOptionIndex !== 'undefined') {
482
494
  if (isVirtualized) {
483
495
  var _this$listRef;
496
+ // NOTE: Maybe we might want to consider changing scroll position to
497
+ // 'center' to not have items stick to the edges of the list
484
498
  (_this$listRef = this.listRef) === null || _this$listRef === void 0 || _this$listRef.scrollToItem(activeOptionIndex, 'auto');
485
499
  } else {
486
500
  var _this$listBoxRef;
@@ -505,7 +519,7 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
505
519
  }, this.calculateAriaSetAttrs(optionArray)));
506
520
  } else if (isVirtualized) {
507
521
  // ensure that ListRow updates based on item props
508
- if (prevProps.allowExclusions !== allowExclusions || prevProps.showIcons !== showIcons || prevProps.paddingSize !== paddingSize || prevProps.textWrap !== textWrap || prevProps.onFocusBadge !== onFocusBadge || prevProps.searchable !== searchable) {
522
+ if (prevProps.allowExclusions !== allowExclusions || prevProps.showIcons !== showIcons || prevProps.paddingSize !== paddingSize || prevProps.textWrap !== textWrap || prevProps.onFocusBadge !== onFocusBadge || prevProps.searchable !== searchable || prevProps.singleSelection !== singleSelection) {
509
523
  this.setState({
510
524
  itemData: _objectSpread({}, optionArray)
511
525
  });
@@ -551,7 +565,7 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
551
565
  var classes = classNames('euiSelectableList', className);
552
566
  return ___EmotionJSX(RenderWithEuiStylesMemoizer, null, function (stylesMemoizer) {
553
567
  var styles = stylesMemoizer(euiSelectableListStyles);
554
- var cssStyles = [styles.euiSelectableList, heightIsFull && styles.fullHeight, bordered && styles.bordered];
568
+ var cssStyles = [styles.euiSelectableList, heightIsFull && styles.fullHeight, bordered && styles.bordered, paddingSize === 's' && styles.paddingSize.s];
555
569
  var listClasses = classNames('euiSelectableList__list', styles.euiSelectableList__list);
556
570
  return ___EmotionJSX("div", _extends({
557
571
  css: cssStyles,
@@ -577,6 +591,7 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
577
591
  }(Component);
578
592
  _defineProperty(EuiSelectableList, "defaultProps", {
579
593
  rowHeight: 32,
594
+ paddingSize: 'none',
580
595
  searchValue: '',
581
596
  isVirtualized: true
582
597
  });
@@ -11,9 +11,10 @@ import { css } from '@emotion/react';
11
11
  // .euiSelectableList__list requires a static vanilla className
12
12
  // as it's passed down to react-window's virtualization library
13
13
  import { css as classNameCss } from '@emotion/css';
14
+ import { mathWithUnits } from '@elastic/eui-theme-common';
14
15
  import { euiFocusRing, euiYScrollWithShadows, logicalCSS } from '../../../global_styling';
15
16
  import { euiTitle } from '../../title/title.styles';
16
- import { euiSelectableListItemVariables } from './selectable_list_item.styles';
17
+ import { euiListItemVariables } from '../../list_item_layout/_list_item_layout.styles';
17
18
  var _ref = process.env.NODE_ENV === "production" ? {
18
19
  name: "1giu8j5-fullHeight",
19
20
  styles: "flex-grow:1;label:fullHeight;"
@@ -24,12 +25,26 @@ var _ref = process.env.NODE_ENV === "production" ? {
24
25
  };
25
26
  export var euiSelectableListStyles = function euiSelectableListStyles(euiThemeContext) {
26
27
  var euiTheme = euiThemeContext.euiTheme;
27
- var itemVars = euiSelectableListItemVariables(euiThemeContext);
28
28
  return {
29
29
  euiSelectableList: /*#__PURE__*/css("&:has(:focus-visible){", euiFocusRing(euiThemeContext, 'outset'), ";};label:euiSelectableList;"),
30
30
  fullHeight: _ref,
31
31
  bordered: /*#__PURE__*/css("overflow:hidden;border:", euiTheme.border.thin, ";border-radius:", euiTheme.border.radius.medium, ";;label:bordered;"),
32
- euiSelectableList__list: /*#__PURE__*/classNameCss(euiYScrollWithShadows(euiThemeContext), " &:focus,&>ul:focus{outline:none;};label:euiSelectableList__list;"),
33
- euiSelectableList__groupLabel: /*#__PURE__*/css(euiTitle(euiThemeContext, 'xxxs'), " display:flex;align-items:center;", logicalCSS('border-bottom', itemVars.border), " ", logicalCSS('padding-vertical', itemVars.paddingVertical), " ", logicalCSS('padding-horizontal', itemVars.paddingHorizontal), ";;label:euiSelectableList__groupLabel;")
32
+ paddingSize: {
33
+ s: /*#__PURE__*/css("padding:", euiTheme.size.s, ";;label:s;")
34
+ },
35
+ euiSelectableList__list: /*#__PURE__*/classNameCss(euiYScrollWithShadows(euiThemeContext, {
36
+ hasAnimatedOverflowShadow: true
37
+ }), " &:focus,&>ul:focus{outline:none;};label:euiSelectableList__list;")
38
+ };
39
+ };
40
+ export var euiSelectableListGroupLabelStyles = function euiSelectableListGroupLabelStyles(euiThemeContext) {
41
+ var euiTheme = euiThemeContext.euiTheme;
42
+ var itemVars = euiListItemVariables(euiThemeContext);
43
+ var spacingVertical = euiTheme.size.s;
44
+ var borderColor = euiTheme.components.selectableListItemBorderColor;
45
+ return {
46
+ groupLabel: /*#__PURE__*/css(euiTitle(euiThemeContext, 'xxxs'), " position:relative;display:flex;align-items:center;gap:", itemVars.spacing.horizontal, ";", logicalCSS('padding-horizontal', itemVars.textPadding.horizontal), " ", logicalCSS('padding-vertical', spacingVertical), " &:not(:first-child){", logicalCSS('padding-top', mathWithUnits([spacingVertical], function (a) {
47
+ return a * 3;
48
+ })), " &::before{content:'';position:absolute;inset:0;inset-block-start:", spacingVertical, ";", logicalCSS('border-top', "".concat(euiTheme.border.width.thin, " solid ").concat(borderColor)), ";}};label:groupLabel;")
34
49
  };
35
50
  };