@elastic/eui 89.1.0 → 90.0.1

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 (365) hide show
  1. package/dist/eui_theme_dark.css +2 -467
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +2 -467
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/accessibility/skip_link/skip_link.js +1 -2
  6. package/es/components/accordion/accordion.js +27 -2
  7. package/es/components/accordion/accordion_children/accordion_children.js +7 -15
  8. package/es/components/basic_table/basic_table.js +60 -23
  9. package/es/components/basic_table/collapsed_item_actions.js +1 -1
  10. package/es/components/basic_table/in_memory_table.js +18 -4
  11. package/es/components/button/button.js +17 -45
  12. package/es/components/button/button_empty/button_empty.js +30 -47
  13. package/es/components/button/button_icon/button_icon.js +26 -43
  14. package/es/components/card/card.js +1 -6
  15. package/es/components/card/card_select/card_select.js +1 -6
  16. package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +12 -8
  17. package/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +2 -2
  18. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  19. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +13 -9
  20. package/es/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +12 -7
  21. package/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +1 -87
  22. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +20 -51
  23. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +90 -31
  24. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +67 -74
  25. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +1 -19
  26. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +16 -79
  27. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +5 -5
  28. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +79 -0
  29. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +176 -117
  30. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +0 -10
  31. package/es/components/collapsible_nav_beta/context.js +1 -0
  32. package/es/components/combo_box/combo_box.js +1 -1
  33. package/es/components/comment_list/comment_event.js +31 -19
  34. package/es/components/comment_list/comment_event.styles.js +26 -24
  35. package/es/components/context_menu/context_menu.js +28 -22
  36. package/es/components/context_menu/context_menu.styles.js +26 -0
  37. package/es/components/context_menu/context_menu_item.js +95 -125
  38. package/es/components/context_menu/context_menu_item.styles.js +82 -0
  39. package/es/components/context_menu/context_menu_panel.a11y.js +4 -2
  40. package/es/components/context_menu/context_menu_panel.js +32 -61
  41. package/es/components/context_menu/context_menu_panel.styles.js +40 -0
  42. package/es/components/control_bar/control_bar.js +28 -23
  43. package/es/components/datagrid/body/data_grid_body.js +6 -7
  44. package/es/components/datagrid/body/data_grid_body_custom.js +6 -7
  45. package/es/components/datagrid/body/data_grid_body_virtualized.js +6 -7
  46. package/es/components/datagrid/body/data_grid_cell.js +12 -13
  47. package/es/components/datagrid/body/data_grid_row_manager.js +28 -9
  48. package/es/components/datagrid/body/header/data_grid_header_cell.js +6 -7
  49. package/es/components/datagrid/body/header/data_grid_header_row.js +6 -7
  50. package/es/components/datagrid/data_grid.js +6 -7
  51. package/es/components/datagrid/utils/in_memory.js +6 -7
  52. package/es/components/date_picker/auto_refresh/auto_refresh.js +1 -2
  53. package/es/components/form/field_number/field_number.js +13 -9
  54. package/es/components/form/field_password/field_password.js +4 -7
  55. package/es/components/form/range/dual_range.js +110 -85
  56. package/es/components/form/range/range.js +47 -40
  57. package/es/components/form/range/range_track.js +6 -20
  58. package/es/components/form/range/utils.js +1 -2
  59. package/es/components/header/header_links/header_link.js +1 -6
  60. package/es/components/header/header_section/header_section_item_button.js +1 -6
  61. package/es/components/list_group/list_group.js +1 -2
  62. package/es/components/list_group/list_group_item.js +7 -5
  63. package/es/components/list_group/list_group_item_extra_action.js +1 -2
  64. package/es/components/list_group/list_group_item_extra_action.styles.js +1 -1
  65. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +2 -3
  66. package/es/components/modal/confirm_modal.js +1 -1
  67. package/es/components/notification/notification_event.js +1 -6
  68. package/es/components/notification/notification_event_read_button.js +1 -2
  69. package/es/components/page/index.js +1 -4
  70. package/es/components/pagination/pagination_button.js +1 -6
  71. package/es/components/popover/input_popover.js +26 -11
  72. package/es/components/selectable/selectable.js +16 -1
  73. package/es/components/selectable/selectable_list/selectable_list.js +227 -78
  74. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +16 -1
  75. package/es/components/tabs/tab.js +1 -1
  76. package/es/components/text_truncate/text_truncate.js +33 -10
  77. package/eui.d.ts +565 -341
  78. package/i18ntokens.json +141 -105
  79. package/lib/components/accessibility/skip_link/skip_link.js +1 -2
  80. package/lib/components/accordion/accordion.js +27 -2
  81. package/lib/components/accordion/accordion_children/accordion_children.js +5 -13
  82. package/lib/components/basic_table/basic_table.js +60 -23
  83. package/lib/components/basic_table/collapsed_item_actions.js +1 -1
  84. package/lib/components/basic_table/in_memory_table.js +18 -4
  85. package/lib/components/button/button.js +24 -51
  86. package/lib/components/button/button_empty/button_empty.js +29 -46
  87. package/lib/components/button/button_icon/button_icon.js +25 -42
  88. package/lib/components/card/card.js +1 -6
  89. package/lib/components/card/card_select/card_select.js +1 -6
  90. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +12 -8
  91. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +1 -1
  92. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  93. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +13 -9
  94. package/lib/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +12 -7
  95. package/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +1 -87
  96. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +20 -51
  97. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +90 -31
  98. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +66 -73
  99. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +11 -28
  100. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +16 -81
  101. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +5 -5
  102. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +86 -0
  103. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +176 -117
  104. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +0 -10
  105. package/lib/components/collapsible_nav_beta/context.js +1 -0
  106. package/lib/components/combo_box/combo_box.js +1 -1
  107. package/lib/components/comment_list/comment_event.js +33 -18
  108. package/lib/components/comment_list/comment_event.styles.js +28 -25
  109. package/lib/components/context_menu/context_menu.js +31 -24
  110. package/lib/components/context_menu/context_menu.styles.js +34 -0
  111. package/lib/components/context_menu/context_menu_item.js +102 -133
  112. package/lib/components/context_menu/context_menu_item.styles.js +87 -0
  113. package/lib/components/context_menu/context_menu_panel.a11y.js +4 -2
  114. package/lib/components/context_menu/context_menu_panel.js +35 -63
  115. package/lib/components/context_menu/context_menu_panel.styles.js +46 -0
  116. package/lib/components/control_bar/control_bar.js +28 -23
  117. package/lib/components/datagrid/body/data_grid_body.js +6 -7
  118. package/lib/components/datagrid/body/data_grid_body_custom.js +6 -7
  119. package/lib/components/datagrid/body/data_grid_body_virtualized.js +6 -7
  120. package/lib/components/datagrid/body/data_grid_cell.js +12 -13
  121. package/lib/components/datagrid/body/data_grid_row_manager.js +33 -16
  122. package/lib/components/datagrid/body/header/data_grid_header_cell.js +6 -7
  123. package/lib/components/datagrid/body/header/data_grid_header_row.js +6 -7
  124. package/lib/components/datagrid/data_grid.js +6 -7
  125. package/lib/components/datagrid/utils/in_memory.js +6 -7
  126. package/lib/components/date_picker/auto_refresh/auto_refresh.js +1 -2
  127. package/lib/components/form/field_number/field_number.js +12 -8
  128. package/lib/components/form/field_password/field_password.js +4 -7
  129. package/lib/components/form/range/dual_range.js +110 -85
  130. package/lib/components/form/range/range.js +47 -40
  131. package/lib/components/form/range/range_track.js +5 -19
  132. package/lib/components/form/range/utils.js +1 -2
  133. package/lib/components/header/header_links/header_link.js +1 -6
  134. package/lib/components/header/header_section/header_section_item_button.js +1 -6
  135. package/lib/components/list_group/list_group.js +1 -2
  136. package/lib/components/list_group/list_group_item.js +7 -5
  137. package/lib/components/list_group/list_group_item_extra_action.js +1 -2
  138. package/lib/components/list_group/list_group_item_extra_action.styles.js +1 -1
  139. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +2 -3
  140. package/lib/components/modal/confirm_modal.js +1 -1
  141. package/lib/components/notification/notification_event.js +1 -6
  142. package/lib/components/notification/notification_event_read_button.js +1 -2
  143. package/lib/components/page/index.js +1 -40
  144. package/lib/components/popover/input_popover.js +26 -11
  145. package/lib/components/selectable/selectable.js +16 -1
  146. package/lib/components/selectable/selectable_list/selectable_list.js +227 -78
  147. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +16 -1
  148. package/lib/components/tabs/tab.js +1 -1
  149. package/lib/components/text_truncate/text_truncate.js +32 -9
  150. package/optimize/es/components/accordion/accordion.js +27 -2
  151. package/optimize/es/components/accordion/accordion_children/accordion_children.js +5 -14
  152. package/optimize/es/components/basic_table/basic_table.js +42 -19
  153. package/optimize/es/components/button/button.js +15 -33
  154. package/optimize/es/components/button/button_empty/button_empty.js +29 -41
  155. package/optimize/es/components/button/button_icon/button_icon.js +25 -37
  156. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +12 -8
  157. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +2 -2
  158. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  159. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +13 -9
  160. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +12 -7
  161. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -3
  162. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +10 -5
  163. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +8 -36
  164. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +1 -19
  165. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -23
  166. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +5 -5
  167. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +60 -0
  168. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +28 -13
  169. package/optimize/es/components/collapsible_nav_beta/context.js +1 -0
  170. package/optimize/es/components/comment_list/comment_event.js +31 -19
  171. package/optimize/es/components/comment_list/comment_event.styles.js +26 -24
  172. package/optimize/es/components/context_menu/context_menu.js +25 -19
  173. package/optimize/es/components/context_menu/context_menu.styles.js +26 -0
  174. package/optimize/es/components/context_menu/context_menu_item.js +94 -119
  175. package/optimize/es/components/context_menu/context_menu_item.styles.js +82 -0
  176. package/optimize/es/components/context_menu/context_menu_panel.a11y.js +4 -2
  177. package/optimize/es/components/context_menu/context_menu_panel.js +29 -58
  178. package/optimize/es/components/context_menu/context_menu_panel.styles.js +40 -0
  179. package/optimize/es/components/control_bar/control_bar.js +28 -23
  180. package/optimize/es/components/datagrid/body/data_grid_row_manager.js +23 -9
  181. package/optimize/es/components/form/field_number/field_number.js +13 -9
  182. package/optimize/es/components/form/field_password/field_password.js +4 -7
  183. package/optimize/es/components/form/range/dual_range.js +110 -85
  184. package/optimize/es/components/form/range/range.js +47 -40
  185. package/optimize/es/components/form/range/range_track.js +5 -14
  186. package/optimize/es/components/form/range/utils.js +1 -2
  187. package/optimize/es/components/list_group/list_group_item.js +6 -3
  188. package/optimize/es/components/list_group/list_group_item_extra_action.styles.js +1 -1
  189. package/optimize/es/components/page/index.js +1 -4
  190. package/optimize/es/components/popover/input_popover.js +26 -11
  191. package/optimize/es/components/selectable/selectable_list/selectable_list.js +199 -76
  192. package/optimize/es/components/tabs/tab.js +1 -1
  193. package/optimize/es/components/text_truncate/text_truncate.js +26 -9
  194. package/optimize/lib/components/accordion/accordion.js +27 -2
  195. package/optimize/lib/components/accordion/accordion_children/accordion_children.js +3 -12
  196. package/optimize/lib/components/basic_table/basic_table.js +42 -19
  197. package/optimize/lib/components/button/button.js +16 -34
  198. package/optimize/lib/components/button/button_empty/button_empty.js +28 -40
  199. package/optimize/lib/components/button/button_icon/button_icon.js +24 -36
  200. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +12 -8
  201. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +1 -1
  202. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  203. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +13 -9
  204. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +12 -7
  205. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -3
  206. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +10 -5
  207. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +8 -36
  208. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +11 -28
  209. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -26
  210. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +5 -5
  211. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +67 -0
  212. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +28 -13
  213. package/optimize/lib/components/collapsible_nav_beta/context.js +1 -0
  214. package/optimize/lib/components/comment_list/comment_event.js +33 -18
  215. package/optimize/lib/components/comment_list/comment_event.styles.js +28 -25
  216. package/optimize/lib/components/context_menu/context_menu.js +28 -21
  217. package/optimize/lib/components/context_menu/context_menu.styles.js +34 -0
  218. package/optimize/lib/components/context_menu/context_menu_item.js +101 -128
  219. package/optimize/lib/components/context_menu/context_menu_item.styles.js +87 -0
  220. package/optimize/lib/components/context_menu/context_menu_panel.a11y.js +4 -2
  221. package/optimize/lib/components/context_menu/context_menu_panel.js +32 -60
  222. package/optimize/lib/components/context_menu/context_menu_panel.styles.js +47 -0
  223. package/optimize/lib/components/control_bar/control_bar.js +28 -23
  224. package/optimize/lib/components/datagrid/body/data_grid_row_manager.js +23 -8
  225. package/optimize/lib/components/form/field_number/field_number.js +12 -8
  226. package/optimize/lib/components/form/field_password/field_password.js +5 -8
  227. package/optimize/lib/components/form/range/dual_range.js +110 -85
  228. package/optimize/lib/components/form/range/range.js +47 -40
  229. package/optimize/lib/components/form/range/range_track.js +4 -13
  230. package/optimize/lib/components/form/range/utils.js +1 -2
  231. package/optimize/lib/components/list_group/list_group_item.js +6 -3
  232. package/optimize/lib/components/list_group/list_group_item_extra_action.styles.js +1 -1
  233. package/optimize/lib/components/page/index.js +1 -40
  234. package/optimize/lib/components/popover/input_popover.js +27 -12
  235. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +199 -76
  236. package/optimize/lib/components/tabs/tab.js +1 -1
  237. package/optimize/lib/components/text_truncate/text_truncate.js +25 -8
  238. package/package.json +5 -5
  239. package/src/components/datagrid/_data_grid_data_row.scss +0 -1
  240. package/src/components/date_picker/super_date_picker/date_popover/_date_popover_content.scss +2 -1
  241. package/src/components/index.scss +0 -2
  242. package/test-env/components/accessibility/skip_link/skip_link.js +1 -2
  243. package/test-env/components/accordion/accordion.js +27 -2
  244. package/test-env/components/accordion/accordion_children/accordion_children.js +5 -13
  245. package/test-env/components/auto_sizer/auto_sizer.js +10 -3
  246. package/test-env/components/basic_table/basic_table.js +60 -23
  247. package/test-env/components/basic_table/collapsed_item_actions.js +1 -1
  248. package/test-env/components/basic_table/in_memory_table.js +18 -4
  249. package/test-env/components/button/button.js +17 -40
  250. package/test-env/components/button/button_empty/button_empty.js +29 -46
  251. package/test-env/components/button/button_icon/button_icon.js +25 -42
  252. package/test-env/components/card/card.js +1 -6
  253. package/test-env/components/card/card_select/card_select.js +1 -6
  254. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +12 -8
  255. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +1 -1
  256. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  257. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +13 -9
  258. package/test-env/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +12 -7
  259. package/test-env/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +1 -87
  260. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +20 -51
  261. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +90 -31
  262. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +66 -73
  263. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +11 -28
  264. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +16 -82
  265. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +5 -5
  266. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +85 -0
  267. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +176 -117
  268. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +0 -10
  269. package/test-env/components/collapsible_nav_beta/context.js +1 -0
  270. package/test-env/components/combo_box/combo_box.js +1 -1
  271. package/test-env/components/comment_list/comment_event.js +33 -18
  272. package/test-env/components/comment_list/comment_event.styles.js +28 -25
  273. package/test-env/components/context_menu/context_menu.js +31 -24
  274. package/test-env/components/context_menu/context_menu.styles.js +34 -0
  275. package/test-env/components/context_menu/context_menu_item.js +102 -129
  276. package/test-env/components/context_menu/context_menu_item.styles.js +87 -0
  277. package/test-env/components/context_menu/context_menu_panel.a11y.js +4 -2
  278. package/test-env/components/context_menu/context_menu_panel.js +35 -63
  279. package/test-env/components/context_menu/context_menu_panel.styles.js +47 -0
  280. package/test-env/components/control_bar/control_bar.js +28 -23
  281. package/test-env/components/datagrid/body/data_grid_body.js +6 -7
  282. package/test-env/components/datagrid/body/data_grid_body_custom.js +6 -7
  283. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +6 -7
  284. package/test-env/components/datagrid/body/data_grid_cell.js +12 -13
  285. package/test-env/components/datagrid/body/data_grid_row_manager.js +23 -8
  286. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +6 -7
  287. package/test-env/components/datagrid/body/header/data_grid_header_row.js +6 -7
  288. package/test-env/components/datagrid/data_grid.js +6 -7
  289. package/test-env/components/datagrid/utils/in_memory.js +6 -7
  290. package/test-env/components/date_picker/auto_refresh/auto_refresh.js +1 -2
  291. package/test-env/components/form/field_number/field_number.js +12 -8
  292. package/test-env/components/form/field_password/field_password.js +4 -7
  293. package/test-env/components/form/range/dual_range.js +110 -85
  294. package/test-env/components/form/range/range.js +47 -40
  295. package/test-env/components/form/range/range_track.js +5 -14
  296. package/test-env/components/form/range/utils.js +1 -2
  297. package/test-env/components/header/header_links/header_link.js +1 -6
  298. package/test-env/components/header/header_section/header_section_item_button.js +1 -6
  299. package/test-env/components/list_group/list_group.js +1 -2
  300. package/test-env/components/list_group/list_group_item.js +7 -5
  301. package/test-env/components/list_group/list_group_item_extra_action.js +1 -2
  302. package/test-env/components/list_group/list_group_item_extra_action.styles.js +1 -1
  303. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +2 -3
  304. package/test-env/components/modal/confirm_modal.js +1 -1
  305. package/test-env/components/notification/notification_event.js +1 -6
  306. package/test-env/components/notification/notification_event_read_button.js +1 -2
  307. package/test-env/components/page/index.js +1 -40
  308. package/test-env/components/popover/input_popover.js +26 -11
  309. package/test-env/components/selectable/selectable.js +16 -1
  310. package/test-env/components/selectable/selectable_list/selectable_list.js +227 -78
  311. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +16 -1
  312. package/test-env/components/tabs/tab.js +1 -1
  313. package/test-env/components/text_truncate/text_truncate.js +32 -9
  314. package/es/components/page/page_content/index.js +0 -12
  315. package/es/components/page/page_content/page_content.js +0 -110
  316. package/es/components/page/page_content/page_content_body.js +0 -69
  317. package/es/components/page/page_content/page_content_header.js +0 -43
  318. package/es/components/page/page_content/page_content_header_section.js +0 -34
  319. package/es/components/page/page_side_bar/index.js +0 -9
  320. package/es/components/page/page_side_bar/page_side_bar.js +0 -60
  321. package/es/components/page/page_template.js +0 -591
  322. package/lib/components/page/page_content/index.js +0 -33
  323. package/lib/components/page/page_content/page_content.js +0 -117
  324. package/lib/components/page/page_content/page_content_body.js +0 -77
  325. package/lib/components/page/page_content/page_content_header.js +0 -50
  326. package/lib/components/page/page_content/page_content_header_section.js +0 -41
  327. package/lib/components/page/page_side_bar/index.js +0 -12
  328. package/lib/components/page/page_side_bar/page_side_bar.js +0 -67
  329. package/lib/components/page/page_template.js +0 -598
  330. package/optimize/es/components/page/page_content/index.js +0 -12
  331. package/optimize/es/components/page/page_content/page_content.js +0 -45
  332. package/optimize/es/components/page/page_content/page_content_body.js +0 -45
  333. package/optimize/es/components/page/page_content/page_content_header.js +0 -30
  334. package/optimize/es/components/page/page_content/page_content_header_section.js +0 -26
  335. package/optimize/es/components/page/page_side_bar/index.js +0 -9
  336. package/optimize/es/components/page/page_side_bar/page_side_bar.js +0 -44
  337. package/optimize/es/components/page/page_template.js +0 -325
  338. package/optimize/lib/components/page/page_content/index.js +0 -33
  339. package/optimize/lib/components/page/page_content/page_content.js +0 -52
  340. package/optimize/lib/components/page/page_content/page_content_body.js +0 -53
  341. package/optimize/lib/components/page/page_content/page_content_header.js +0 -37
  342. package/optimize/lib/components/page/page_content/page_content_header_section.js +0 -33
  343. package/optimize/lib/components/page/page_side_bar/index.js +0 -12
  344. package/optimize/lib/components/page/page_side_bar/page_side_bar.js +0 -51
  345. package/optimize/lib/components/page/page_template.js +0 -332
  346. package/src/components/context_menu/_context_menu.scss +0 -27
  347. package/src/components/context_menu/_context_menu_item.scss +0 -65
  348. package/src/components/context_menu/_context_menu_panel.scss +0 -101
  349. package/src/components/context_menu/_index.scss +0 -3
  350. package/src/components/page/_index.scss +0 -2
  351. package/src/components/page/page_content/_index.scss +0 -4
  352. package/src/components/page/page_content/_page_content.scss +0 -25
  353. package/src/components/page/page_content/_page_content_body.scss +0 -19
  354. package/src/components/page/page_content/_page_content_header.scss +0 -20
  355. package/src/components/page/page_content/_page_content_header_section.scss +0 -17
  356. package/src/components/page/page_side_bar/_index.scss +0 -1
  357. package/src/components/page/page_side_bar/_page_side_bar.scss +0 -31
  358. package/test-env/components/page/page_content/index.js +0 -33
  359. package/test-env/components/page/page_content/page_content.js +0 -116
  360. package/test-env/components/page/page_content/page_content_body.js +0 -73
  361. package/test-env/components/page/page_content/page_content_header.js +0 -49
  362. package/test-env/components/page/page_content/page_content_header_section.js +0 -40
  363. package/test-env/components/page/page_side_bar/index.js +0 -12
  364. package/test-env/components/page/page_side_bar/page_side_bar.js +0 -66
  365. package/test-env/components/page/page_template.js +0 -594
@@ -1,7 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["children", "disabled", "max", "min", "step", "showTicks", "tickInterval", "ticks", "levels", "onChange", "value", "compressed", "showRange", "className"];
3
+ var _excluded = ["children", "trackWidth", "disabled", "max", "min", "step", "showTicks", "tickInterval", "ticks", "levels", "onChange", "value", "compressed", "showRange", "className"];
5
4
  /*
6
5
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
7
6
  * or more contributor license agreements. Licensed under the Elastic License
@@ -10,7 +9,7 @@ var _excluded = ["children", "disabled", "max", "min", "step", "showTicks", "tic
10
9
  * Side Public License, v 1.
11
10
  */
12
11
 
13
- import React, { useState, useMemo, useEffect } from 'react';
12
+ import React, { useMemo, useEffect } from 'react';
14
13
  import classNames from 'classnames';
15
14
  import range from 'lodash/range';
16
15
  import { useEuiTheme, isEvenlyDivisibleBy } from '../../../services';
@@ -20,6 +19,7 @@ import { euiRangeTrackStyles } from './range_track.styles';
20
19
  import { jsx as ___EmotionJSX } from "@emotion/react";
21
20
  export var EuiRangeTrack = function EuiRangeTrack(_ref) {
22
21
  var children = _ref.children,
22
+ trackWidth = _ref.trackWidth,
23
23
  disabled = _ref.disabled,
24
24
  max = _ref.max,
25
25
  min = _ref.min,
@@ -41,10 +41,6 @@ export var EuiRangeTrack = function EuiRangeTrack(_ref) {
41
41
  step: step
42
42
  });
43
43
  }, [value, min, max, step]);
44
- var _useState = useState(0),
45
- _useState2 = _slicedToArray(_useState, 2),
46
- trackWidth = _useState2[0],
47
- setTrackWidth = _useState2[1];
48
44
  var tickSequence = useMemo(function () {
49
45
  if (showTicks !== true) return;
50
46
  var sequence;
@@ -91,12 +87,7 @@ export var EuiRangeTrack = function EuiRangeTrack(_ref) {
91
87
  return ___EmotionJSX("div", _extends({
92
88
  className: classes,
93
89
  css: cssStyles
94
- }, rest, {
95
- ref: function ref(node) {
96
- var _node$clientWidth;
97
- setTrackWidth((_node$clientWidth = node === null || node === void 0 ? void 0 : node.clientWidth) !== null && _node$clientWidth !== void 0 ? _node$clientWidth : 0);
98
- }
99
- }), levels && !!levels.length && ___EmotionJSX(EuiRangeLevels, {
90
+ }, rest), levels && !!levels.length && ___EmotionJSX(EuiRangeLevels, {
100
91
  levels: levels,
101
92
  max: max,
102
93
  min: min,
@@ -114,7 +105,7 @@ export var EuiRangeTrack = function EuiRangeTrack(_ref) {
114
105
  min: min,
115
106
  max: max,
116
107
  trackWidth: trackWidth
117
- }), typeof children === 'function' ? children(trackWidth) : children);
108
+ }), children);
118
109
  };
119
110
  var validateValueIsInStep = function validateValueIsInStep(value, _ref2) {
120
111
  var min = _ref2.min,
@@ -7,14 +7,13 @@
7
7
  */
8
8
 
9
9
  export var EUI_THUMB_SIZE = 16;
10
- export var calculateThumbPosition = function calculateThumbPosition(value, min, max, width) {
10
+ export var calculateThumbPosition = function calculateThumbPosition(value, min, max, trackWidth) {
11
11
  var thumbSize = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : EUI_THUMB_SIZE;
12
12
  // Calculate the left position based on value
13
13
  var decimal = (value - min) / (max - min);
14
14
  // Must be between 0-100%
15
15
  var valuePosition = decimal <= 1 ? decimal : 1;
16
16
  valuePosition = valuePosition >= 0 ? valuePosition : 0;
17
- var trackWidth = width !== null && width !== void 0 ? width : 0;
18
17
  var thumbToTrackRatio = thumbSize / trackWidth;
19
18
  var trackPositionScale = (1 - thumbToTrackRatio) * 100;
20
19
  return valuePosition * trackPositionScale;
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _extends from "@babel/runtime/helpers/extends";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
- var _excluded = ["label", "isActive", "isDisabled", "href", "target", "rel", "className", "css", "iconType", "icon", "iconProps", "extraAction", "onClick", "size", "color", "showToolTip", "wrapText", "buttonRef", "toolTipText", "toolTipProps"],
5
+ var _excluded = ["label", "isActive", "isDisabled", "href", "target", "rel", "className", "css", "style", "iconType", "icon", "iconProps", "extraAction", "onClick", "size", "color", "showToolTip", "wrapText", "buttonRef", "toolTipText", "toolTipProps"],
6
6
  _excluded2 = ["iconType", "alwaysShow", "isDisabled"];
7
7
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8
8
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -37,6 +37,7 @@ export var EuiListGroupItem = function EuiListGroupItem(_ref) {
37
37
  rel = _ref.rel,
38
38
  className = _ref.className,
39
39
  customCss = _ref.css,
40
+ style = _ref.style,
40
41
  iconType = _ref.iconType,
41
42
  icon = _ref.icon,
42
43
  iconProps = _ref.iconProps,
@@ -162,7 +163,8 @@ export var EuiListGroupItem = function EuiListGroupItem(_ref) {
162
163
  });
163
164
  itemContent = ___EmotionJSX("li", {
164
165
  className: classes,
165
- css: cssStyles
166
+ css: cssStyles,
167
+ style: style
166
168
  }, ___EmotionJSX(EuiToolTip, _extends({
167
169
  content: toolTipText !== null && toolTipText !== void 0 ? toolTipText : label,
168
170
  position: "right",
@@ -174,7 +176,8 @@ export var EuiListGroupItem = function EuiListGroupItem(_ref) {
174
176
  } else {
175
177
  itemContent = ___EmotionJSX("li", {
176
178
  className: classes,
177
- css: cssStyles
179
+ css: cssStyles,
180
+ style: style
178
181
  }, itemContent, extraActionNode);
179
182
  }
180
183
  return ___EmotionJSX(Fragment, null, itemContent);
@@ -28,7 +28,7 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
28
28
  export var euiListGroupItemExtraActionStyles = function euiListGroupItemExtraActionStyles(_ref3) {
29
29
  var euiTheme = _ref3.euiTheme;
30
30
  return {
31
- euiListGroupItemExtraAction: /*#__PURE__*/css("flex-shrink:0;opacity:0;", logicalCSS('margin-right', euiTheme.size.s), ";", euiCanAnimate, "{transition:opacity ", euiTheme.animation.fast, ";};label:euiListGroupItemExtraAction;"),
31
+ euiListGroupItemExtraAction: /*#__PURE__*/css("flex-shrink:0;opacity:0;", logicalCSS('margin-right', euiTheme.size.s), ";", euiCanAnimate, "{transition:opacity ", euiTheme.animation.fast, ";&&:hover,&&:focus{transform:translateY(0);}};label:euiListGroupItemExtraAction;"),
32
32
  hoverStyles: _ref2,
33
33
  alwaysShow: _ref
34
34
  };
@@ -8,9 +8,6 @@
8
8
 
9
9
  export { EuiPage } from './page';
10
10
  export { EuiPageBody } from './page_body';
11
- export { EuiPageContent_Deprecated, EuiPageContentBody_Deprecated, EuiPageContentHeader_Deprecated, EuiPageContentHeaderSection_Deprecated } from './page_content';
12
11
  export { EuiPageHeader, EuiPageHeaderContent, EuiPageHeaderSection } from './page_header';
13
12
  export { EuiPageSection } from './page_section';
14
- export { EuiPageSideBar_Deprecated } from './page_side_bar';
15
- export { EuiPageSidebar } from './page_sidebar';
16
- export { EuiPageTemplate_Deprecated } from './page_template';
13
+ export { EuiPageSidebar } from './page_sidebar';
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
- var _excluded = ["children", "className", "closePopover", "closeOnScroll", "disableFocusTrap", "focusTrapProps", "input", "fullWidth", "panelMinWidth", "onPanelResize", "inputRef", "panelRef"];
5
+ var _excluded = ["children", "className", "closePopover", "anchorPosition", "attachToAnchor", "repositionToCrossAxis", "display", "panelPaddingSize", "closeOnScroll", "ownFocus", "disableFocusTrap", "focusTrapProps", "input", "fullWidth", "panelMinWidth", "onPanelResize", "inputRef", "panelRef"];
6
6
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
7
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
8
  /*
@@ -31,8 +31,20 @@ export var EuiInputPopover = function EuiInputPopover(_ref) {
31
31
  var children = _ref.children,
32
32
  className = _ref.className,
33
33
  closePopover = _ref.closePopover,
34
+ _ref$anchorPosition = _ref.anchorPosition,
35
+ anchorPosition = _ref$anchorPosition === void 0 ? 'downLeft' : _ref$anchorPosition,
36
+ _ref$attachToAnchor = _ref.attachToAnchor,
37
+ attachToAnchor = _ref$attachToAnchor === void 0 ? true : _ref$attachToAnchor,
38
+ _ref$repositionToCros = _ref.repositionToCrossAxis,
39
+ repositionToCrossAxis = _ref$repositionToCros === void 0 ? false : _ref$repositionToCros,
40
+ _ref$display = _ref.display,
41
+ display = _ref$display === void 0 ? 'block' : _ref$display,
42
+ _ref$panelPaddingSize = _ref.panelPaddingSize,
43
+ panelPaddingSize = _ref$panelPaddingSize === void 0 ? 's' : _ref$panelPaddingSize,
34
44
  _ref$closeOnScroll = _ref.closeOnScroll,
35
45
  closeOnScroll = _ref$closeOnScroll === void 0 ? false : _ref$closeOnScroll,
46
+ _ref$ownFocus = _ref.ownFocus,
47
+ ownFocus = _ref$ownFocus === void 0 ? false : _ref$ownFocus,
36
48
  _ref$disableFocusTrap = _ref.disableFocusTrap,
37
49
  disableFocusTrap = _ref$disableFocusTrap === void 0 ? false : _ref$disableFocusTrap,
38
50
  focusTrapProps = _ref.focusTrapProps,
@@ -75,6 +87,11 @@ export var EuiInputPopover = function EuiInputPopover(_ref) {
75
87
  var panelWidth = useMemo(function () {
76
88
  return inputWidth < panelMinWidth ? panelMinWidth : inputWidth;
77
89
  }, [panelMinWidth, inputWidth]);
90
+
91
+ // Resize callback
92
+ useEffect(function () {
93
+ onPanelResize === null || onPanelResize === void 0 ? void 0 : onPanelResize(panelWidth);
94
+ }, [panelWidth, onPanelResize]);
78
95
  useEffect(function () {
79
96
  if (panelEl) {
80
97
  // We have to modify the popover panel DOM node directly instead of using
@@ -148,15 +165,19 @@ export var EuiInputPopover = function EuiInputPopover(_ref) {
148
165
  }
149
166
  }, [closeOnScroll, closePopover, panelEl, inputEl]);
150
167
  return ___EmotionJSX(EuiPopover, _extends({
168
+ className: classes,
151
169
  css: /*#__PURE__*/css(fullWidth ? undefined : logicalCSS('max-width', form.maxWidth), ";label:EuiInputPopover;"),
152
- repositionToCrossAxis: false,
153
- ownFocus: false,
170
+ display: display,
154
171
  button: input,
155
172
  buttonRef: inputRef,
156
173
  panelRef: panelRef,
157
- className: classes,
158
174
  ref: popoverClassRef,
159
- closePopover: closePopover
175
+ closePopover: closePopover,
176
+ anchorPosition: anchorPosition,
177
+ attachToAnchor: attachToAnchor,
178
+ repositionToCrossAxis: repositionToCrossAxis,
179
+ panelPaddingSize: panelPaddingSize,
180
+ ownFocus: ownFocus
160
181
  }, props, {
161
182
  panelProps: _objectSpread(_objectSpread({}, props.panelProps), {}, {
162
183
  onKeyDown: onKeyDown
@@ -167,10 +188,4 @@ export var EuiInputPopover = function EuiInputPopover(_ref) {
167
188
  }, focusTrapProps), ___EmotionJSX(EuiInputPopoverWidthContext.Provider, {
168
189
  value: panelWidth
169
190
  }, children)));
170
- };
171
- EuiInputPopover.defaultProps = {
172
- anchorPosition: 'downLeft',
173
- attachToAnchor: true,
174
- display: 'block',
175
- panelPaddingSize: 's'
176
191
  };
@@ -8,8 +8,8 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
8
8
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
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"],
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", "isVirtualized", "textWrap"];
11
+ _excluded2 = ["label", "isGroupLabel", "checked", "disabled", "prepend", "append", "ref", "key", "searchableLabel", "data", "truncationProps"],
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", "isVirtualized", "textWrap", "truncationProps"];
13
13
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
14
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
15
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
@@ -27,6 +27,8 @@ import classNames from 'classnames';
27
27
  import { FixedSizeList, areEqual } from 'react-window';
28
28
  import { EuiAutoSizer } from '../../auto_sizer';
29
29
  import { EuiHighlight } from '../../highlight';
30
+ import { EuiMark } from '../../mark';
31
+ import { EuiTextTruncate } from '../../text_truncate';
30
32
  import { EuiSelectableListItem } from './selectable_list_item';
31
33
 
32
34
  // Consumer Configurable Props via `EuiSelectable.listProps`
@@ -81,20 +83,23 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
81
83
  }
82
84
  }
83
85
  });
84
- _defineProperty(_assertThisInitialized(_this), "ariaSetSize", 0);
85
- _defineProperty(_assertThisInitialized(_this), "ariaPosInSetMap", {});
86
+ // This utility is necessary to exclude group labels from the aria set count
86
87
  _defineProperty(_assertThisInitialized(_this), "calculateAriaSetAttrs", function (optionArray) {
87
- _this.ariaPosInSetMap = {};
88
+ var ariaPosInSetMap = {};
88
89
  var latestAriaPosIndex = 0;
89
90
  optionArray.forEach(function (option, index) {
90
91
  if (!option.isGroupLabel) {
91
92
  latestAriaPosIndex++;
92
- _this.ariaPosInSetMap[index] = latestAriaPosIndex;
93
+ ariaPosInSetMap[index] = latestAriaPosIndex;
93
94
  }
94
95
  });
95
- _this.ariaSetSize = latestAriaPosIndex;
96
+ return {
97
+ ariaPosInSetMap: ariaPosInSetMap,
98
+ ariaSetSize: latestAriaPosIndex
99
+ };
96
100
  });
97
101
  _defineProperty(_assertThisInitialized(_this), "ListRow", /*#__PURE__*/memo(function (_ref) {
102
+ var _option$textWrap;
98
103
  var data = _ref.data,
99
104
  index = _ref.index,
100
105
  style = _ref.style;
@@ -111,19 +116,20 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
111
116
  key = option.key,
112
117
  searchableLabel = option.searchableLabel,
113
118
  _data = option.data,
119
+ _truncationProps = option.truncationProps,
114
120
  optionRest = _objectWithoutProperties(option, _excluded2);
115
121
  var _this$props2 = _this.props,
116
122
  activeOptionIndex = _this$props2.activeOptionIndex,
117
123
  allowExclusions = _this$props2.allowExclusions,
118
124
  onFocusBadge = _this$props2.onFocusBadge,
119
125
  paddingSize = _this$props2.paddingSize,
120
- searchValue = _this$props2.searchValue,
121
126
  showIcons = _this$props2.showIcons,
122
127
  makeOptionId = _this$props2.makeOptionId,
123
128
  renderOption = _this$props2.renderOption,
124
129
  setActiveOptionIndex = _this$props2.setActiveOptionIndex,
125
130
  searchable = _this$props2.searchable,
126
- textWrap = _this$props2.textWrap;
131
+ searchValue = _this$props2.searchValue,
132
+ isVirtualized = _this$props2.isVirtualized;
127
133
  if (isGroupLabel) {
128
134
  return ___EmotionJSX("li", _extends({
129
135
  role: "presentation",
@@ -133,6 +139,15 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
133
139
  }, optionRest), prepend, label, append);
134
140
  }
135
141
  var id = makeOptionId(index);
142
+ var isFocused = activeOptionIndex === index;
143
+
144
+ // Text wrapping
145
+ var canWrap = !isVirtualized;
146
+ var _textWrap = (_option$textWrap = option.textWrap) !== null && _option$textWrap !== void 0 ? _option$textWrap : _this.props.textWrap;
147
+ var textWrap = canWrap ? _textWrap : 'truncate';
148
+
149
+ // Truncation config (if any). If none, CSS truncation is used
150
+ var truncationProps = textWrap === 'truncate' ? _this.getTruncationProps(option, isFocused) : undefined;
136
151
  return ___EmotionJSX(EuiSelectableListItem, _extends({
137
152
  key: id,
138
153
  id: id,
@@ -145,14 +160,14 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
145
160
  _this.onAddOrRemoveOption(option, event);
146
161
  },
147
162
  ref: ref ? ref.bind(null, index) : undefined,
148
- isFocused: activeOptionIndex === index,
163
+ isFocused: isFocused,
149
164
  title: searchableLabel || label,
150
165
  checked: checked,
151
166
  disabled: disabled,
152
167
  prepend: prepend,
153
168
  append: append,
154
- "aria-posinset": _this.ariaPosInSetMap[index],
155
- "aria-setsize": _this.ariaSetSize,
169
+ "aria-posinset": _this.state.ariaPosInSetMap[index],
170
+ "aria-setsize": _this.state.ariaSetSize,
156
171
  onFocusBadge: onFocusBadge,
157
172
  allowExclusions: allowExclusions,
158
173
  showIcons: showIcons,
@@ -160,16 +175,18 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
160
175
  searchable: searchable,
161
176
  textWrap: textWrap
162
177
  }, optionRest), renderOption ? renderOption( // @ts-ignore complex
163
- _objectSpread(_objectSpread({}, _option), optionData), _this.props.searchValue) : ___EmotionJSX(EuiHighlight, {
164
- search: searchValue
165
- }, label));
178
+ _objectSpread(_objectSpread({}, _option), optionData), searchValue) : searchValue ? _this.renderSearchedText(label, truncationProps) : truncationProps ? _this.renderTruncatedText(label, truncationProps) : label);
166
179
  }, areEqual));
167
- _defineProperty(_assertThisInitialized(_this), "renderVirtualizedList", function (heightIsFull, optionArray) {
180
+ _defineProperty(_assertThisInitialized(_this), "renderVirtualizedList", function () {
168
181
  if (!_this.props.isVirtualized) return null;
182
+ var _this$state = _this.state,
183
+ optionArray = _this$state.optionArray,
184
+ itemData = _this$state.itemData;
169
185
  var _this$props3 = _this.props,
170
186
  windowProps = _this$props3.windowProps,
171
187
  forcedHeight = _this$props3.height,
172
188
  rowHeight = _this$props3.rowHeight;
189
+ var heightIsFull = forcedHeight === 'full';
173
190
  var virtualizationProps = _objectSpread({
174
191
  className: 'euiSelectableList__list',
175
192
  ref: _this.setListRef,
@@ -177,7 +194,7 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
177
194
  innerRef: _this.setListBoxRef,
178
195
  innerElementType: 'ul',
179
196
  itemCount: optionArray.length,
180
- itemData: optionArray,
197
+ itemData: itemData,
181
198
  itemSize: rowHeight,
182
199
  'data-skip-axe': 'scrollable-region-focusable'
183
200
  }, windowProps);
@@ -197,7 +214,9 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
197
214
  calculatedHeight = numVisibleOptions * rowHeight;
198
215
  }
199
216
  }
200
- return heightIsFull ? ___EmotionJSX(EuiAutoSizer, null, function (_ref2) {
217
+ return heightIsFull ? ___EmotionJSX(EuiAutoSizer, {
218
+ onResize: _this.calculateDefaultOptionWidth
219
+ }, function (_ref2) {
201
220
  var width = _ref2.width,
202
221
  height = _ref2.height;
203
222
  return ___EmotionJSX(FixedSizeList, _extends({
@@ -205,7 +224,8 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
205
224
  height: height
206
225
  }, virtualizationProps), _this.ListRow);
207
226
  }) : ___EmotionJSX(EuiAutoSizer, {
208
- disableHeight: true
227
+ disableHeight: true,
228
+ onResize: _this.calculateDefaultOptionWidth
209
229
  }, function (_ref3) {
210
230
  var width = _ref3.width;
211
231
  return ___EmotionJSX(FixedSizeList, _extends({
@@ -214,17 +234,106 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
214
234
  }, virtualizationProps), _this.ListRow);
215
235
  });
216
236
  });
237
+ _defineProperty(_assertThisInitialized(_this), "forceVirtualizedListRowRerender", function () {
238
+ _this.setState({
239
+ itemData: _objectSpread({}, _this.state.optionArray)
240
+ });
241
+ });
242
+ // EuiTextTruncate is expensive perf-wise - we use several utilities here to
243
+ // offset its performance cost
244
+ // and creates a resize observer for
245
+ // each individual item. This logic tries to offset this performance hit by
246
+ // guesstimating a default width for each option
247
+ _defineProperty(_assertThisInitialized(_this), "focusBadgeOffset", 0);
248
+ _defineProperty(_assertThisInitialized(_this), "calculateDefaultOptionWidth", function (_ref4) {
249
+ var containerWidth = _ref4.width;
250
+ var _this$props4 = _this.props,
251
+ truncationProps = _this$props4.truncationProps,
252
+ searchable = _this$props4.searchable,
253
+ searchValue = _this$props4.searchValue;
254
+
255
+ // If it's not likely we'll need to use EuiTextTruncate, don't set state/rerender on every panel resize
256
+ var mayTruncate = searchable || truncationProps;
257
+ if (!mayTruncate) return;
258
+ var paddingOffset = _this.props.paddingSize === 'none' ? 0 : 24; // Defaults to 's'
259
+ var checkedIconOffset = _this.props.showIcons === false ? 0 : 28; // Defaults to true
260
+ _this.focusBadgeOffset = _this.props.onFocusBadge === false ? 0 : 46;
261
+ _this.setState({
262
+ defaultOptionWidth: containerWidth - paddingOffset - checkedIconOffset
263
+ });
264
+
265
+ // Potentially force list rows to rerender on dynamic resize as well,
266
+ // but try to do it as lightly as possible
267
+ if (truncationProps || searchable && searchValue) {
268
+ _this.forceVirtualizedListRowRerender();
269
+ }
270
+ });
271
+ _defineProperty(_assertThisInitialized(_this), "getTruncationProps", function (option, isFocused) {
272
+ // Individual truncation settings should override component-wide settings
273
+ var truncationProps = _objectSpread(_objectSpread({}, _this.props.truncationProps), option.truncationProps);
274
+
275
+ // If we're not actually using EuiTextTruncate, no need to continue
276
+ var hasComplexTruncation = _this.props.searchValue || Object.keys(truncationProps).length > 0;
277
+ if (!hasComplexTruncation) return undefined;
278
+
279
+ // Determine whether we can use the optimized default option width
280
+ var defaultOptionWidth = _this.state.defaultOptionWidth;
281
+ var useDefaultWidth = !option.append && !option.prepend;
282
+ var defaultWidth = useDefaultWidth && defaultOptionWidth ? isFocused ? defaultOptionWidth - _this.focusBadgeOffset : defaultOptionWidth : undefined;
283
+ return _objectSpread({
284
+ width: defaultWidth
285
+ }, truncationProps);
286
+ });
287
+ _defineProperty(_assertThisInitialized(_this), "renderSearchedText", function (text, truncationProps) {
288
+ var searchValue = _this.props.searchValue;
289
+
290
+ // If truncationProps is undefined, we're using non-virtualized text wrapping
291
+ if (!truncationProps) {
292
+ return ___EmotionJSX(EuiHighlight, {
293
+ search: searchValue
294
+ }, text);
295
+ }
296
+ var searchPositionStart = text.toLowerCase().indexOf(searchValue.toLowerCase());
297
+ var searchPositionCenter = searchPositionStart + Math.floor(searchValue.length / 2);
298
+ return ___EmotionJSX(EuiTextTruncate, _extends({}, truncationProps, {
299
+ // When searching, don't allow overriding the truncation settings
300
+ truncation: "startEnd",
301
+ truncationPosition: searchPositionCenter,
302
+ text: text
303
+ }), function (text) {
304
+ return ___EmotionJSX(React.Fragment, null, text.length >= searchValue.length ? ___EmotionJSX(EuiHighlight, {
305
+ search: searchValue
306
+ }, text) :
307
+ // If the available truncated text is shorter than the full search string,
308
+ // just highlight the entire truncated text
309
+ ___EmotionJSX(EuiMark, null, text));
310
+ });
311
+ });
312
+ _defineProperty(_assertThisInitialized(_this), "renderTruncatedText", function (text, truncationProps) {
313
+ return (
314
+ // For some bizarre reason, truncation in EuiSelectable is off on initial mount
315
+ // (but not on rerender) for Safari and _some_ truncation types in Firefox :|
316
+ // Waiting a tick before calculating truncation seems to smooth over the issue
317
+ ___EmotionJSX(EuiTextTruncate, _extends({
318
+ calculationDelayMs: 2
319
+ }, truncationProps, {
320
+ text: text
321
+ }), function (text) {
322
+ return text;
323
+ })
324
+ );
325
+ });
217
326
  _defineProperty(_assertThisInitialized(_this), "onAddOrRemoveOption", function (option, event) {
218
327
  if (option.disabled) {
219
328
  return;
220
329
  }
221
- var _this$props4 = _this.props,
222
- allowExclusions = _this$props4.allowExclusions,
223
- options = _this$props4.options,
224
- _this$props4$visibleO = _this$props4.visibleOptions,
225
- visibleOptions = _this$props4$visibleO === void 0 ? options : _this$props4$visibleO;
226
- _this.props.setActiveOptionIndex(visibleOptions.findIndex(function (_ref4) {
227
- var label = _ref4.label;
330
+ var _this$props5 = _this.props,
331
+ allowExclusions = _this$props5.allowExclusions,
332
+ options = _this$props5.options,
333
+ _this$props5$visibleO = _this$props5.visibleOptions,
334
+ visibleOptions = _this$props5$visibleO === void 0 ? options : _this$props5$visibleO;
335
+ _this.props.setActiveOptionIndex(visibleOptions.findIndex(function (_ref5) {
336
+ var label = _ref5.label;
228
337
  return label === option.label;
229
338
  }), function () {
230
339
  if (option.checked === 'on' && allowExclusions) {
@@ -237,10 +346,10 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
237
346
  });
238
347
  });
239
348
  _defineProperty(_assertThisInitialized(_this), "onAddOption", function (addedOption, event) {
240
- var _this$props5 = _this.props,
241
- onOptionClick = _this$props5.onOptionClick,
242
- options = _this$props5.options,
243
- singleSelection = _this$props5.singleSelection;
349
+ var _this$props6 = _this.props,
350
+ onOptionClick = _this$props6.onOptionClick,
351
+ options = _this$props6.options,
352
+ singleSelection = _this$props6.singleSelection;
244
353
  var changedOption = _objectSpread({}, addedOption);
245
354
  var updatedOptions = options.map(function (option) {
246
355
  // if singleSelection is enabled, uncheck any selected option(s)
@@ -259,10 +368,10 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
259
368
  onOptionClick(updatedOptions, event, changedOption);
260
369
  });
261
370
  _defineProperty(_assertThisInitialized(_this), "onRemoveOption", function (removedOption, event) {
262
- var _this$props6 = _this.props,
263
- onOptionClick = _this$props6.onOptionClick,
264
- singleSelection = _this$props6.singleSelection,
265
- options = _this$props6.options;
371
+ var _this$props7 = _this.props,
372
+ onOptionClick = _this$props7.onOptionClick,
373
+ singleSelection = _this$props7.singleSelection,
374
+ options = _this$props7.options;
266
375
  var changedOption = _objectSpread({}, removedOption);
267
376
  var updatedOptions = options.map(function (option) {
268
377
  var updatedOption = _objectSpread({}, option);
@@ -275,9 +384,9 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
275
384
  onOptionClick(updatedOptions, event, changedOption);
276
385
  });
277
386
  _defineProperty(_assertThisInitialized(_this), "onExcludeOption", function (excludedOption, event) {
278
- var _this$props7 = _this.props,
279
- onOptionClick = _this$props7.onOptionClick,
280
- options = _this$props7.options;
387
+ var _this$props8 = _this.props,
388
+ onOptionClick = _this$props8.onOptionClick,
389
+ options = _this$props8.options;
281
390
  var changedOption = _objectSpread({}, excludedOption);
282
391
  var updatedOptions = options.map(function (option) {
283
392
  var updatedOption = _objectSpread({}, option);
@@ -289,69 +398,83 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
289
398
  });
290
399
  onOptionClick(updatedOptions, event, changedOption);
291
400
  });
401
+ var _optionArray = props.visibleOptions || props.options;
402
+ _this.state = _objectSpread({
403
+ defaultOptionWidth: 0,
404
+ optionArray: _optionArray,
405
+ itemData: _objectSpread({}, _optionArray)
406
+ }, _this.calculateAriaSetAttrs(_optionArray));
292
407
  return _this;
293
408
  }
294
409
  _createClass(EuiSelectableList, [{
295
410
  key: "componentDidUpdate",
296
- value: function componentDidUpdate() {
297
- var activeOptionIndex = this.props.activeOptionIndex;
411
+ value: function componentDidUpdate(prevProps) {
412
+ var _this$props9 = this.props,
413
+ activeOptionIndex = _this$props9.activeOptionIndex,
414
+ visibleOptions = _this$props9.visibleOptions,
415
+ options = _this$props9.options;
298
416
  if (this.listBoxRef && this.props.searchable !== true) {
299
417
  this.listBoxRef.setAttribute('aria-activedescendant', "".concat(this.props.makeOptionId(activeOptionIndex)));
300
418
  }
301
- if (this.listRef && typeof this.props.activeOptionIndex !== 'undefined') {
302
- this.listRef.scrollToItem(this.props.activeOptionIndex, 'auto');
419
+ if (this.listRef && typeof activeOptionIndex !== 'undefined') {
420
+ this.listRef.scrollToItem(activeOptionIndex, 'auto');
421
+ }
422
+ if (prevProps.visibleOptions !== visibleOptions || prevProps.options !== options) {
423
+ var optionArray = visibleOptions || options;
424
+ this.setState(_objectSpread({
425
+ optionArray: optionArray,
426
+ itemData: _objectSpread({}, optionArray)
427
+ }, this.calculateAriaSetAttrs(optionArray)));
303
428
  }
304
429
  }
305
430
  }, {
306
431
  key: "render",
307
432
  value: function render() {
308
433
  var _this2 = this;
309
- var _this$props8 = this.props,
310
- className = _this$props8.className,
311
- options = _this$props8.options,
312
- searchValue = _this$props8.searchValue,
313
- onOptionClick = _this$props8.onOptionClick,
314
- renderOption = _this$props8.renderOption,
315
- forcedHeight = _this$props8.height,
316
- windowProps = _this$props8.windowProps,
317
- rowHeight = _this$props8.rowHeight,
318
- activeOptionIndex = _this$props8.activeOptionIndex,
319
- makeOptionId = _this$props8.makeOptionId,
320
- showIcons = _this$props8.showIcons,
321
- singleSelection = _this$props8.singleSelection,
322
- visibleOptions = _this$props8.visibleOptions,
323
- allowExclusions = _this$props8.allowExclusions,
324
- bordered = _this$props8.bordered,
325
- paddingSize = _this$props8.paddingSize,
326
- searchable = _this$props8.searchable,
327
- onFocusBadge = _this$props8.onFocusBadge,
328
- listId = _this$props8.listId,
329
- setActiveOptionIndex = _this$props8.setActiveOptionIndex,
330
- ariaLabel = _this$props8['aria-label'],
331
- ariaLabelledby = _this$props8['aria-labelledby'],
332
- ariaDescribedby = _this$props8['aria-describedby'],
333
- role = _this$props8.role,
334
- isVirtualized = _this$props8.isVirtualized,
335
- textWrap = _this$props8.textWrap,
336
- rest = _objectWithoutProperties(_this$props8, _excluded3);
337
- var optionArray = visibleOptions || options;
338
- this.calculateAriaSetAttrs(optionArray);
339
- var heightIsFull = forcedHeight === 'full';
434
+ var _this$props10 = this.props,
435
+ className = _this$props10.className,
436
+ options = _this$props10.options,
437
+ searchValue = _this$props10.searchValue,
438
+ onOptionClick = _this$props10.onOptionClick,
439
+ renderOption = _this$props10.renderOption,
440
+ forcedHeight = _this$props10.height,
441
+ windowProps = _this$props10.windowProps,
442
+ rowHeight = _this$props10.rowHeight,
443
+ activeOptionIndex = _this$props10.activeOptionIndex,
444
+ makeOptionId = _this$props10.makeOptionId,
445
+ showIcons = _this$props10.showIcons,
446
+ singleSelection = _this$props10.singleSelection,
447
+ visibleOptions = _this$props10.visibleOptions,
448
+ allowExclusions = _this$props10.allowExclusions,
449
+ bordered = _this$props10.bordered,
450
+ paddingSize = _this$props10.paddingSize,
451
+ searchable = _this$props10.searchable,
452
+ onFocusBadge = _this$props10.onFocusBadge,
453
+ listId = _this$props10.listId,
454
+ setActiveOptionIndex = _this$props10.setActiveOptionIndex,
455
+ ariaLabel = _this$props10['aria-label'],
456
+ ariaLabelledby = _this$props10['aria-labelledby'],
457
+ ariaDescribedby = _this$props10['aria-describedby'],
458
+ role = _this$props10.role,
459
+ isVirtualized = _this$props10.isVirtualized,
460
+ textWrap = _this$props10.textWrap,
461
+ truncationProps = _this$props10.truncationProps,
462
+ rest = _objectWithoutProperties(_this$props10, _excluded3);
340
463
  var classes = classNames('euiSelectableList', {
341
- 'euiSelectableList-fullHeight': heightIsFull,
464
+ 'euiSelectableList-fullHeight': forcedHeight === 'full',
342
465
  'euiSelectableList-bordered': bordered
343
466
  }, className);
344
467
  return ___EmotionJSX("div", _extends({
345
468
  className: classes
346
- }, rest), isVirtualized ? this.renderVirtualizedList(heightIsFull, optionArray) : ___EmotionJSX("div", {
469
+ }, rest), isVirtualized ? this.renderVirtualizedList() : ___EmotionJSX("div", {
347
470
  className: "euiSelectableList__list",
348
471
  ref: this.removeScrollableTabStop
349
472
  }, ___EmotionJSX("ul", {
350
473
  ref: this.setListBoxRef
351
- }, optionArray.map(function (_, index) {
474
+ }, this.state.optionArray.map(function (_, index) {
352
475
  return /*#__PURE__*/React.createElement(_this2.ListRow, {
353
476
  key: index,
354
- data: optionArray,
477
+ data: _this2.state.optionArray,
355
478
  index: index
356
479
  }, null);
357
480
  }))));