@elastic/eui 115.0.0 → 116.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  2. package/es/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  3. package/es/components/combo_box/combo_box.a11y.js +5 -5
  4. package/es/components/combo_box/combo_box.js +61 -53
  5. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +147 -84
  6. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +8 -7
  7. package/es/components/context_menu/context_menu.js +19 -21
  8. package/es/components/context_menu/context_menu.styles.js +5 -2
  9. package/es/components/context_menu/context_menu_item.js +69 -58
  10. package/es/components/context_menu/context_menu_item.styles.js +14 -28
  11. package/es/components/context_menu/context_menu_panel.js +37 -21
  12. package/es/components/context_menu/context_menu_panel.styles.js +7 -2
  13. package/es/components/context_menu/context_menu_panel_title.js +124 -0
  14. package/es/components/context_menu/context_menu_panel_title.styles.js +20 -0
  15. package/es/components/context_menu/index.js +2 -1
  16. package/es/components/datagrid/body/cell/data_grid_cell.js +35 -29
  17. package/es/components/datagrid/body/data_grid_body.js +23 -17
  18. package/es/components/datagrid/body/data_grid_body_custom.js +23 -17
  19. package/es/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  20. package/es/components/datagrid/body/header/column_actions.js +1 -2
  21. package/es/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  22. package/es/components/datagrid/controls/column_sorting.js +23 -17
  23. package/es/components/datagrid/utils/in_memory.js +23 -17
  24. package/es/components/filter_group/filter_group.a11y.js +8 -2
  25. package/es/components/flyout/flyout_menu.js +1 -4
  26. package/es/components/form/checkbox/checkbox.js +6 -6
  27. package/es/components/form/checkbox/checkbox.styles.js +1 -22
  28. package/es/components/form/checkbox/checkbox_control.js +78 -0
  29. package/es/components/form/checkbox/checkbox_control.styles.js +40 -0
  30. package/es/components/form/checkbox/index.js +1 -0
  31. package/es/components/form/form.styles.js +2 -1
  32. package/es/components/form/radio/radio.styles.js +1 -1
  33. package/es/components/form/super_select/super_select.js +118 -99
  34. package/es/components/form/super_select/super_select.styles.js +4 -8
  35. package/es/components/form/super_select/super_select_item.js +10 -18
  36. package/es/components/link/external_link_icon.js +4 -2
  37. package/es/components/list_group/list_group.js +20 -34
  38. package/es/components/list_group/list_group.styles.js +2 -16
  39. package/es/components/list_group/list_group_item.js +75 -86
  40. package/es/components/list_group/list_group_item.styles.js +17 -61
  41. package/es/components/list_group/list_group_item_extra_action.styles.js +6 -6
  42. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  43. package/es/components/list_item_layout/_list_item_layout.js +692 -0
  44. package/es/components/list_item_layout/_list_item_layout.styles.js +93 -0
  45. package/es/components/list_item_layout/index.js +9 -0
  46. package/es/components/search_bar/filters/field_value_selection_filter.js +2 -1
  47. package/es/components/selectable/selectable.js +1 -0
  48. package/es/components/selectable/selectable_list/selectable_list.js +52 -36
  49. package/es/components/selectable/selectable_list/selectable_list.styles.js +19 -4
  50. package/es/components/selectable/selectable_list/selectable_list_item.js +45 -152
  51. package/es/components/selectable/selectable_list/utils/get_list_item_size.js +17 -0
  52. package/es/components/selectable/selectable_search/selectable_search.js +4 -1
  53. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  54. package/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  55. package/es/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  56. package/es/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  57. package/es/global_styling/mixins/_helpers.js +32 -11
  58. package/eui.d.ts +10397 -8051
  59. package/i18ntokens.json +2607 -2589
  60. package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  61. package/lib/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  62. package/lib/components/combo_box/combo_box.a11y.js +5 -5
  63. package/lib/components/combo_box/combo_box.js +61 -53
  64. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -82
  65. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  66. package/lib/components/context_menu/context_menu.js +20 -22
  67. package/lib/components/context_menu/context_menu.styles.js +4 -1
  68. package/lib/components/context_menu/context_menu_item.js +70 -59
  69. package/lib/components/context_menu/context_menu_item.styles.js +13 -27
  70. package/lib/components/context_menu/context_menu_panel.js +37 -21
  71. package/lib/components/context_menu/context_menu_panel.styles.js +7 -2
  72. package/lib/components/context_menu/context_menu_panel_title.js +130 -0
  73. package/lib/components/context_menu/context_menu_panel_title.styles.js +26 -0
  74. package/lib/components/context_menu/index.js +8 -1
  75. package/lib/components/datagrid/body/cell/data_grid_cell.js +35 -29
  76. package/lib/components/datagrid/body/data_grid_body.js +23 -17
  77. package/lib/components/datagrid/body/data_grid_body_custom.js +23 -17
  78. package/lib/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  79. package/lib/components/datagrid/body/header/column_actions.js +1 -2
  80. package/lib/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  81. package/lib/components/datagrid/controls/column_sorting.js +23 -17
  82. package/lib/components/datagrid/utils/in_memory.js +23 -17
  83. package/lib/components/filter_group/filter_group.a11y.js +8 -2
  84. package/lib/components/flyout/flyout_menu.js +1 -4
  85. package/lib/components/form/checkbox/checkbox.js +6 -6
  86. package/lib/components/form/checkbox/checkbox.styles.js +1 -22
  87. package/lib/components/form/checkbox/checkbox_control.js +84 -0
  88. package/lib/components/form/checkbox/checkbox_control.styles.js +44 -0
  89. package/lib/components/form/checkbox/index.js +7 -0
  90. package/lib/components/form/form.styles.js +2 -1
  91. package/lib/components/form/radio/radio.styles.js +1 -1
  92. package/lib/components/form/super_select/super_select.js +116 -97
  93. package/lib/components/form/super_select/super_select.styles.js +4 -8
  94. package/lib/components/form/super_select/super_select_item.js +13 -18
  95. package/lib/components/link/external_link_icon.js +4 -2
  96. package/lib/components/list_group/list_group.js +21 -35
  97. package/lib/components/list_group/list_group.styles.js +2 -16
  98. package/lib/components/list_group/list_group_item.js +75 -86
  99. package/lib/components/list_group/list_group_item.styles.js +17 -61
  100. package/lib/components/list_group/list_group_item_extra_action.styles.js +5 -5
  101. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  102. package/lib/components/list_item_layout/_list_item_layout.js +699 -0
  103. package/lib/components/list_item_layout/_list_item_layout.styles.js +97 -0
  104. package/lib/components/list_item_layout/index.js +12 -0
  105. package/lib/components/search_bar/filters/field_value_selection_filter.js +2 -1
  106. package/lib/components/selectable/selectable.js +1 -0
  107. package/lib/components/selectable/selectable_list/selectable_list.js +50 -34
  108. package/lib/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  109. package/lib/components/selectable/selectable_list/selectable_list_item.js +44 -152
  110. package/lib/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  111. package/lib/components/selectable/selectable_search/selectable_search.js +4 -1
  112. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  113. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  114. package/lib/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  115. package/lib/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  116. package/lib/global_styling/mixins/_helpers.js +33 -12
  117. package/optimize/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -4
  118. package/optimize/es/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  119. package/optimize/es/components/combo_box/combo_box.a11y.js +5 -5
  120. package/optimize/es/components/combo_box/combo_box.js +60 -52
  121. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -83
  122. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +8 -7
  123. package/optimize/es/components/context_menu/context_menu.js +18 -13
  124. package/optimize/es/components/context_menu/context_menu.styles.js +5 -2
  125. package/optimize/es/components/context_menu/context_menu_item.js +55 -53
  126. package/optimize/es/components/context_menu/context_menu_item.styles.js +14 -28
  127. package/optimize/es/components/context_menu/context_menu_panel.js +36 -17
  128. package/optimize/es/components/context_menu/context_menu_panel.styles.js +7 -2
  129. package/optimize/es/components/context_menu/context_menu_panel_title.js +53 -0
  130. package/optimize/es/components/context_menu/context_menu_panel_title.styles.js +20 -0
  131. package/optimize/es/components/context_menu/index.js +2 -1
  132. package/optimize/es/components/datagrid/body/header/column_actions.js +1 -2
  133. package/optimize/es/components/filter_group/filter_group.a11y.js +8 -2
  134. package/optimize/es/components/flyout/flyout_menu.js +1 -4
  135. package/optimize/es/components/form/checkbox/checkbox.js +6 -6
  136. package/optimize/es/components/form/checkbox/checkbox.styles.js +1 -22
  137. package/optimize/es/components/form/checkbox/checkbox_control.js +48 -0
  138. package/optimize/es/components/form/checkbox/checkbox_control.styles.js +40 -0
  139. package/optimize/es/components/form/checkbox/index.js +1 -0
  140. package/optimize/es/components/form/form.styles.js +2 -1
  141. package/optimize/es/components/form/radio/radio.styles.js +1 -1
  142. package/optimize/es/components/form/super_select/super_select.js +118 -90
  143. package/optimize/es/components/form/super_select/super_select.styles.js +4 -8
  144. package/optimize/es/components/form/super_select/super_select_item.js +10 -14
  145. package/optimize/es/components/link/external_link_icon.js +4 -2
  146. package/optimize/es/components/list_group/list_group.js +7 -14
  147. package/optimize/es/components/list_group/list_group.styles.js +2 -16
  148. package/optimize/es/components/list_group/list_group_item.js +62 -79
  149. package/optimize/es/components/list_group/list_group_item.styles.js +17 -61
  150. package/optimize/es/components/list_group/list_group_item_extra_action.styles.js +6 -6
  151. package/optimize/es/components/list_item_layout/_list_item_layout.js +353 -0
  152. package/optimize/es/components/list_item_layout/_list_item_layout.styles.js +93 -0
  153. package/optimize/es/components/list_item_layout/index.js +9 -0
  154. package/optimize/es/components/search_bar/filters/field_value_selection_filter.js +2 -1
  155. package/optimize/es/components/selectable/selectable_list/selectable_list.js +48 -33
  156. package/optimize/es/components/selectable/selectable_list/selectable_list.styles.js +19 -4
  157. package/optimize/es/components/selectable/selectable_list/selectable_list_item.js +41 -143
  158. package/optimize/es/components/selectable/selectable_list/utils/get_list_item_size.js +17 -0
  159. package/optimize/es/components/selectable/selectable_search/selectable_search.js +4 -1
  160. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  161. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  162. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  163. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  164. package/optimize/es/global_styling/mixins/_helpers.js +32 -11
  165. package/optimize/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -4
  166. package/optimize/lib/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  167. package/optimize/lib/components/combo_box/combo_box.a11y.js +5 -5
  168. package/optimize/lib/components/combo_box/combo_box.js +60 -52
  169. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +143 -81
  170. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  171. package/optimize/lib/components/context_menu/context_menu.js +19 -14
  172. package/optimize/lib/components/context_menu/context_menu.styles.js +4 -1
  173. package/optimize/lib/components/context_menu/context_menu_item.js +56 -54
  174. package/optimize/lib/components/context_menu/context_menu_item.styles.js +13 -27
  175. package/optimize/lib/components/context_menu/context_menu_panel.js +36 -17
  176. package/optimize/lib/components/context_menu/context_menu_panel.styles.js +7 -2
  177. package/optimize/lib/components/context_menu/context_menu_panel_title.js +59 -0
  178. package/optimize/lib/components/context_menu/context_menu_panel_title.styles.js +26 -0
  179. package/optimize/lib/components/context_menu/index.js +8 -1
  180. package/optimize/lib/components/datagrid/body/header/column_actions.js +1 -2
  181. package/optimize/lib/components/filter_group/filter_group.a11y.js +8 -2
  182. package/optimize/lib/components/flyout/flyout_menu.js +1 -4
  183. package/optimize/lib/components/form/checkbox/checkbox.js +6 -6
  184. package/optimize/lib/components/form/checkbox/checkbox.styles.js +1 -22
  185. package/optimize/lib/components/form/checkbox/checkbox_control.js +54 -0
  186. package/optimize/lib/components/form/checkbox/checkbox_control.styles.js +44 -0
  187. package/optimize/lib/components/form/checkbox/index.js +7 -0
  188. package/optimize/lib/components/form/form.styles.js +2 -1
  189. package/optimize/lib/components/form/radio/radio.styles.js +1 -1
  190. package/optimize/lib/components/form/super_select/super_select.js +116 -88
  191. package/optimize/lib/components/form/super_select/super_select.styles.js +4 -8
  192. package/optimize/lib/components/form/super_select/super_select_item.js +13 -14
  193. package/optimize/lib/components/link/external_link_icon.js +4 -2
  194. package/optimize/lib/components/list_group/list_group.js +8 -15
  195. package/optimize/lib/components/list_group/list_group.styles.js +2 -16
  196. package/optimize/lib/components/list_group/list_group_item.js +62 -79
  197. package/optimize/lib/components/list_group/list_group_item.styles.js +17 -61
  198. package/optimize/lib/components/list_group/list_group_item_extra_action.styles.js +5 -5
  199. package/optimize/lib/components/list_item_layout/_list_item_layout.js +361 -0
  200. package/optimize/lib/components/list_item_layout/_list_item_layout.styles.js +97 -0
  201. package/optimize/lib/components/list_item_layout/index.js +12 -0
  202. package/optimize/lib/components/search_bar/filters/field_value_selection_filter.js +2 -1
  203. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +46 -31
  204. package/optimize/lib/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  205. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.js +41 -143
  206. package/optimize/lib/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  207. package/optimize/lib/components/selectable/selectable_search/selectable_search.js +4 -1
  208. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  209. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  210. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  211. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  212. package/optimize/lib/global_styling/mixins/_helpers.js +33 -12
  213. package/package.json +4 -4
  214. package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  215. package/test-env/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  216. package/test-env/components/combo_box/combo_box.a11y.js +5 -5
  217. package/test-env/components/combo_box/combo_box.js +61 -53
  218. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -82
  219. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  220. package/test-env/components/context_menu/context_menu.js +20 -22
  221. package/test-env/components/context_menu/context_menu.styles.js +4 -1
  222. package/test-env/components/context_menu/context_menu_item.js +67 -59
  223. package/test-env/components/context_menu/context_menu_item.styles.js +13 -27
  224. package/test-env/components/context_menu/context_menu_panel.js +37 -21
  225. package/test-env/components/context_menu/context_menu_panel.styles.js +7 -2
  226. package/test-env/components/context_menu/context_menu_panel_title.js +129 -0
  227. package/test-env/components/context_menu/context_menu_panel_title.styles.js +26 -0
  228. package/test-env/components/context_menu/index.js +8 -1
  229. package/test-env/components/datagrid/body/cell/data_grid_cell.js +35 -29
  230. package/test-env/components/datagrid/body/data_grid_body.js +23 -17
  231. package/test-env/components/datagrid/body/data_grid_body_custom.js +23 -17
  232. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  233. package/test-env/components/datagrid/body/header/column_actions.js +1 -2
  234. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  235. package/test-env/components/datagrid/controls/column_sorting.js +23 -17
  236. package/test-env/components/datagrid/utils/in_memory.js +23 -17
  237. package/test-env/components/filter_group/filter_group.a11y.js +8 -2
  238. package/test-env/components/flyout/flyout_menu.js +1 -4
  239. package/test-env/components/form/checkbox/checkbox.js +6 -6
  240. package/test-env/components/form/checkbox/checkbox.styles.js +1 -22
  241. package/test-env/components/form/checkbox/checkbox_control.js +83 -0
  242. package/test-env/components/form/checkbox/checkbox_control.styles.js +44 -0
  243. package/test-env/components/form/checkbox/index.js +7 -0
  244. package/test-env/components/form/form.styles.js +2 -1
  245. package/test-env/components/form/radio/radio.styles.js +1 -1
  246. package/test-env/components/form/super_select/super_select.js +116 -97
  247. package/test-env/components/form/super_select/super_select.styles.js +4 -8
  248. package/test-env/components/form/super_select/super_select_item.js +13 -18
  249. package/test-env/components/link/external_link_icon.js +4 -2
  250. package/test-env/components/list_group/list_group.js +21 -35
  251. package/test-env/components/list_group/list_group.styles.js +2 -16
  252. package/test-env/components/list_group/list_group_item.js +75 -86
  253. package/test-env/components/list_group/list_group_item.styles.js +17 -61
  254. package/test-env/components/list_group/list_group_item_extra_action.styles.js +5 -5
  255. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  256. package/test-env/components/list_item_layout/_list_item_layout.js +691 -0
  257. package/test-env/components/list_item_layout/_list_item_layout.styles.js +97 -0
  258. package/test-env/components/list_item_layout/index.js +12 -0
  259. package/test-env/components/search_bar/filters/field_value_selection_filter.js +2 -1
  260. package/test-env/components/selectable/selectable.js +1 -0
  261. package/test-env/components/selectable/selectable_list/selectable_list.js +50 -34
  262. package/test-env/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  263. package/test-env/components/selectable/selectable_list/selectable_list_item.js +42 -147
  264. package/test-env/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  265. package/test-env/components/selectable/selectable_search/selectable_search.js +4 -1
  266. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  267. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  268. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  269. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  270. package/test-env/global_styling/mixins/_helpers.js +33 -12
  271. package/es/components/selectable/selectable_list/selectable_list_item.styles.js +0 -55
  272. package/lib/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
  273. package/optimize/es/components/selectable/selectable_list/selectable_list_item.styles.js +0 -55
  274. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
  275. package/test-env/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
@@ -25,9 +25,10 @@ var _mark = require("../../mark");
25
25
  var _text_truncate = require("../../text_truncate");
26
26
  var _selectable_list_item = require("./selectable_list_item");
27
27
  var _selectable_list = require("./selectable_list.styles");
28
+ var _get_list_item_size = require("./utils/get_list_item_size");
28
29
  var _react2 = require("@emotion/react");
29
30
  var _excluded = ["data"],
30
- _excluded2 = ["label", "isGroupLabel", "checked", "disabled", "prepend", "append", "ref", "key", "searchableLabel", "data", "truncationProps"],
31
+ _excluded2 = ["label", "isGroupLabel", "checked", "disabled", "prepend", "append", "ref", "key", "searchableLabel", "data", "truncationProps", "css"],
31
32
  _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"];
32
33
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
33
34
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -115,11 +116,17 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
115
116
  ariaSetSize: latestAriaPosIndex
116
117
  };
117
118
  });
118
- (0, _defineProperty2.default)(_this, "ListRow", /*#__PURE__*/(0, _react.memo)(function (_ref) {
119
+ (0, _defineProperty2.default)(_this, "getItemSize", function (index) {
120
+ var _ref = _this.props,
121
+ rowHeight = _ref.rowHeight;
122
+ var option = _this.state.optionArray[index];
123
+ return (0, _get_list_item_size.getListItemSize)(index, rowHeight, !!(option !== null && option !== void 0 && option.isGroupLabel));
124
+ });
125
+ (0, _defineProperty2.default)(_this, "ListRow", /*#__PURE__*/(0, _react.memo)(function (_ref2) {
119
126
  var _option$textWrap;
120
- var data = _ref.data,
121
- index = _ref.index,
122
- style = _ref.style;
127
+ var data = _ref2.data,
128
+ index = _ref2.index,
129
+ style = _ref2.style;
123
130
  var option = data[index];
124
131
  var optionData = option.data,
125
132
  _option = (0, _objectWithoutProperties2.default)(option, _excluded);
@@ -134,12 +141,12 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
134
141
  searchableLabel = option.searchableLabel,
135
142
  _data = option.data,
136
143
  _truncationProps = option.truncationProps,
144
+ css = option.css,
137
145
  optionRest = (0, _objectWithoutProperties2.default)(option, _excluded2);
138
146
  var _this$props2 = _this.props,
139
147
  activeOptionIndex = _this$props2.activeOptionIndex,
140
148
  allowExclusions = _this$props2.allowExclusions,
141
149
  onFocusBadge = _this$props2.onFocusBadge,
142
- paddingSize = _this$props2.paddingSize,
143
150
  showIcons = _this$props2.showIcons,
144
151
  makeOptionId = _this$props2.makeOptionId,
145
152
  renderOption = _this$props2.renderOption,
@@ -147,13 +154,14 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
147
154
  searchable = _this$props2.searchable,
148
155
  searchValue = _this$props2.searchValue,
149
156
  isPreFiltered = _this$props2.isPreFiltered,
150
- isVirtualized = _this$props2.isVirtualized;
157
+ isVirtualized = _this$props2.isVirtualized,
158
+ singleSelection = _this$props2.singleSelection;
151
159
  if (isGroupLabel) {
152
160
  return (0, _react2.jsx)(_services.RenderWithEuiStylesMemoizer, null, function (stylesMemoizer) {
153
- var styles = stylesMemoizer(_selectable_list.euiSelectableListStyles);
161
+ var styles = stylesMemoizer(_selectable_list.euiSelectableListGroupLabelStyles);
154
162
  return (0, _react2.jsx)("li", (0, _extends2.default)({
155
163
  role: "presentation",
156
- css: styles.euiSelectableList__groupLabel,
164
+ css: [styles.groupLabel, css, ";label:EuiSelectableList;"],
157
165
  className: "euiSelectableList__groupLabel",
158
166
  style: style
159
167
  }, optionRest), prepend, label, append);
@@ -195,9 +203,9 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
195
203
  onFocusBadge: onFocusBadge,
196
204
  allowExclusions: allowExclusions,
197
205
  showIcons: showIcons,
198
- paddingSize: paddingSize,
199
206
  searchable: searchable,
200
- textWrap: textWrap
207
+ textWrap: textWrap,
208
+ singleSelection: singleSelection === false ? false : true
201
209
  // @ts-ignore complex
202
210
  }, optionRest), renderOption ? renderOption( // @ts-ignore complex
203
211
  _objectSpread(_objectSpread({}, _option), optionData), searchValue) : highlightSearch ? _this.renderSearchedText(label, truncationProps) : truncationProps ? _this.renderTruncatedText(label, truncationProps) : label);
@@ -220,7 +228,9 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
220
228
  innerElementType: 'ul',
221
229
  itemCount: optionArray.length,
222
230
  itemData: itemData,
223
- itemSize: rowHeight,
231
+ itemSize: _this.getItemSize,
232
+ // Prevents scrollbar jump before VariableSizeList populates the cached size
233
+ estimatedItemSize: rowHeight,
224
234
  'data-skip-axe': 'scrollable-region-focusable'
225
235
  }, windowProps);
226
236
 
@@ -241,19 +251,19 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
241
251
  }
242
252
  return heightIsFull ? (0, _react2.jsx)(_auto_sizer.EuiAutoSizer, {
243
253
  onResize: _this.calculateDefaultOptionWidth
244
- }, function (_ref2) {
245
- var width = _ref2.width,
246
- height = _ref2.height;
247
- return (0, _react2.jsx)(_reactWindow.FixedSizeList, (0, _extends2.default)({
254
+ }, function (_ref3) {
255
+ var width = _ref3.width,
256
+ height = _ref3.height;
257
+ return (0, _react2.jsx)(_reactWindow.VariableSizeList, (0, _extends2.default)({
248
258
  width: width,
249
259
  height: height
250
260
  }, virtualizationProps), _this.ListRow);
251
261
  }) : (0, _react2.jsx)(_auto_sizer.EuiAutoSizer, {
252
262
  disableHeight: true,
253
263
  onResize: _this.calculateDefaultOptionWidth
254
- }, function (_ref3) {
255
- var width = _ref3.width;
256
- return (0, _react2.jsx)(_reactWindow.FixedSizeList, (0, _extends2.default)({
264
+ }, function (_ref4) {
265
+ var width = _ref4.width;
266
+ return (0, _react2.jsx)(_reactWindow.VariableSizeList, (0, _extends2.default)({
257
267
  width: width,
258
268
  height: calculatedHeight
259
269
  }, virtualizationProps), _this.ListRow);
@@ -270,8 +280,8 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
270
280
  // each individual item. This logic tries to offset this performance hit by
271
281
  // guesstimating a default width for each option
272
282
  (0, _defineProperty2.default)(_this, "focusBadgeOffset", 0);
273
- (0, _defineProperty2.default)(_this, "calculateDefaultOptionWidth", function (_ref4) {
274
- var containerWidth = _ref4.width;
283
+ (0, _defineProperty2.default)(_this, "calculateDefaultOptionWidth", function (_ref5) {
284
+ var containerWidth = _ref5.width;
275
285
  var _this$props4 = _this.props,
276
286
  truncationProps = _this$props4.truncationProps,
277
287
  searchable = _this$props4.searchable,
@@ -280,9 +290,9 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
280
290
  // If it's not likely we'll need to use EuiTextTruncate, don't set state/rerender on every panel resize
281
291
  var mayTruncate = searchable || truncationProps;
282
292
  if (!mayTruncate) return;
283
- var paddingOffset = _this.props.paddingSize === 'none' ? 0 : 24; // Defaults to 's'
284
- var checkedIconOffset = _this.props.showIcons === false ? 0 : 28; // Defaults to true
285
- _this.focusBadgeOffset = _this.props.onFocusBadge === false ? 0 : 46;
293
+ var paddingOffset = 24; // 2 * list item padding (8px) + 2 * text padding (4px)
294
+ var checkedIconOffset = _this.props.showIcons === false ? 0 : 24; // icon (16px) + gap (8px)
295
+ _this.focusBadgeOffset = !_this.props.onFocusBadge ? 0 : 28; // badge (20px) + gap (8px)
286
296
 
287
297
  // Wait a tick for the listbox ref to update before proceeding
288
298
  _this.animationFrameId = requestAnimationFrame(function () {
@@ -362,8 +372,8 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
362
372
  options = _this$props5.options,
363
373
  _this$props5$visibleO = _this$props5.visibleOptions,
364
374
  visibleOptions = _this$props5$visibleO === void 0 ? options : _this$props5$visibleO;
365
- _this.props.setActiveOptionIndex(visibleOptions.findIndex(function (_ref5) {
366
- var label = _ref5.label;
375
+ _this.props.setActiveOptionIndex(visibleOptions.findIndex(function (_ref6) {
376
+ var label = _ref6.label;
367
377
  return label === option.label;
368
378
  }), function () {
369
379
  if (option.checked === 'on' && allowExclusions) {
@@ -456,11 +466,12 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
456
466
  paddingSize = _this$props9.paddingSize,
457
467
  textWrap = _this$props9.textWrap,
458
468
  onFocusBadge = _this$props9.onFocusBadge,
459
- searchable = _this$props9.searchable;
469
+ searchable = _this$props9.searchable,
470
+ singleSelection = _this$props9.singleSelection;
460
471
 
461
472
  // using shouldComponentUpdate to determine needed rerender before actual rerender
462
473
  // without needing state updates or lagging behind on updates
463
- if (nextProps.allowExclusions !== allowExclusions || nextProps.showIcons !== showIcons || nextProps.paddingSize !== paddingSize || nextProps.textWrap !== textWrap || nextProps.onFocusBadge !== onFocusBadge || nextProps.searchable !== searchable) {
474
+ if (nextProps.allowExclusions !== allowExclusions || nextProps.showIcons !== showIcons || nextProps.paddingSize !== paddingSize || nextProps.textWrap !== textWrap || nextProps.onFocusBadge !== onFocusBadge || nextProps.searchable !== searchable || nextProps.singleSelection !== singleSelection) {
464
475
  this.listRowRerender += 1;
465
476
  }
466
477
  return true;
@@ -478,7 +489,8 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
478
489
  paddingSize = _this$props10.paddingSize,
479
490
  textWrap = _this$props10.textWrap,
480
491
  onFocusBadge = _this$props10.onFocusBadge,
481
- searchable = _this$props10.searchable;
492
+ searchable = _this$props10.searchable,
493
+ singleSelection = _this$props10.singleSelection;
482
494
  if (prevProps.activeOptionIndex !== activeOptionIndex) {
483
495
  var makeOptionId = this.props.makeOptionId;
484
496
  if (this.listBoxRef && this.props.searchable !== true) {
@@ -487,6 +499,8 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
487
499
  if (typeof activeOptionIndex !== 'undefined') {
488
500
  if (isVirtualized) {
489
501
  var _this$listRef;
502
+ // NOTE: Maybe we might want to consider changing scroll position to
503
+ // 'center' to not have items stick to the edges of the list
490
504
  (_this$listRef = this.listRef) === null || _this$listRef === void 0 || _this$listRef.scrollToItem(activeOptionIndex, 'auto');
491
505
  } else {
492
506
  var _this$listBoxRef;
@@ -511,7 +525,7 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
511
525
  }, this.calculateAriaSetAttrs(optionArray)));
512
526
  } else if (isVirtualized) {
513
527
  // ensure that ListRow updates based on item props
514
- if (prevProps.allowExclusions !== allowExclusions || prevProps.showIcons !== showIcons || prevProps.paddingSize !== paddingSize || prevProps.textWrap !== textWrap || prevProps.onFocusBadge !== onFocusBadge || prevProps.searchable !== searchable) {
528
+ if (prevProps.allowExclusions !== allowExclusions || prevProps.showIcons !== showIcons || prevProps.paddingSize !== paddingSize || prevProps.textWrap !== textWrap || prevProps.onFocusBadge !== onFocusBadge || prevProps.searchable !== searchable || prevProps.singleSelection !== singleSelection) {
515
529
  this.setState({
516
530
  itemData: _objectSpread({}, optionArray)
517
531
  });
@@ -557,7 +571,7 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
557
571
  var classes = (0, _classnames.default)('euiSelectableList', className);
558
572
  return (0, _react2.jsx)(_services.RenderWithEuiStylesMemoizer, null, function (stylesMemoizer) {
559
573
  var styles = stylesMemoizer(_selectable_list.euiSelectableListStyles);
560
- var cssStyles = [styles.euiSelectableList, heightIsFull && styles.fullHeight, bordered && styles.bordered];
574
+ var cssStyles = [styles.euiSelectableList, heightIsFull && styles.fullHeight, bordered && styles.bordered, paddingSize === 's' && styles.paddingSize.s];
561
575
  var listClasses = (0, _classnames.default)('euiSelectableList__list', styles.euiSelectableList__list);
562
576
  return (0, _react2.jsx)("div", (0, _extends2.default)({
563
577
  css: cssStyles,
@@ -583,6 +597,7 @@ var EuiSelectableList = exports.EuiSelectableList = /*#__PURE__*/function (_Comp
583
597
  }(_react.Component);
584
598
  (0, _defineProperty2.default)(EuiSelectableList, "defaultProps", {
585
599
  rowHeight: 32,
600
+ paddingSize: 'none',
586
601
  searchValue: '',
587
602
  isVirtualized: true
588
603
  });
@@ -3,12 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.euiSelectableListStyles = void 0;
6
+ exports.euiSelectableListStyles = exports.euiSelectableListGroupLabelStyles = void 0;
7
7
  var _react = require("@emotion/react");
8
8
  var _css = require("@emotion/css");
9
+ var _euiThemeCommon = require("@elastic/eui-theme-common");
9
10
  var _global_styling = require("../../../global_styling");
10
11
  var _title = require("../../title/title.styles");
11
- var _selectable_list_item = require("./selectable_list_item.styles");
12
+ var _list_item_layout = require("../../list_item_layout/_list_item_layout.styles");
12
13
  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)."; } /*
13
14
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
14
15
  * or more contributor license agreements. Licensed under the Elastic License
@@ -27,12 +28,26 @@ var _ref = process.env.NODE_ENV === "production" ? {
27
28
  };
28
29
  var euiSelectableListStyles = exports.euiSelectableListStyles = function euiSelectableListStyles(euiThemeContext) {
29
30
  var euiTheme = euiThemeContext.euiTheme;
30
- var itemVars = (0, _selectable_list_item.euiSelectableListItemVariables)(euiThemeContext);
31
31
  return {
32
32
  euiSelectableList: /*#__PURE__*/(0, _react.css)("&:has(:focus-visible){", (0, _global_styling.euiFocusRing)(euiThemeContext, 'outset'), ";};label:euiSelectableList;"),
33
33
  fullHeight: _ref,
34
34
  bordered: /*#__PURE__*/(0, _react.css)("overflow:hidden;border:", euiTheme.border.thin, ";border-radius:", euiTheme.border.radius.medium, ";;label:bordered;"),
35
- euiSelectableList__list: /*#__PURE__*/(0, _css.css)((0, _global_styling.euiYScrollWithShadows)(euiThemeContext), " &:focus,&>ul:focus{outline:none;};label:euiSelectableList__list;"),
36
- euiSelectableList__groupLabel: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 'xxxs'), " display:flex;align-items:center;", (0, _global_styling.logicalCSS)('border-bottom', itemVars.border), " ", (0, _global_styling.logicalCSS)('padding-vertical', itemVars.paddingVertical), " ", (0, _global_styling.logicalCSS)('padding-horizontal', itemVars.paddingHorizontal), ";;label:euiSelectableList__groupLabel;")
35
+ paddingSize: {
36
+ s: /*#__PURE__*/(0, _react.css)("padding:", euiTheme.size.s, ";;label:s;")
37
+ },
38
+ euiSelectableList__list: /*#__PURE__*/(0, _css.css)((0, _global_styling.euiYScrollWithShadows)(euiThemeContext, {
39
+ hasAnimatedOverflowShadow: true
40
+ }), " &:focus,&>ul:focus{outline:none;};label:euiSelectableList__list;")
41
+ };
42
+ };
43
+ var euiSelectableListGroupLabelStyles = exports.euiSelectableListGroupLabelStyles = function euiSelectableListGroupLabelStyles(euiThemeContext) {
44
+ var euiTheme = euiThemeContext.euiTheme;
45
+ var itemVars = (0, _list_item_layout.euiListItemVariables)(euiThemeContext);
46
+ var spacingVertical = euiTheme.size.s;
47
+ var borderColor = euiTheme.components.selectableListItemBorderColor;
48
+ return {
49
+ groupLabel: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 'xxxs'), " position:relative;display:flex;align-items:center;gap:", itemVars.spacing.horizontal, ";", (0, _global_styling.logicalCSS)('padding-horizontal', itemVars.textPadding.horizontal), " ", (0, _global_styling.logicalCSS)('padding-vertical', spacingVertical), " &:not(:first-child){", (0, _global_styling.logicalCSS)('padding-top', (0, _euiThemeCommon.mathWithUnits)([spacingVertical], function (a) {
50
+ return a * 3;
51
+ })), " &::before{content:'';position:absolute;inset:0;inset-block-start:", spacingVertical, ";", (0, _global_styling.logicalCSS)('border-top', "".concat(euiTheme.border.width.thin, " solid ").concat(borderColor)), ";}};label:groupLabel;")
37
52
  };
38
53
  };
@@ -5,21 +5,18 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.PADDING_SIZES = exports.EuiSelectableListItem = void 0;
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
+ exports.EuiSelectableListItem = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
  var _react = _interopRequireWildcard(require("react"));
14
- var _services = require("../../../services");
15
14
  var _i18n = require("../../i18n");
16
- var _icon = require("../../icon");
17
15
  var _accessibility = require("../../accessibility");
18
16
  var _badge = require("../../badge");
19
- var _tool_tip = require("../../tool_tip");
20
- var _selectable_list_item = require("./selectable_list_item.styles");
17
+ var _list_item_layout = require("../../list_item_layout/_list_item_layout");
21
18
  var _react2 = require("@emotion/react");
22
- var _excluded = ["children", "className", "disabled", "checked", "isFocused", "showIcons", "prepend", "append", "allowExclusions", "onFocusBadge", "paddingSize", "role", "searchable", "textWrap", "toolTipContent", "toolTipProps", "aria-describedby"],
19
+ var _excluded = ["children", "className", "disabled", "checked", "isFocused", "showIcons", "prepend", "append", "allowExclusions", "singleSelection", "onFocusBadge", "role", "searchable", "toolTipContent", "toolTipProps"],
23
20
  _excluded2 = ["children", "className"];
24
21
  /*
25
22
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -30,31 +27,8 @@ var _excluded = ["children", "className", "disabled", "checked", "isFocused", "s
30
27
  */
31
28
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
32
29
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
33
- function resolveIconAndColor(checked) {
34
- switch (checked) {
35
- case 'on':
36
- return {
37
- icon: 'check',
38
- color: 'text'
39
- };
40
- case 'off':
41
- return {
42
- icon: 'cross',
43
- color: 'text'
44
- };
45
- case 'mixed':
46
- return {
47
- icon: 'minus',
48
- color: 'text'
49
- };
50
- case undefined:
51
- default:
52
- return {
53
- icon: 'empty'
54
- };
55
- }
56
- }
57
- var PADDING_SIZES = exports.PADDING_SIZES = ['none', 's'];
30
+ 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; }
31
+ 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) { (0, _defineProperty2.default)(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; }
58
32
  var EuiSelectableListItem = exports.EuiSelectableListItem = function EuiSelectableListItem(_ref) {
59
33
  var children = _ref.children,
60
34
  className = _ref.className,
@@ -66,46 +40,19 @@ var EuiSelectableListItem = exports.EuiSelectableListItem = function EuiSelectab
66
40
  prepend = _ref.prepend,
67
41
  append = _ref.append,
68
42
  allowExclusions = _ref.allowExclusions,
43
+ _ref$singleSelection = _ref.singleSelection,
44
+ singleSelection = _ref$singleSelection === void 0 ? true : _ref$singleSelection,
69
45
  _ref$onFocusBadge = _ref.onFocusBadge,
70
- onFocusBadge = _ref$onFocusBadge === void 0 ? true : _ref$onFocusBadge,
71
- _ref$paddingSize = _ref.paddingSize,
72
- paddingSize = _ref$paddingSize === void 0 ? 's' : _ref$paddingSize,
46
+ onFocusBadge = _ref$onFocusBadge === void 0 ? false : _ref$onFocusBadge,
73
47
  _ref$role = _ref.role,
74
48
  role = _ref$role === void 0 ? 'option' : _ref$role,
75
49
  searchable = _ref.searchable,
76
- _ref$textWrap = _ref.textWrap,
77
- textWrap = _ref$textWrap === void 0 ? 'truncate' : _ref$textWrap,
78
50
  toolTipContent = _ref.toolTipContent,
79
51
  toolTipProps = _ref.toolTipProps,
80
- _ariaDescribedBy = _ref['aria-describedby'],
81
52
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
82
53
  var classes = (0, _classnames.default)('euiSelectableListItem', {
83
54
  'euiSelectableListItem-isFocused': isFocused
84
55
  }, className);
85
- var styles = (0, _services.useEuiMemoizedStyles)(_selectable_list_item.euiSelectableListItemStyles);
86
- var cssStyles = [styles.euiSelectableListItem, styles.padding[paddingSize]];
87
- var textStyles = [styles.euiSelectableListItem__text, styles.textWrap[textWrap]];
88
- var optionIcon = (0, _react.useMemo)(function () {
89
- if (showIcons) {
90
- var _resolveIconAndColor = resolveIconAndColor(checked),
91
- icon = _resolveIconAndColor.icon,
92
- color = _resolveIconAndColor.color;
93
- return (0, _react2.jsx)(_icon.EuiIcon, {
94
- css: styles.euiSelectableListItem__icon,
95
- className: "euiSelectableListItem__icon",
96
- color: color,
97
- type: icon
98
- });
99
- }
100
- }, [showIcons, checked, styles]);
101
- var prependNode = (0, _react.useMemo)(function () {
102
- if (prepend) {
103
- return (0, _react2.jsx)("span", {
104
- css: styles.euiSelectableListItem__prepend,
105
- className: "euiSelectableListItem__prepend"
106
- }, prepend);
107
- }
108
- }, [prepend, styles]);
109
56
  var onFocusBadgeNode = (0, _react.useMemo)(function () {
110
57
  var defaultOnFocusBadgeProps = {
111
58
  'aria-hidden': true,
@@ -126,15 +73,6 @@ var EuiSelectableListItem = exports.EuiSelectableListItem = function EuiSelectab
126
73
  }, defaultOnFocusBadgeProps, restBadgeProps), _children);
127
74
  }
128
75
  }, [onFocusBadge]);
129
- var showOnFocusBadge = !!(isFocused && !disabled && onFocusBadgeNode);
130
- var appendNode = (0, _react.useMemo)(function () {
131
- if (append || showOnFocusBadge) {
132
- return (0, _react2.jsx)("span", {
133
- css: styles.euiSelectableListItem__append,
134
- className: "euiSelectableListItem__append"
135
- }, append, " ", showOnFocusBadge ? onFocusBadgeNode : null);
136
- }
137
- }, [append, showOnFocusBadge, onFocusBadgeNode, styles]);
138
76
  var screenReaderText = (0, _react.useMemo)(function () {
139
77
  var state;
140
78
  var instructions;
@@ -204,78 +142,38 @@ var EuiSelectableListItem = exports.EuiSelectableListItem = function EuiSelectab
204
142
  }
205
143
  return state || instructions ? (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("div", null, state || instructions ? '. ' : null, state, state && instructions ? ' ' : null, instructions)) : null;
206
144
  }, [checked, searchable, allowExclusions]);
207
-
208
- // aria-checked is intended to be used with role="checkbox" but
209
- // the MDN documentation lists it as a possibility for role="option".
210
- // See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-checked
211
- // and https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/option_role
212
- var ariaChecked = (0, _react.useMemo)(function () {
213
- var rolesThatCanBeMixed = ['option', 'checkbox', 'menuitemcheckbox'];
214
- var rolesThatCanBeChecked = [].concat(rolesThatCanBeMixed, ['radio', 'menuitemradio', 'switch']);
215
- if (!rolesThatCanBeChecked.includes(role)) return undefined;
216
- switch (checked) {
217
- case 'on':
218
- case 'off':
219
- return true;
220
- case 'mixed':
221
- if (rolesThatCanBeMixed.includes(role)) {
222
- return 'mixed';
223
- } else {
224
- return false;
225
- }
226
- default:
227
- return false;
228
- }
229
- }, [role, checked]);
230
145
  var hasToolTip = !!toolTipContent && !disabled;
231
- var _useState = (0, _react.useState)(null),
232
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
233
- tooltipRef = _useState2[0],
234
- setTooltipRef = _useState2[1]; // Needs to be state and not a ref to trigger useEffect
235
- var _useState3 = (0, _react.useState)(_ariaDescribedBy),
236
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
237
- ariaDescribedBy = _useState4[0],
238
- setAriaDescribedBy = _useState4[1];
239
-
240
- // Manually trigger the tooltip on keyboard focus
241
- (0, _react.useEffect)(function () {
242
- if (!tooltipRef) return;
243
- if (isFocused) {
244
- tooltipRef.showToolTip();
245
- } else {
246
- tooltipRef.hideToolTip();
247
- }
248
- }, [isFocused, tooltipRef]);
249
-
250
- // Manually set the `aria-describedby` id on the <li> wrapper
251
- (0, _react.useEffect)(function () {
252
- if (tooltipRef) {
253
- var tooltipId = tooltipRef.id;
254
- setAriaDescribedBy((0, _classnames.default)(tooltipId, _ariaDescribedBy));
255
- }
256
- }, [tooltipRef, _ariaDescribedBy]);
257
- var content = (0, _react2.jsx)("span", {
258
- css: styles.euiSelectableListItem__content,
259
- className: "euiSelectableListItem__content"
260
- }, optionIcon, prependNode, (0, _react2.jsx)("span", {
261
- css: textStyles,
262
- className: "euiSelectableListItem__text"
263
- }, children, screenReaderText), appendNode);
264
- return (0, _react2.jsx)("li", (0, _extends2.default)({
146
+ var showOnFocusBadge = isFocused && !disabled && !!onFocusBadgeNode;
147
+ var listItemLayoutProps = _objectSpread({
148
+ element: 'li',
265
149
  role: role,
266
- "aria-disabled": disabled,
267
- "aria-checked": ariaChecked // Whether the item is "checked"
268
- ,
269
- "aria-selected": !disabled && isFocused // Whether the item has keyboard focus per W3 spec
270
- ,
271
- css: cssStyles,
272
- className: classes
273
- }, rest, {
274
- "aria-describedby": ariaDescribedBy
275
- }), hasToolTip ? (0, _react2.jsx)(_tool_tip.EuiToolTip, (0, _extends2.default)({
276
- ref: setTooltipRef,
277
- content: toolTipContent,
278
- anchorClassName: "eui-fullWidth",
279
- position: "left"
280
- }, toolTipProps), content) : content);
150
+ className: classes,
151
+ checked: checked,
152
+ isDisabled: disabled,
153
+ isFocused: !disabled && isFocused,
154
+ isSelected: checked !== undefined,
155
+ isSingleSelection: singleSelection,
156
+ selectionMode: allowExclusions || checked === 'mixed' ? 'checked' : undefined,
157
+ showIndicator: showIcons,
158
+ prepend: prepend,
159
+ prependProps: {
160
+ className: 'euiSelectableListItem__prepend'
161
+ },
162
+ append: (append || showOnFocusBadge) && (0, _react2.jsx)(_react.default.Fragment, null, append, showOnFocusBadge ? onFocusBadgeNode : null),
163
+ appendProps: {
164
+ className: 'euiSelectableListItem__append'
165
+ },
166
+ contentProps: {
167
+ className: 'euiSelectableListItem__content'
168
+ },
169
+ textProps: {
170
+ className: 'euiSelectableListItem__text'
171
+ },
172
+ tooltipProps: hasToolTip ? _objectSpread({
173
+ content: toolTipContent,
174
+ anchorClassName: 'eui-fullWidth',
175
+ position: 'left'
176
+ }, toolTipProps) : undefined
177
+ }, rest);
178
+ return (0, _react2.jsx)(_list_item_layout.EuiListItemLayout, listItemLayoutProps, children, screenReaderText);
281
179
  };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getListItemSize = void 0;
7
+ /*
8
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
9
+ * or more contributor license agreements. Licensed under the Elastic License
10
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
11
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
12
+ * Side Public License, v 1.
13
+ */
14
+
15
+ /**
16
+ * Util to calculate (virtualized) selection list item size
17
+ */
18
+ var getListItemSize = exports.getListItemSize = function getListItemSize(index, rowHeight, isGroupLabel) {
19
+ if (isGroupLabel && index > 0) {
20
+ return rowHeight + 16; // 16px = the additional 2 * 8px padding of the divider line
21
+ }
22
+ return rowHeight;
23
+ };
@@ -13,7 +13,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
13
13
  var _form = require("../../form");
14
14
  var _matching_options = require("../matching_options");
15
15
  var _react2 = require("@emotion/react");
16
- var _excluded = ["onChange", "options", "value", "placeholder", "isPreFiltered", "listId", "className", "optionMatcher"];
16
+ var _excluded = ["onChange", "options", "value", "placeholder", "isPreFiltered", "listId", "className", "optionMatcher", "compressed"];
17
17
  /*
18
18
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
19
19
  * or more contributor license agreements. Licensed under the Elastic License
@@ -32,6 +32,8 @@ var EuiSelectableSearch = exports.EuiSelectableSearch = function EuiSelectableSe
32
32
  listId = _ref.listId,
33
33
  className = _ref.className,
34
34
  optionMatcher = _ref.optionMatcher,
35
+ _ref$compressed = _ref.compressed,
36
+ compressed = _ref$compressed === void 0 ? true : _ref$compressed,
35
37
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
36
38
  var onChange = (0, _react.useCallback)(function (e) {
37
39
  var searchValue = e.target.value;
@@ -59,6 +61,7 @@ var EuiSelectableSearch = exports.EuiSelectableSearch = function EuiSelectableSe
59
61
  incremental: true,
60
62
  fullWidth: true,
61
63
  autoComplete: "off",
64
+ compressed: compressed,
62
65
  "aria-haspopup": "listbox"
63
66
  }, ariaPropsIfListIsPresent, rest));
64
67
  };
@@ -206,7 +206,7 @@ var EuiSelectableTemplateSitewide = exports.EuiSelectableTemplateSitewide = func
206
206
  className: searchClasses
207
207
  }),
208
208
  listProps: _objectSpread(_objectSpread({
209
- rowHeight: 68,
209
+ rowHeight: 52,
210
210
  showIcons: false,
211
211
  onFocusBadge: {
212
212
  iconSide: 'right',
@@ -15,14 +15,6 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
15
15
  * Side Public License, v 1.
16
16
  */
17
17
  var _ref = process.env.NODE_ENV === "production" ? {
18
- name: "q12130-euiSelectableTemplateSitewide__listItem",
19
- styles: "&:hover,&.euiSelectableListItem-isFocused{&:not([aria-disabled='true']){.euiSelectableListItem__text{text-decoration:none;}.euiSelectableTemplateSitewide__listItemTitle{text-decoration:underline;}}};label:euiSelectableTemplateSitewide__listItem;"
20
- } : {
21
- name: "q12130-euiSelectableTemplateSitewide__listItem",
22
- styles: "&:hover,&.euiSelectableListItem-isFocused{&:not([aria-disabled='true']){.euiSelectableListItem__text{text-decoration:none;}.euiSelectableTemplateSitewide__listItemTitle{text-decoration:underline;}}};label:euiSelectableTemplateSitewide__listItem;",
23
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
24
- };
25
- var _ref2 = process.env.NODE_ENV === "production" ? {
26
18
  name: "rsb9r7-euiSelectableTemplateSitewide",
27
19
  styles: "display:block;label:euiSelectableTemplateSitewide;"
28
20
  } : {
@@ -34,10 +26,8 @@ var euiSelectableTemplateSitewideStyles = exports.euiSelectableTemplateSitewideS
34
26
  var euiTheme = euiThemeContext.euiTheme;
35
27
  var visColors = (0, _services.euiPaletteColorBlind)();
36
28
  return {
37
- euiSelectableTemplateSitewide: _ref2,
38
- // Override EuiSelectable's default item underline
39
- euiSelectableTemplateSitewide__listItem: _ref,
40
- euiSelectableTemplateSitewide__optionMetasList: /*#__PURE__*/(0, _react.css)("display:block;", (0, _global_styling.logicalCSS)('margin-top', euiTheme.size.xs), " ", (0, _global_styling.euiFontSize)(euiThemeContext, 'xs'), " color:", euiTheme.colors.textSubdued, ";;label:euiSelectableTemplateSitewide__optionMetasList;"),
29
+ euiSelectableTemplateSitewide: _ref,
30
+ euiSelectableTemplateSitewide__optionMetasList: /*#__PURE__*/(0, _react.css)("display:block;", (0, _global_styling.euiFontSize)(euiThemeContext, 'xs'), " color:", euiTheme.colors.textSubdued, ";;label:euiSelectableTemplateSitewide__optionMetasList;"),
41
31
  euiSelectableTemplateSitewide__optionMeta: /*#__PURE__*/(0, _react.css)("&:not(:last-of-type)::after{content:'\u2022';", (0, _global_styling.logicalCSS)('margin-horizontal', euiTheme.size.xs), " color:", euiTheme.colors.textSubdued, ";};label:euiSelectableTemplateSitewide__optionMeta;"),
42
32
  metaTypes: {
43
33
  fontWeight: "\n font-weight: ".concat(euiTheme.font.weight.medium, ";\n "),
@@ -43,7 +43,7 @@ var euiSelectableTemplateSitewideFormatOptions = exports.euiSelectableTemplateSi
43
43
  key: item.label,
44
44
  title: title
45
45
  }, item), {}, {
46
- css: [styles.euiSelectableTemplateSitewide__listItem, item.css],
46
+ css: item.css,
47
47
  className: (0, _classnames.default)('euiSelectableTemplateSitewide__listItem', item.className),
48
48
  prepend: item.icon ? (0, _react2.jsx)(_icon.EuiIcon, (0, _extends2.default)({
49
49
  color: "subdued",
@@ -34,7 +34,7 @@ var EuiSelectableTemplateSitewidePopover = exports.EuiSelectableTemplateSitewide
34
34
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
35
35
  var styles = (0, _services.useEuiMemoizedStyles)(_selectable_template_sitewide.euiSelectableTemplateSitewidePopoverStyles);
36
36
  return (0, _react2.jsx)(_popover.EuiPopover, (0, _extends2.default)({
37
- panelPaddingSize: "none",
37
+ panelPaddingSize: "s",
38
38
  anchorPosition: "downCenter",
39
39
  isOpen: isOpen,
40
40
  ownFocus: !!trigger,