@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
@@ -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
  };
@@ -1,8 +1,10 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _extends from "@babel/runtime/helpers/extends";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["children", "className", "disabled", "checked", "isFocused", "showIcons", "prepend", "append", "allowExclusions", "onFocusBadge", "paddingSize", "role", "searchable", "textWrap", "toolTipContent", "toolTipProps", "aria-describedby"],
4
+ var _excluded = ["children", "className", "disabled", "checked", "isFocused", "showIcons", "prepend", "append", "allowExclusions", "singleSelection", "onFocusBadge", "role", "searchable", "toolTipContent", "toolTipProps"],
5
5
  _excluded2 = ["children", "className"];
6
+ 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; }
7
+ 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; }
6
8
  /*
7
9
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
8
10
  * or more contributor license agreements. Licensed under the Elastic License
@@ -12,40 +14,12 @@ var _excluded = ["children", "className", "disabled", "checked", "isFocused", "s
12
14
  */
13
15
 
14
16
  import classNames from 'classnames';
15
- import React, { useState, useEffect, useMemo } from 'react';
16
- import { useEuiMemoizedStyles } from '../../../services';
17
+ import React, { useMemo } from 'react';
17
18
  import { EuiI18n } from '../../i18n';
18
- import { EuiIcon } from '../../icon';
19
19
  import { EuiScreenReaderOnly } from '../../accessibility';
20
20
  import { EuiBadge } from '../../badge';
21
- import { EuiToolTip } from '../../tool_tip';
22
- import { euiSelectableListItemStyles } from './selectable_list_item.styles';
21
+ import { EuiListItemLayout } from '../../list_item_layout/_list_item_layout';
23
22
  import { jsx as ___EmotionJSX } from "@emotion/react";
24
- function resolveIconAndColor(checked) {
25
- switch (checked) {
26
- case 'on':
27
- return {
28
- icon: 'check',
29
- color: 'text'
30
- };
31
- case 'off':
32
- return {
33
- icon: 'cross',
34
- color: 'text'
35
- };
36
- case 'mixed':
37
- return {
38
- icon: 'minus',
39
- color: 'text'
40
- };
41
- case undefined:
42
- default:
43
- return {
44
- icon: 'empty'
45
- };
46
- }
47
- }
48
- export var PADDING_SIZES = ['none', 's'];
49
23
  export var EuiSelectableListItem = function EuiSelectableListItem(_ref) {
50
24
  var children = _ref.children,
51
25
  className = _ref.className,
@@ -57,46 +31,19 @@ export var EuiSelectableListItem = function EuiSelectableListItem(_ref) {
57
31
  prepend = _ref.prepend,
58
32
  append = _ref.append,
59
33
  allowExclusions = _ref.allowExclusions,
34
+ _ref$singleSelection = _ref.singleSelection,
35
+ singleSelection = _ref$singleSelection === void 0 ? true : _ref$singleSelection,
60
36
  _ref$onFocusBadge = _ref.onFocusBadge,
61
- onFocusBadge = _ref$onFocusBadge === void 0 ? true : _ref$onFocusBadge,
62
- _ref$paddingSize = _ref.paddingSize,
63
- paddingSize = _ref$paddingSize === void 0 ? 's' : _ref$paddingSize,
37
+ onFocusBadge = _ref$onFocusBadge === void 0 ? false : _ref$onFocusBadge,
64
38
  _ref$role = _ref.role,
65
39
  role = _ref$role === void 0 ? 'option' : _ref$role,
66
40
  searchable = _ref.searchable,
67
- _ref$textWrap = _ref.textWrap,
68
- textWrap = _ref$textWrap === void 0 ? 'truncate' : _ref$textWrap,
69
41
  toolTipContent = _ref.toolTipContent,
70
42
  toolTipProps = _ref.toolTipProps,
71
- _ariaDescribedBy = _ref['aria-describedby'],
72
43
  rest = _objectWithoutProperties(_ref, _excluded);
73
44
  var classes = classNames('euiSelectableListItem', {
74
45
  'euiSelectableListItem-isFocused': isFocused
75
46
  }, className);
76
- var styles = useEuiMemoizedStyles(euiSelectableListItemStyles);
77
- var cssStyles = [styles.euiSelectableListItem, styles.padding[paddingSize]];
78
- var textStyles = [styles.euiSelectableListItem__text, styles.textWrap[textWrap]];
79
- var optionIcon = useMemo(function () {
80
- if (showIcons) {
81
- var _resolveIconAndColor = resolveIconAndColor(checked),
82
- icon = _resolveIconAndColor.icon,
83
- color = _resolveIconAndColor.color;
84
- return ___EmotionJSX(EuiIcon, {
85
- css: styles.euiSelectableListItem__icon,
86
- className: "euiSelectableListItem__icon",
87
- color: color,
88
- type: icon
89
- });
90
- }
91
- }, [showIcons, checked, styles]);
92
- var prependNode = useMemo(function () {
93
- if (prepend) {
94
- return ___EmotionJSX("span", {
95
- css: styles.euiSelectableListItem__prepend,
96
- className: "euiSelectableListItem__prepend"
97
- }, prepend);
98
- }
99
- }, [prepend, styles]);
100
47
  var onFocusBadgeNode = useMemo(function () {
101
48
  var defaultOnFocusBadgeProps = {
102
49
  'aria-hidden': true,
@@ -117,15 +64,6 @@ export var EuiSelectableListItem = function EuiSelectableListItem(_ref) {
117
64
  }, defaultOnFocusBadgeProps, restBadgeProps), _children);
118
65
  }
119
66
  }, [onFocusBadge]);
120
- var showOnFocusBadge = !!(isFocused && !disabled && onFocusBadgeNode);
121
- var appendNode = useMemo(function () {
122
- if (append || showOnFocusBadge) {
123
- return ___EmotionJSX("span", {
124
- css: styles.euiSelectableListItem__append,
125
- className: "euiSelectableListItem__append"
126
- }, append, " ", showOnFocusBadge ? onFocusBadgeNode : null);
127
- }
128
- }, [append, showOnFocusBadge, onFocusBadgeNode, styles]);
129
67
  var screenReaderText = useMemo(function () {
130
68
  var state;
131
69
  var instructions;
@@ -195,78 +133,38 @@ export var EuiSelectableListItem = function EuiSelectableListItem(_ref) {
195
133
  }
196
134
  return state || instructions ? ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("div", null, state || instructions ? '. ' : null, state, state && instructions ? ' ' : null, instructions)) : null;
197
135
  }, [checked, searchable, allowExclusions]);
198
-
199
- // aria-checked is intended to be used with role="checkbox" but
200
- // the MDN documentation lists it as a possibility for role="option".
201
- // See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-checked
202
- // and https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/option_role
203
- var ariaChecked = useMemo(function () {
204
- var rolesThatCanBeMixed = ['option', 'checkbox', 'menuitemcheckbox'];
205
- var rolesThatCanBeChecked = [].concat(rolesThatCanBeMixed, ['radio', 'menuitemradio', 'switch']);
206
- if (!rolesThatCanBeChecked.includes(role)) return undefined;
207
- switch (checked) {
208
- case 'on':
209
- case 'off':
210
- return true;
211
- case 'mixed':
212
- if (rolesThatCanBeMixed.includes(role)) {
213
- return 'mixed';
214
- } else {
215
- return false;
216
- }
217
- default:
218
- return false;
219
- }
220
- }, [role, checked]);
221
136
  var hasToolTip = !!toolTipContent && !disabled;
222
- var _useState = useState(null),
223
- _useState2 = _slicedToArray(_useState, 2),
224
- tooltipRef = _useState2[0],
225
- setTooltipRef = _useState2[1]; // Needs to be state and not a ref to trigger useEffect
226
- var _useState3 = useState(_ariaDescribedBy),
227
- _useState4 = _slicedToArray(_useState3, 2),
228
- ariaDescribedBy = _useState4[0],
229
- setAriaDescribedBy = _useState4[1];
230
-
231
- // Manually trigger the tooltip on keyboard focus
232
- useEffect(function () {
233
- if (!tooltipRef) return;
234
- if (isFocused) {
235
- tooltipRef.showToolTip();
236
- } else {
237
- tooltipRef.hideToolTip();
238
- }
239
- }, [isFocused, tooltipRef]);
240
-
241
- // Manually set the `aria-describedby` id on the <li> wrapper
242
- useEffect(function () {
243
- if (tooltipRef) {
244
- var tooltipId = tooltipRef.id;
245
- setAriaDescribedBy(classNames(tooltipId, _ariaDescribedBy));
246
- }
247
- }, [tooltipRef, _ariaDescribedBy]);
248
- var content = ___EmotionJSX("span", {
249
- css: styles.euiSelectableListItem__content,
250
- className: "euiSelectableListItem__content"
251
- }, optionIcon, prependNode, ___EmotionJSX("span", {
252
- css: textStyles,
253
- className: "euiSelectableListItem__text"
254
- }, children, screenReaderText), appendNode);
255
- return ___EmotionJSX("li", _extends({
137
+ var showOnFocusBadge = isFocused && !disabled && !!onFocusBadgeNode;
138
+ var listItemLayoutProps = _objectSpread({
139
+ element: 'li',
256
140
  role: role,
257
- "aria-disabled": disabled,
258
- "aria-checked": ariaChecked // Whether the item is "checked"
259
- ,
260
- "aria-selected": !disabled && isFocused // Whether the item has keyboard focus per W3 spec
261
- ,
262
- css: cssStyles,
263
- className: classes
264
- }, rest, {
265
- "aria-describedby": ariaDescribedBy
266
- }), hasToolTip ? ___EmotionJSX(EuiToolTip, _extends({
267
- ref: setTooltipRef,
268
- content: toolTipContent,
269
- anchorClassName: "eui-fullWidth",
270
- position: "left"
271
- }, toolTipProps), content) : content);
141
+ className: classes,
142
+ checked: checked,
143
+ isDisabled: disabled,
144
+ isFocused: !disabled && isFocused,
145
+ isSelected: checked !== undefined,
146
+ isSingleSelection: singleSelection,
147
+ selectionMode: allowExclusions || checked === 'mixed' ? 'checked' : undefined,
148
+ showIndicator: showIcons,
149
+ prepend: prepend,
150
+ prependProps: {
151
+ className: 'euiSelectableListItem__prepend'
152
+ },
153
+ append: (append || showOnFocusBadge) && ___EmotionJSX(React.Fragment, null, append, showOnFocusBadge ? onFocusBadgeNode : null),
154
+ appendProps: {
155
+ className: 'euiSelectableListItem__append'
156
+ },
157
+ contentProps: {
158
+ className: 'euiSelectableListItem__content'
159
+ },
160
+ textProps: {
161
+ className: 'euiSelectableListItem__text'
162
+ },
163
+ tooltipProps: hasToolTip ? _objectSpread({
164
+ content: toolTipContent,
165
+ anchorClassName: 'eui-fullWidth',
166
+ position: 'left'
167
+ }, toolTipProps) : undefined
168
+ }, rest);
169
+ return ___EmotionJSX(EuiListItemLayout, listItemLayoutProps, children, screenReaderText);
272
170
  };
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ /**
10
+ * Util to calculate (virtualized) selection list item size
11
+ */
12
+ export var getListItemSize = function getListItemSize(index, rowHeight, isGroupLabel) {
13
+ if (isGroupLabel && index > 0) {
14
+ return rowHeight + 16; // 16px = the additional 2 * 8px padding of the divider line
15
+ }
16
+ return rowHeight;
17
+ };
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["onChange", "options", "value", "placeholder", "isPreFiltered", "listId", "className", "optionMatcher"];
3
+ var _excluded = ["onChange", "options", "value", "placeholder", "isPreFiltered", "listId", "className", "optionMatcher", "compressed"];
4
4
  /*
5
5
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
6
6
  * or more contributor license agreements. Licensed under the Elastic License
@@ -23,6 +23,8 @@ export var EuiSelectableSearch = function EuiSelectableSearch(_ref) {
23
23
  listId = _ref.listId,
24
24
  className = _ref.className,
25
25
  optionMatcher = _ref.optionMatcher,
26
+ _ref$compressed = _ref.compressed,
27
+ compressed = _ref$compressed === void 0 ? true : _ref$compressed,
26
28
  rest = _objectWithoutProperties(_ref, _excluded);
27
29
  var onChange = useCallback(function (e) {
28
30
  var searchValue = e.target.value;
@@ -50,6 +52,7 @@ export var EuiSelectableSearch = function EuiSelectableSearch(_ref) {
50
52
  incremental: true,
51
53
  fullWidth: true,
52
54
  autoComplete: "off",
55
+ compressed: compressed,
53
56
  "aria-haspopup": "listbox"
54
57
  }, ariaPropsIfListIsPresent, rest));
55
58
  };
@@ -197,7 +197,7 @@ export var EuiSelectableTemplateSitewide = function EuiSelectableTemplateSitewid
197
197
  className: searchClasses
198
198
  }),
199
199
  listProps: _objectSpread(_objectSpread({
200
- rowHeight: 68,
200
+ rowHeight: 52,
201
201
  showIcons: false,
202
202
  onFocusBadge: {
203
203
  iconSide: 'right',
@@ -11,14 +11,6 @@ import { css } from '@emotion/react';
11
11
  import { euiPaletteColorBlind, makeHighContrastColor } from '../../../services';
12
12
  import { euiFontSize, logicalCSS } from '../../../global_styling';
13
13
  var _ref = process.env.NODE_ENV === "production" ? {
14
- name: "q12130-euiSelectableTemplateSitewide__listItem",
15
- styles: "&:hover,&.euiSelectableListItem-isFocused{&:not([aria-disabled='true']){.euiSelectableListItem__text{text-decoration:none;}.euiSelectableTemplateSitewide__listItemTitle{text-decoration:underline;}}};label:euiSelectableTemplateSitewide__listItem;"
16
- } : {
17
- name: "q12130-euiSelectableTemplateSitewide__listItem",
18
- styles: "&:hover,&.euiSelectableListItem-isFocused{&:not([aria-disabled='true']){.euiSelectableListItem__text{text-decoration:none;}.euiSelectableTemplateSitewide__listItemTitle{text-decoration:underline;}}};label:euiSelectableTemplateSitewide__listItem;",
19
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
20
- };
21
- var _ref2 = process.env.NODE_ENV === "production" ? {
22
14
  name: "rsb9r7-euiSelectableTemplateSitewide",
23
15
  styles: "display:block;label:euiSelectableTemplateSitewide;"
24
16
  } : {
@@ -30,10 +22,8 @@ export var euiSelectableTemplateSitewideStyles = function euiSelectableTemplateS
30
22
  var euiTheme = euiThemeContext.euiTheme;
31
23
  var visColors = euiPaletteColorBlind();
32
24
  return {
33
- euiSelectableTemplateSitewide: _ref2,
34
- // Override EuiSelectable's default item underline
35
- euiSelectableTemplateSitewide__listItem: _ref,
36
- euiSelectableTemplateSitewide__optionMetasList: /*#__PURE__*/css("display:block;", logicalCSS('margin-top', euiTheme.size.xs), " ", euiFontSize(euiThemeContext, 'xs'), " color:", euiTheme.colors.textSubdued, ";;label:euiSelectableTemplateSitewide__optionMetasList;"),
25
+ euiSelectableTemplateSitewide: _ref,
26
+ euiSelectableTemplateSitewide__optionMetasList: /*#__PURE__*/css("display:block;", euiFontSize(euiThemeContext, 'xs'), " color:", euiTheme.colors.textSubdued, ";;label:euiSelectableTemplateSitewide__optionMetasList;"),
37
27
  euiSelectableTemplateSitewide__optionMeta: /*#__PURE__*/css("&:not(:last-of-type)::after{content:'\u2022';", logicalCSS('margin-horizontal', euiTheme.size.xs), " color:", euiTheme.colors.textSubdued, ";};label:euiSelectableTemplateSitewide__optionMeta;"),
38
28
  metaTypes: {
39
29
  fontWeight: "\n font-weight: ".concat(euiTheme.font.weight.medium, ";\n "),
@@ -40,7 +40,7 @@ export var euiSelectableTemplateSitewideFormatOptions = function euiSelectableTe
40
40
  key: item.label,
41
41
  title: title
42
42
  }, item), {}, {
43
- css: [styles.euiSelectableTemplateSitewide__listItem, item.css],
43
+ css: item.css,
44
44
  className: classNames('euiSelectableTemplateSitewide__listItem', item.className),
45
45
  prepend: item.icon ? ___EmotionJSX(EuiIcon, _extends({
46
46
  color: "subdued",
@@ -28,7 +28,7 @@ export var EuiSelectableTemplateSitewidePopover = function EuiSelectableTemplate
28
28
  rest = _objectWithoutProperties(_ref, _excluded);
29
29
  var styles = useEuiMemoizedStyles(euiSelectableTemplateSitewidePopoverStyles);
30
30
  return ___EmotionJSX(EuiPopover, _extends({
31
- panelPaddingSize: "none",
31
+ panelPaddingSize: "s",
32
32
  anchorPosition: "downCenter",
33
33
  isOpen: isOpen,
34
34
  ownFocus: !!trigger,