@elastic/eui 114.3.0 → 116.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. package/es/components/basic_table/basic_table.js +3 -6
  2. package/es/components/basic_table/collapsed_item_actions.js +1 -3
  3. package/es/components/basic_table/default_item_action.js +0 -1
  4. package/es/components/basic_table/in_memory_table.js +3 -6
  5. package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  6. package/es/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  7. package/es/components/color_picker/color_picker_swatch.js +1 -2
  8. package/es/components/combo_box/combo_box.a11y.js +5 -5
  9. package/es/components/combo_box/combo_box.js +61 -53
  10. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +147 -84
  11. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +8 -7
  12. package/es/components/context_menu/context_menu.js +19 -21
  13. package/es/components/context_menu/context_menu.styles.js +5 -2
  14. package/es/components/context_menu/context_menu_item.js +69 -58
  15. package/es/components/context_menu/context_menu_item.styles.js +14 -28
  16. package/es/components/context_menu/context_menu_panel.js +37 -21
  17. package/es/components/context_menu/context_menu_panel.styles.js +7 -2
  18. package/es/components/context_menu/context_menu_panel_title.js +124 -0
  19. package/es/components/context_menu/context_menu_panel_title.styles.js +20 -0
  20. package/es/components/context_menu/index.js +2 -1
  21. package/es/components/datagrid/body/cell/data_grid_cell.js +35 -29
  22. package/es/components/datagrid/body/data_grid_body.js +23 -17
  23. package/es/components/datagrid/body/data_grid_body_custom.js +23 -17
  24. package/es/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  25. package/es/components/datagrid/body/header/column_actions.js +1 -2
  26. package/es/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  27. package/es/components/datagrid/controls/column_sorting.js +23 -17
  28. package/es/components/datagrid/controls/display_selector.js +1 -2
  29. package/es/components/datagrid/controls/fullscreen_selector.js +1 -2
  30. package/es/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  31. package/es/components/datagrid/utils/in_memory.js +23 -17
  32. package/es/components/filter_group/filter_group.a11y.js +8 -2
  33. package/es/components/filter_group/filter_select_item.js +36 -17
  34. package/es/components/flyout/flyout_menu.js +1 -4
  35. package/es/components/form/checkbox/checkbox.js +6 -6
  36. package/es/components/form/checkbox/checkbox.styles.js +1 -22
  37. package/es/components/form/checkbox/checkbox_control.js +78 -0
  38. package/es/components/form/checkbox/checkbox_control.styles.js +40 -0
  39. package/es/components/form/checkbox/index.js +1 -0
  40. package/es/components/form/form.styles.js +2 -1
  41. package/es/components/form/radio/radio.styles.js +1 -1
  42. package/es/components/form/super_select/super_select.js +118 -99
  43. package/es/components/form/super_select/super_select.styles.js +4 -8
  44. package/es/components/form/super_select/super_select_item.js +10 -18
  45. package/es/components/key_pad_menu/key_pad_menu_item.js +1 -2
  46. package/es/components/link/external_link_icon.js +4 -2
  47. package/es/components/list_group/list_group.js +20 -34
  48. package/es/components/list_group/list_group.styles.js +2 -16
  49. package/es/components/list_group/list_group_item.js +75 -87
  50. package/es/components/list_group/list_group_item.styles.js +17 -61
  51. package/es/components/list_group/list_group_item_extra_action.styles.js +6 -6
  52. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  53. package/es/components/list_item_layout/_list_item_layout.js +692 -0
  54. package/es/components/list_item_layout/_list_item_layout.styles.js +93 -0
  55. package/es/components/list_item_layout/index.js +9 -0
  56. package/es/components/markdown_editor/markdown_editor.js +1 -1
  57. package/es/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
  58. package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
  59. package/es/components/markdown_editor/markdown_editor_toolbar.js +14 -10
  60. package/es/components/portal/portal.js +72 -117
  61. package/es/components/search_bar/filters/field_value_selection_filter.js +2 -1
  62. package/es/components/search_bar/filters/field_value_toggle_group_filter.js +42 -91
  63. package/es/components/selectable/selectable.js +1 -0
  64. package/es/components/selectable/selectable_list/selectable_list.js +52 -36
  65. package/es/components/selectable/selectable_list/selectable_list.styles.js +19 -4
  66. package/es/components/selectable/selectable_list/selectable_list_item.js +45 -152
  67. package/es/components/selectable/selectable_list/utils/get_list_item_size.js +17 -0
  68. package/es/components/selectable/selectable_search/selectable_search.js +4 -1
  69. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  70. package/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  71. package/es/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  72. package/es/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  73. package/es/components/table/table_header_cell.js +1 -2
  74. package/es/components/tool_tip/icon_tip.js +4 -8
  75. package/es/components/tool_tip/tool_tip.js +233 -261
  76. package/es/components/tool_tip/tool_tip.styles.js +10 -18
  77. package/es/components/tool_tip/tool_tip_anchor.js +3 -3
  78. package/es/components/tool_tip/tool_tip_manager.js +1 -0
  79. package/es/components/tool_tip/tool_tip_popover.js +7 -7
  80. package/es/global_styling/mixins/_helpers.js +32 -11
  81. package/es/test/rtl/component_helpers.d.ts +0 -3
  82. package/es/test/rtl/component_helpers.js +40 -62
  83. package/eui.d.ts +10463 -8188
  84. package/i18ntokens.json +2607 -2589
  85. package/lib/components/basic_table/basic_table.js +3 -6
  86. package/lib/components/basic_table/collapsed_item_actions.js +1 -3
  87. package/lib/components/basic_table/default_item_action.js +0 -1
  88. package/lib/components/basic_table/in_memory_table.js +3 -6
  89. package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  90. package/lib/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  91. package/lib/components/color_picker/color_picker_swatch.js +1 -2
  92. package/lib/components/combo_box/combo_box.a11y.js +5 -5
  93. package/lib/components/combo_box/combo_box.js +61 -53
  94. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -82
  95. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  96. package/lib/components/context_menu/context_menu.js +20 -22
  97. package/lib/components/context_menu/context_menu.styles.js +4 -1
  98. package/lib/components/context_menu/context_menu_item.js +70 -59
  99. package/lib/components/context_menu/context_menu_item.styles.js +13 -27
  100. package/lib/components/context_menu/context_menu_panel.js +37 -21
  101. package/lib/components/context_menu/context_menu_panel.styles.js +7 -2
  102. package/lib/components/context_menu/context_menu_panel_title.js +130 -0
  103. package/lib/components/context_menu/context_menu_panel_title.styles.js +26 -0
  104. package/lib/components/context_menu/index.js +8 -1
  105. package/lib/components/datagrid/body/cell/data_grid_cell.js +35 -29
  106. package/lib/components/datagrid/body/data_grid_body.js +23 -17
  107. package/lib/components/datagrid/body/data_grid_body_custom.js +23 -17
  108. package/lib/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  109. package/lib/components/datagrid/body/header/column_actions.js +1 -2
  110. package/lib/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  111. package/lib/components/datagrid/controls/column_sorting.js +23 -17
  112. package/lib/components/datagrid/controls/display_selector.js +1 -2
  113. package/lib/components/datagrid/controls/fullscreen_selector.js +1 -2
  114. package/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  115. package/lib/components/datagrid/utils/in_memory.js +23 -17
  116. package/lib/components/filter_group/filter_group.a11y.js +8 -2
  117. package/lib/components/filter_group/filter_select_item.js +35 -16
  118. package/lib/components/flyout/flyout_menu.js +1 -4
  119. package/lib/components/form/checkbox/checkbox.js +6 -6
  120. package/lib/components/form/checkbox/checkbox.styles.js +1 -22
  121. package/lib/components/form/checkbox/checkbox_control.js +84 -0
  122. package/lib/components/form/checkbox/checkbox_control.styles.js +44 -0
  123. package/lib/components/form/checkbox/index.js +7 -0
  124. package/lib/components/form/form.styles.js +2 -1
  125. package/lib/components/form/radio/radio.styles.js +1 -1
  126. package/lib/components/form/super_select/super_select.js +116 -97
  127. package/lib/components/form/super_select/super_select.styles.js +4 -8
  128. package/lib/components/form/super_select/super_select_item.js +13 -18
  129. package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -2
  130. package/lib/components/link/external_link_icon.js +4 -2
  131. package/lib/components/list_group/list_group.js +21 -35
  132. package/lib/components/list_group/list_group.styles.js +2 -16
  133. package/lib/components/list_group/list_group_item.js +75 -87
  134. package/lib/components/list_group/list_group_item.styles.js +17 -61
  135. package/lib/components/list_group/list_group_item_extra_action.styles.js +5 -5
  136. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  137. package/lib/components/list_item_layout/_list_item_layout.js +699 -0
  138. package/lib/components/list_item_layout/_list_item_layout.styles.js +97 -0
  139. package/lib/components/list_item_layout/index.js +12 -0
  140. package/lib/components/markdown_editor/markdown_editor.js +1 -1
  141. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
  142. package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
  143. package/lib/components/markdown_editor/markdown_editor_toolbar.js +12 -10
  144. package/lib/components/portal/portal.js +73 -118
  145. package/lib/components/search_bar/filters/field_value_selection_filter.js +2 -1
  146. package/lib/components/search_bar/filters/field_value_toggle_group_filter.js +44 -93
  147. package/lib/components/selectable/selectable.js +1 -0
  148. package/lib/components/selectable/selectable_list/selectable_list.js +50 -34
  149. package/lib/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  150. package/lib/components/selectable/selectable_list/selectable_list_item.js +44 -152
  151. package/lib/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  152. package/lib/components/selectable/selectable_search/selectable_search.js +4 -1
  153. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  154. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  155. package/lib/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  156. package/lib/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  157. package/lib/components/table/table_header_cell.js +1 -2
  158. package/lib/components/tool_tip/icon_tip.js +4 -8
  159. package/lib/components/tool_tip/tool_tip.js +240 -266
  160. package/lib/components/tool_tip/tool_tip.styles.js +8 -16
  161. package/lib/components/tool_tip/tool_tip_anchor.js +2 -2
  162. package/lib/components/tool_tip/tool_tip_manager.js +1 -0
  163. package/lib/components/tool_tip/tool_tip_popover.js +6 -6
  164. package/lib/global_styling/mixins/_helpers.js +33 -12
  165. package/lib/test/rtl/component_helpers.d.ts +0 -3
  166. package/lib/test/rtl/component_helpers.js +41 -63
  167. package/optimize/es/components/basic_table/collapsed_item_actions.js +1 -3
  168. package/optimize/es/components/basic_table/default_item_action.js +0 -1
  169. package/optimize/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -4
  170. package/optimize/es/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  171. package/optimize/es/components/combo_box/combo_box.a11y.js +5 -5
  172. package/optimize/es/components/combo_box/combo_box.js +60 -52
  173. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -83
  174. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +8 -7
  175. package/optimize/es/components/context_menu/context_menu.js +18 -13
  176. package/optimize/es/components/context_menu/context_menu.styles.js +5 -2
  177. package/optimize/es/components/context_menu/context_menu_item.js +55 -53
  178. package/optimize/es/components/context_menu/context_menu_item.styles.js +14 -28
  179. package/optimize/es/components/context_menu/context_menu_panel.js +36 -17
  180. package/optimize/es/components/context_menu/context_menu_panel.styles.js +7 -2
  181. package/optimize/es/components/context_menu/context_menu_panel_title.js +53 -0
  182. package/optimize/es/components/context_menu/context_menu_panel_title.styles.js +20 -0
  183. package/optimize/es/components/context_menu/index.js +2 -1
  184. package/optimize/es/components/datagrid/body/header/column_actions.js +1 -2
  185. package/optimize/es/components/datagrid/controls/display_selector.js +1 -2
  186. package/optimize/es/components/datagrid/controls/fullscreen_selector.js +1 -2
  187. package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  188. package/optimize/es/components/filter_group/filter_group.a11y.js +8 -2
  189. package/optimize/es/components/filter_group/filter_select_item.js +36 -17
  190. package/optimize/es/components/flyout/flyout_menu.js +1 -4
  191. package/optimize/es/components/form/checkbox/checkbox.js +6 -6
  192. package/optimize/es/components/form/checkbox/checkbox.styles.js +1 -22
  193. package/optimize/es/components/form/checkbox/checkbox_control.js +48 -0
  194. package/optimize/es/components/form/checkbox/checkbox_control.styles.js +40 -0
  195. package/optimize/es/components/form/checkbox/index.js +1 -0
  196. package/optimize/es/components/form/form.styles.js +2 -1
  197. package/optimize/es/components/form/radio/radio.styles.js +1 -1
  198. package/optimize/es/components/form/super_select/super_select.js +118 -90
  199. package/optimize/es/components/form/super_select/super_select.styles.js +4 -8
  200. package/optimize/es/components/form/super_select/super_select_item.js +10 -14
  201. package/optimize/es/components/key_pad_menu/key_pad_menu_item.js +1 -2
  202. package/optimize/es/components/link/external_link_icon.js +4 -2
  203. package/optimize/es/components/list_group/list_group.js +7 -14
  204. package/optimize/es/components/list_group/list_group.styles.js +2 -16
  205. package/optimize/es/components/list_group/list_group_item.js +62 -80
  206. package/optimize/es/components/list_group/list_group_item.styles.js +17 -61
  207. package/optimize/es/components/list_group/list_group_item_extra_action.styles.js +6 -6
  208. package/optimize/es/components/list_item_layout/_list_item_layout.js +353 -0
  209. package/optimize/es/components/list_item_layout/_list_item_layout.styles.js +93 -0
  210. package/optimize/es/components/list_item_layout/index.js +9 -0
  211. package/optimize/es/components/markdown_editor/markdown_editor_drop_zone.js +5 -2
  212. package/optimize/es/components/markdown_editor/markdown_editor_toolbar.js +13 -9
  213. package/optimize/es/components/portal/portal.js +65 -91
  214. package/optimize/es/components/search_bar/filters/field_value_selection_filter.js +2 -1
  215. package/optimize/es/components/search_bar/filters/field_value_toggle_group_filter.js +43 -66
  216. package/optimize/es/components/selectable/selectable_list/selectable_list.js +48 -33
  217. package/optimize/es/components/selectable/selectable_list/selectable_list.styles.js +19 -4
  218. package/optimize/es/components/selectable/selectable_list/selectable_list_item.js +41 -143
  219. package/optimize/es/components/selectable/selectable_list/utils/get_list_item_size.js +17 -0
  220. package/optimize/es/components/selectable/selectable_search/selectable_search.js +4 -1
  221. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  222. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  223. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  224. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  225. package/optimize/es/components/tool_tip/icon_tip.js +3 -5
  226. package/optimize/es/components/tool_tip/tool_tip.js +227 -250
  227. package/optimize/es/components/tool_tip/tool_tip.styles.js +10 -18
  228. package/optimize/es/components/tool_tip/tool_tip_anchor.js +3 -3
  229. package/optimize/es/components/tool_tip/tool_tip_manager.js +1 -0
  230. package/optimize/es/components/tool_tip/tool_tip_popover.js +7 -7
  231. package/optimize/es/global_styling/mixins/_helpers.js +32 -11
  232. package/optimize/es/test/rtl/component_helpers.d.ts +0 -3
  233. package/optimize/es/test/rtl/component_helpers.js +40 -62
  234. package/optimize/lib/components/basic_table/collapsed_item_actions.js +1 -3
  235. package/optimize/lib/components/basic_table/default_item_action.js +0 -1
  236. package/optimize/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -4
  237. package/optimize/lib/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  238. package/optimize/lib/components/combo_box/combo_box.a11y.js +5 -5
  239. package/optimize/lib/components/combo_box/combo_box.js +60 -52
  240. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +143 -81
  241. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  242. package/optimize/lib/components/context_menu/context_menu.js +19 -14
  243. package/optimize/lib/components/context_menu/context_menu.styles.js +4 -1
  244. package/optimize/lib/components/context_menu/context_menu_item.js +56 -54
  245. package/optimize/lib/components/context_menu/context_menu_item.styles.js +13 -27
  246. package/optimize/lib/components/context_menu/context_menu_panel.js +36 -17
  247. package/optimize/lib/components/context_menu/context_menu_panel.styles.js +7 -2
  248. package/optimize/lib/components/context_menu/context_menu_panel_title.js +59 -0
  249. package/optimize/lib/components/context_menu/context_menu_panel_title.styles.js +26 -0
  250. package/optimize/lib/components/context_menu/index.js +8 -1
  251. package/optimize/lib/components/datagrid/body/header/column_actions.js +1 -2
  252. package/optimize/lib/components/datagrid/controls/display_selector.js +1 -2
  253. package/optimize/lib/components/datagrid/controls/fullscreen_selector.js +1 -2
  254. package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  255. package/optimize/lib/components/filter_group/filter_group.a11y.js +8 -2
  256. package/optimize/lib/components/filter_group/filter_select_item.js +35 -16
  257. package/optimize/lib/components/flyout/flyout_menu.js +1 -4
  258. package/optimize/lib/components/form/checkbox/checkbox.js +6 -6
  259. package/optimize/lib/components/form/checkbox/checkbox.styles.js +1 -22
  260. package/optimize/lib/components/form/checkbox/checkbox_control.js +54 -0
  261. package/optimize/lib/components/form/checkbox/checkbox_control.styles.js +44 -0
  262. package/optimize/lib/components/form/checkbox/index.js +7 -0
  263. package/optimize/lib/components/form/form.styles.js +2 -1
  264. package/optimize/lib/components/form/radio/radio.styles.js +1 -1
  265. package/optimize/lib/components/form/super_select/super_select.js +116 -88
  266. package/optimize/lib/components/form/super_select/super_select.styles.js +4 -8
  267. package/optimize/lib/components/form/super_select/super_select_item.js +13 -14
  268. package/optimize/lib/components/key_pad_menu/key_pad_menu_item.js +1 -2
  269. package/optimize/lib/components/link/external_link_icon.js +4 -2
  270. package/optimize/lib/components/list_group/list_group.js +8 -15
  271. package/optimize/lib/components/list_group/list_group.styles.js +2 -16
  272. package/optimize/lib/components/list_group/list_group_item.js +62 -80
  273. package/optimize/lib/components/list_group/list_group_item.styles.js +17 -61
  274. package/optimize/lib/components/list_group/list_group_item_extra_action.styles.js +5 -5
  275. package/optimize/lib/components/list_item_layout/_list_item_layout.js +361 -0
  276. package/optimize/lib/components/list_item_layout/_list_item_layout.styles.js +97 -0
  277. package/optimize/lib/components/list_item_layout/index.js +12 -0
  278. package/optimize/lib/components/markdown_editor/markdown_editor_drop_zone.js +5 -2
  279. package/optimize/lib/components/markdown_editor/markdown_editor_toolbar.js +13 -9
  280. package/optimize/lib/components/portal/portal.js +68 -93
  281. package/optimize/lib/components/search_bar/filters/field_value_selection_filter.js +2 -1
  282. package/optimize/lib/components/search_bar/filters/field_value_toggle_group_filter.js +45 -69
  283. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +46 -31
  284. package/optimize/lib/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  285. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.js +41 -143
  286. package/optimize/lib/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  287. package/optimize/lib/components/selectable/selectable_search/selectable_search.js +4 -1
  288. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  289. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  290. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  291. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  292. package/optimize/lib/components/tool_tip/icon_tip.js +3 -5
  293. package/optimize/lib/components/tool_tip/tool_tip.js +229 -251
  294. package/optimize/lib/components/tool_tip/tool_tip.styles.js +8 -16
  295. package/optimize/lib/components/tool_tip/tool_tip_anchor.js +2 -2
  296. package/optimize/lib/components/tool_tip/tool_tip_manager.js +1 -0
  297. package/optimize/lib/components/tool_tip/tool_tip_popover.js +6 -6
  298. package/optimize/lib/global_styling/mixins/_helpers.js +33 -12
  299. package/optimize/lib/test/rtl/component_helpers.d.ts +0 -3
  300. package/optimize/lib/test/rtl/component_helpers.js +41 -63
  301. package/package.json +5 -13
  302. package/test-env/components/basic_table/basic_table.js +3 -6
  303. package/test-env/components/basic_table/collapsed_item_actions.js +1 -3
  304. package/test-env/components/basic_table/default_item_action.js +0 -1
  305. package/test-env/components/basic_table/in_memory_table.js +3 -6
  306. package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  307. package/test-env/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  308. package/test-env/components/color_picker/color_picker_swatch.js +1 -2
  309. package/test-env/components/combo_box/combo_box.a11y.js +5 -5
  310. package/test-env/components/combo_box/combo_box.js +61 -53
  311. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -82
  312. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  313. package/test-env/components/context_menu/context_menu.js +20 -22
  314. package/test-env/components/context_menu/context_menu.styles.js +4 -1
  315. package/test-env/components/context_menu/context_menu_item.js +67 -59
  316. package/test-env/components/context_menu/context_menu_item.styles.js +13 -27
  317. package/test-env/components/context_menu/context_menu_panel.js +37 -21
  318. package/test-env/components/context_menu/context_menu_panel.styles.js +7 -2
  319. package/test-env/components/context_menu/context_menu_panel_title.js +129 -0
  320. package/test-env/components/context_menu/context_menu_panel_title.styles.js +26 -0
  321. package/test-env/components/context_menu/index.js +8 -1
  322. package/test-env/components/datagrid/body/cell/data_grid_cell.js +35 -29
  323. package/test-env/components/datagrid/body/data_grid_body.js +23 -17
  324. package/test-env/components/datagrid/body/data_grid_body_custom.js +23 -17
  325. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  326. package/test-env/components/datagrid/body/header/column_actions.js +1 -2
  327. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  328. package/test-env/components/datagrid/controls/column_sorting.js +23 -17
  329. package/test-env/components/datagrid/controls/display_selector.js +1 -2
  330. package/test-env/components/datagrid/controls/fullscreen_selector.js +1 -2
  331. package/test-env/components/datagrid/controls/keyboard_shortcuts.js +1 -2
  332. package/test-env/components/datagrid/utils/in_memory.js +23 -17
  333. package/test-env/components/filter_group/filter_group.a11y.js +8 -2
  334. package/test-env/components/filter_group/filter_select_item.js +35 -16
  335. package/test-env/components/flyout/flyout_menu.js +1 -4
  336. package/test-env/components/form/checkbox/checkbox.js +6 -6
  337. package/test-env/components/form/checkbox/checkbox.styles.js +1 -22
  338. package/test-env/components/form/checkbox/checkbox_control.js +83 -0
  339. package/test-env/components/form/checkbox/checkbox_control.styles.js +44 -0
  340. package/test-env/components/form/checkbox/index.js +7 -0
  341. package/test-env/components/form/form.styles.js +2 -1
  342. package/test-env/components/form/radio/radio.styles.js +1 -1
  343. package/test-env/components/form/super_select/super_select.js +116 -97
  344. package/test-env/components/form/super_select/super_select.styles.js +4 -8
  345. package/test-env/components/form/super_select/super_select_item.js +13 -18
  346. package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -2
  347. package/test-env/components/link/external_link_icon.js +4 -2
  348. package/test-env/components/list_group/list_group.js +21 -35
  349. package/test-env/components/list_group/list_group.styles.js +2 -16
  350. package/test-env/components/list_group/list_group_item.js +75 -87
  351. package/test-env/components/list_group/list_group_item.styles.js +17 -61
  352. package/test-env/components/list_group/list_group_item_extra_action.styles.js +5 -5
  353. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  354. package/test-env/components/list_item_layout/_list_item_layout.js +691 -0
  355. package/test-env/components/list_item_layout/_list_item_layout.styles.js +97 -0
  356. package/test-env/components/list_item_layout/index.js +12 -0
  357. package/test-env/components/markdown_editor/markdown_editor.js +1 -1
  358. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +6 -3
  359. package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
  360. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +14 -10
  361. package/test-env/components/portal/portal.js +70 -113
  362. package/test-env/components/search_bar/filters/field_value_selection_filter.js +2 -1
  363. package/test-env/components/search_bar/filters/field_value_toggle_group_filter.js +44 -88
  364. package/test-env/components/selectable/selectable.js +1 -0
  365. package/test-env/components/selectable/selectable_list/selectable_list.js +50 -34
  366. package/test-env/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  367. package/test-env/components/selectable/selectable_list/selectable_list_item.js +42 -147
  368. package/test-env/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  369. package/test-env/components/selectable/selectable_search/selectable_search.js +4 -1
  370. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  371. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  372. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  373. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  374. package/test-env/components/table/table_header_cell.js +1 -2
  375. package/test-env/components/tool_tip/icon_tip.js +4 -8
  376. package/test-env/components/tool_tip/tool_tip.js +230 -256
  377. package/test-env/components/tool_tip/tool_tip.styles.js +8 -16
  378. package/test-env/components/tool_tip/tool_tip_anchor.js +2 -2
  379. package/test-env/components/tool_tip/tool_tip_manager.js +1 -0
  380. package/test-env/components/tool_tip/tool_tip_popover.js +6 -6
  381. package/test-env/global_styling/mixins/_helpers.js +33 -12
  382. package/test-env/test/rtl/component_helpers.js +41 -63
  383. package/es/components/selectable/selectable_list/selectable_list_item.styles.js +0 -55
  384. package/lib/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
  385. package/optimize/es/components/selectable/selectable_list/selectable_list_item.styles.js +0 -55
  386. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
  387. package/test-env/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
@@ -0,0 +1,692 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _excluded = ["children", "element", "wrapperElement", "className", "css", "role", "prepend", "append", "extraAction", "wrapperProps", "contentProps", "prependProps", "appendProps", "textProps", "tooltipProps", "checked", "isDisabled", "hasAriaDisabled", "isFocused", "isSelected", "isSingleSelection", "selectionMode", "showIndicator", "textWrap", "external", "aria-describedby", "aria-selected", "aria-checked", "data-test-subj", "onClick"],
3
+ _excluded2 = ["href", "target", "rel"],
4
+ _excluded3 = ["ref"];
5
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
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; }
8
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
9
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
10
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
12
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
14
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
15
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
16
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
17
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
18
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
19
+ /*
20
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
21
+ * or more contributor license agreements. Licensed under the Elastic License
22
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
23
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
24
+ * Side Public License, v 1.
25
+ */
26
+
27
+ import React, { forwardRef, useEffect, useMemo, useState } from 'react';
28
+ // @ts-ignore module doesn't export `createElement`
29
+ import PropTypes from "prop-types";
30
+ import { createElement } from '@emotion/react';
31
+ import classNames from 'classnames';
32
+ import { useCombinedRefs, useEuiDisabledElement, useEuiMemoizedStyles } from '../../services';
33
+ import { euiListItemLayoutStyles, euiListItemLayoutWrapperStyles } from './_list_item_layout.styles';
34
+ import { EuiToolTip } from '../tool_tip';
35
+ import { EuiCheckboxControl } from '../form';
36
+ import { EuiIcon } from '../icon';
37
+ import { isButtonDisabled } from '../button/button_display/_button_display';
38
+ import { EuiExternalLinkIcon } from '../link/external_link_icon';
39
+ import { jsx as ___EmotionJSX } from "@emotion/react";
40
+ export var OPTION_CHECKED_STATES = ['on', 'off', 'mixed', undefined];
41
+ var NATIVELY_CHECKABLE_ROLES = ['checkbox', 'menuitemcheckbox', 'radio', 'menuitemradio', 'switch'];
42
+ var ROLES_THAT_CAN_BE_MIXED = ['option', 'checkbox', 'menuitemcheckbox'];
43
+ var ROLES_THAT_CAN_USE_ARIA_CHECKED = ['option'].concat(NATIVELY_CHECKABLE_ROLES);
44
+ var ROLES_THAT_CAN_USE_ARIA_SELECTED = ['tab', 'gridcell', 'option', 'row', 'treeitem'];
45
+
46
+ // Ensure an exclusive union of either li, div, button, or anchor
47
+
48
+ /**
49
+ * This is an EUI internal-only layout component that is used to share layout and
50
+ * styles between selection and navigational list components.
51
+ */
52
+ export var EuiListItemLayout = /*#__PURE__*/forwardRef(function (_ref, ref) {
53
+ var _tooltipProps$anchorP;
54
+ var _children = _ref.children,
55
+ _ref$element = _ref.element,
56
+ _element = _ref$element === void 0 ? 'li' : _ref$element,
57
+ wrapperElement = _ref.wrapperElement,
58
+ className = _ref.className,
59
+ css = _ref.css,
60
+ role = _ref.role,
61
+ _prepend = _ref.prepend,
62
+ _append = _ref.append,
63
+ extraAction = _ref.extraAction,
64
+ _wrapperProps = _ref.wrapperProps,
65
+ _contentProps = _ref.contentProps,
66
+ _prependProps = _ref.prependProps,
67
+ _appendProps = _ref.appendProps,
68
+ _textProps = _ref.textProps,
69
+ _tooltipProps = _ref.tooltipProps,
70
+ checked = _ref.checked,
71
+ isDisabled = _ref.isDisabled,
72
+ _ref$hasAriaDisabled = _ref.hasAriaDisabled,
73
+ hasAriaDisabled = _ref$hasAriaDisabled === void 0 ? false : _ref$hasAriaDisabled,
74
+ isFocused = _ref.isFocused,
75
+ isSelected = _ref.isSelected,
76
+ _ref$isSingleSelectio = _ref.isSingleSelection,
77
+ isSingleSelection = _ref$isSingleSelectio === void 0 ? true : _ref$isSingleSelectio,
78
+ _selectionMode = _ref.selectionMode,
79
+ _ref$showIndicator = _ref.showIndicator,
80
+ showIndicator = _ref$showIndicator === void 0 ? true : _ref$showIndicator,
81
+ _ref$textWrap = _ref.textWrap,
82
+ textWrap = _ref$textWrap === void 0 ? 'truncate' : _ref$textWrap,
83
+ external = _ref.external,
84
+ _ariaDescribedBy = _ref['aria-describedby'],
85
+ _ariaSelected = _ref['aria-selected'],
86
+ _ariaChecked = _ref['aria-checked'],
87
+ _ref$dataTestSubj = _ref['data-test-subj'],
88
+ dataTestSubj = _ref$dataTestSubj === void 0 ? 'euiListItemLayout' : _ref$dataTestSubj,
89
+ onClick = _ref.onClick,
90
+ props = _objectWithoutProperties(_ref, _excluded);
91
+ var _useState = useState(null),
92
+ _useState2 = _slicedToArray(_useState, 2),
93
+ tooltipRef = _useState2[0],
94
+ setTooltipRef = _useState2[1]; // Needs to be state and not a ref to trigger useEffect
95
+ var _useState3 = useState(_ariaDescribedBy),
96
+ _useState4 = _slicedToArray(_useState3, 2),
97
+ ariaDescribedBy = _useState4[0],
98
+ setAriaDescribedBy = _useState4[1];
99
+ var _ref2 = props,
100
+ href = _ref2.href,
101
+ target = _ref2.target,
102
+ rel = _ref2.rel,
103
+ rest = _objectWithoutProperties(_ref2, _excluded2);
104
+ var component = _element === 'a' && isDisabled ? 'button' : _element;
105
+ var isLink = component === 'a' && !isDisabled;
106
+ var buttonIsDisabled = isButtonDisabled({
107
+ href: href,
108
+ isDisabled: component === 'button' && isDisabled
109
+ });
110
+ var _useEuiDisabledElemen = useEuiDisabledElement({
111
+ isDisabled: buttonIsDisabled,
112
+ hasAriaDisabled: hasAriaDisabled,
113
+ onKeyDown: rest.onKeyDown
114
+ }),
115
+ disabledRef = _useEuiDisabledElemen.ref,
116
+ disabledButtonProps = _objectWithoutProperties(_useEuiDisabledElemen, _excluded3);
117
+ var setCombinedRef = useCombinedRefs(useMemo(function () {
118
+ return [disabledRef, ref];
119
+ }, [disabledRef, ref]));
120
+ var hasToolTip = !!_tooltipProps;
121
+ var isNonInteractiveComponent = ['li', 'div'].includes(component);
122
+ var isInteractiveComponent = ['button', 'a'].includes(component) || ['button', 'link'].includes(role !== null && role !== void 0 ? role : '');
123
+ var isInteractive = isInteractiveComponent || !!onClick;
124
+ /* Multi-action: component is interactive (button/a) and has an additional action passed via `extraAction`,
125
+ which requires to not nest interactive elements. The wrapper is the outermost styled container and owns
126
+ hover/focus/selected styles.
127
+ Single-action: component (li/div) is the outermost element and owns all styles. */
128
+ var isMultiAction = extraAction != null && isInteractiveComponent;
129
+ var WrapperElement = isMultiAction ? wrapperElement !== null && wrapperElement !== void 0 ? wrapperElement : 'li' : isInteractiveComponent ? wrapperElement : undefined;
130
+ var hasWrapper = WrapperElement != null;
131
+
132
+ // aria-checked is intended to be used with role="checkbox" but
133
+ // the MDN documentation lists it as a possibility for role="option".
134
+ // See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-checked
135
+ // and https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/option_role
136
+ var ariaChecked = useMemo(function () {
137
+ if (!role) return undefined;
138
+ if (!ROLES_THAT_CAN_USE_ARIA_CHECKED.includes(role)) return undefined;
139
+ switch (checked) {
140
+ case 'on':
141
+ case 'off':
142
+ return true;
143
+ case 'mixed':
144
+ if (ROLES_THAT_CAN_BE_MIXED.includes(role)) {
145
+ return 'mixed';
146
+ } else {
147
+ return false;
148
+ }
149
+ default:
150
+ return _ariaChecked !== null && _ariaChecked !== void 0 ? _ariaChecked : false;
151
+ }
152
+ }, [role, checked, _ariaChecked]);
153
+ var defaultSelectionMode = useMemo(function () {
154
+ if (!isSingleSelection) {
155
+ return 'checked';
156
+ }
157
+ if (role && NATIVELY_CHECKABLE_ROLES.includes(role)) {
158
+ return 'checked';
159
+ }
160
+ return 'selected';
161
+ }, [isSingleSelection, role]);
162
+ var selectionMode = _selectionMode !== null && _selectionMode !== void 0 ? _selectionMode : defaultSelectionMode;
163
+ var hasAriaChecked = (selectionMode === 'checked' ? ariaChecked : undefined) !== undefined;
164
+ var hasAriaSelected = ROLES_THAT_CAN_USE_ARIA_SELECTED.includes(role !== null && role !== void 0 ? role : '');
165
+ var hasCustomAriaSelected = _ariaSelected != null;
166
+
167
+ /* Styles */
168
+
169
+ var wrapperClasses = classNames('euiListItemLayout__wrapper', _wrapperProps === null || _wrapperProps === void 0 ? void 0 : _wrapperProps.className);
170
+ var classes = classNames('euiListItemLayout', className);
171
+ var wrapperStyles = useEuiMemoizedStyles(euiListItemLayoutWrapperStyles);
172
+ var styles = useEuiMemoizedStyles(euiListItemLayoutStyles);
173
+ var interactiveStyles = [isInteractive && styles.isInteractive, isFocused && styles.isFocused, (isSingleSelection || !showIndicator) && isSelected && styles.isSelected, (isSingleSelection || !showIndicator) && isSelected && isFocused && styles.isSelectedFocused];
174
+ var wrapperCssStyles = [wrapperStyles.euiListItemLayout__wrapper, extraAction && wrapperStyles.hasExtraAction, !isDisabled && hasWrapper && interactiveStyles, hasWrapper && css, isDisabled && hasWrapper && styles.isDisabled];
175
+ var cssStyles = [styles.euiListItemLayout, hasWrapper && styles.euiListItemLayout__action, !isDisabled && !hasWrapper && interactiveStyles, !hasWrapper && css, isDisabled && styles.isDisabled, hasAriaDisabled && buttonIsDisabled && hasToolTip && styles.buttonIsDisabled];
176
+
177
+ // Manually trigger the tooltip on keyboard focus
178
+ useEffect(function () {
179
+ if (!tooltipRef || isFocused == null || !hasAriaDisabled && isDisabled) {
180
+ return;
181
+ }
182
+ if (isFocused) {
183
+ tooltipRef.showToolTip();
184
+ } else {
185
+ tooltipRef.hideToolTip();
186
+ }
187
+ }, [isFocused, isDisabled, hasAriaDisabled, tooltipRef]);
188
+
189
+ /* Props */
190
+
191
+ // Manually set the `aria-describedby` id on the wrapper
192
+ useEffect(function () {
193
+ if (tooltipRef) {
194
+ var tooltipId = tooltipRef.id;
195
+ setAriaDescribedBy(classNames(tooltipId, _ariaDescribedBy));
196
+ }
197
+ }, [tooltipRef, _ariaDescribedBy]);
198
+ var contentProps = useMemo(function () {
199
+ return _objectSpread(_objectSpread({}, _contentProps), {}, {
200
+ css: [styles.euiListItemLayout__content, _contentProps === null || _contentProps === void 0 ? void 0 : _contentProps.css],
201
+ className: classNames('euiListItemLayout__content', _contentProps === null || _contentProps === void 0 ? void 0 : _contentProps.className)
202
+ });
203
+ }, [_contentProps, styles]);
204
+ var textProps = useMemo(function () {
205
+ return _objectSpread(_objectSpread({}, _textProps), {}, {
206
+ css: [styles.euiListItemLayout__text, styles.textWrap[textWrap], _textProps === null || _textProps === void 0 ? void 0 : _textProps.css],
207
+ className: classNames('euiListItemLayout__text', _textProps === null || _textProps === void 0 ? void 0 : _textProps.className)
208
+ });
209
+ }, [_textProps, textWrap, styles]);
210
+
211
+ /**
212
+ * ARIA selection attribute appliance:
213
+ * - multi-selection + checkable role -> `aria-checked`
214
+ * - multi-selection + non-checkable, selectable role -> `aria-selected`
215
+ * - multi-selection + non-checkable, non-selectable role -> `aria-current`
216
+ * - single-selection + checkable role -> `aria-checked`
217
+ * - single-selection + non-checkable, selectable role -> `aria-selected`
218
+ * - single-selection + non-checkable, non-selectable role -> `aria-current`
219
+ */
220
+
221
+ // added to selection list items only (`component=li/div`)
222
+ var selectionProps = isNonInteractiveComponent && !isInteractiveComponent ? {
223
+ role: role,
224
+ 'aria-checked': hasAriaChecked ? ariaChecked : undefined,
225
+ 'aria-selected': !hasAriaChecked && hasAriaSelected ? isSelected : undefined,
226
+ 'aria-current': !hasAriaChecked && !hasAriaSelected && isSelected ? 'true' : undefined
227
+ } : {};
228
+
229
+ // added to navigational list items only (`component=button/a`)
230
+ var navigationalProps = isInteractiveComponent ? {
231
+ /* supports aria-checked as custom `role` can enable checked states */
232
+ 'aria-checked': hasAriaChecked ? ariaChecked : undefined,
233
+ 'aria-current': !hasAriaChecked && !hasCustomAriaSelected && isSelected ? 'true' : undefined,
234
+ // indicates currently active navigation item
235
+ /* allow manual `aria-selected` overrides; By default a list of navigational elements likely uses `aria-current` but using
236
+ a button with appropriate `role` within a selection list could still be valid, though weird (e.g. custom EuiSuperSelect) */
237
+ 'aria-selected': !hasAriaChecked && hasCustomAriaSelected ? isSelected : undefined // indicates current selected item
238
+ } : {};
239
+ var linkProps = ['a'].includes(component) && !isDisabled ? {
240
+ href: href,
241
+ target: target,
242
+ rel: rel
243
+ } : {};
244
+ var disabledProps = isDisabled ? buttonIsDisabled ? disabledButtonProps : {
245
+ disabled: component === 'button' ? isDisabled : undefined,
246
+ 'aria-disabled': component !== 'button' ? isDisabled : undefined
247
+ } : {};
248
+ var wrapperProps = _objectSpread(_objectSpread({
249
+ 'data-test-subj': "".concat(dataTestSubj, "-wrapper")
250
+ }, _wrapperProps), {}, {
251
+ className: wrapperClasses,
252
+ css: [wrapperCssStyles, _wrapperProps === null || _wrapperProps === void 0 ? void 0 : _wrapperProps.css]
253
+ });
254
+ var tooltipProps = _objectSpread(_objectSpread({}, _tooltipProps), {}, {
255
+ anchorProps: _objectSpread(_objectSpread({}, _tooltipProps === null || _tooltipProps === void 0 ? void 0 : _tooltipProps.anchorProps), {}, {
256
+ css: [isDisabled && styles.tooltip.isDisabled, _tooltipProps === null || _tooltipProps === void 0 || (_tooltipProps$anchorP = _tooltipProps.anchorProps) === null || _tooltipProps$anchorP === void 0 ? void 0 : _tooltipProps$anchorP.css]
257
+ })
258
+ });
259
+ var hasInternalTooltip = isNonInteractiveComponent && hasToolTip;
260
+ var elementProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
261
+ ref: setCombinedRef,
262
+ role: role,
263
+ className: classes,
264
+ css: cssStyles
265
+ }, selectionProps), navigationalProps), linkProps), disabledProps), {}, _defineProperty(_defineProperty(_defineProperty({}, 'aria-describedby', hasInternalTooltip ? ariaDescribedBy : _ariaDescribedBy), 'data-test-subj', dataTestSubj), "onClick", onClick), rest);
266
+
267
+ /* Render nodes */
268
+
269
+ var indicator = useMemo(function () {
270
+ if (showIndicator) {
271
+ if (!isSingleSelection) {
272
+ return ___EmotionJSX(EuiCheckboxControl, {
273
+ className: "euiListItemLayout__checkbox",
274
+ checked: checked === 'on',
275
+ disabled: isDisabled,
276
+ indeterminate: checked === 'mixed',
277
+ excluded: checked === 'off'
278
+ });
279
+ }
280
+ var _resolveIconAndColor = resolveIconAndColor(checked, isSelected, isDisabled),
281
+ icon = _resolveIconAndColor.icon,
282
+ color = _resolveIconAndColor.color;
283
+ return ___EmotionJSX(EuiIcon, {
284
+ css: styles.euiListItemLayout__icon,
285
+ className: "euiListItemLayout__icon",
286
+ color: color,
287
+ type: icon
288
+ });
289
+ }
290
+ }, [checked, isSingleSelection, showIndicator, isSelected, isDisabled, styles]);
291
+ var prepend = useMemo(function () {
292
+ if (_prepend) {
293
+ var prependProps = _objectSpread(_objectSpread({}, _prependProps), {}, {
294
+ css: [styles.euiListItemLayout__prepend, _prependProps === null || _prependProps === void 0 ? void 0 : _prependProps.css],
295
+ className: classNames('euiListItemLayout__prepend', _prependProps === null || _prependProps === void 0 ? void 0 : _prependProps.className)
296
+ });
297
+ return ___EmotionJSX("span", prependProps, _prepend);
298
+ }
299
+ }, [_prepend, _prependProps, styles]);
300
+ var append = useMemo(function () {
301
+ if (_append) {
302
+ var appendProps = _objectSpread(_objectSpread({}, _appendProps), {}, {
303
+ css: [styles.euiListItemLayout__append, _appendProps === null || _appendProps === void 0 ? void 0 : _appendProps.css],
304
+ className: classNames('euiListItemLayout__append', _appendProps === null || _appendProps === void 0 ? void 0 : _appendProps.className)
305
+ });
306
+ return ___EmotionJSX("span", appendProps, _append);
307
+ }
308
+ }, [_append, _appendProps, styles]);
309
+ var innerContent = ___EmotionJSX("span", contentProps, indicator, prepend, ___EmotionJSX("span", textProps, _children, isLink && ___EmotionJSX(EuiExternalLinkIcon, {
310
+ css: styles.externalIcon,
311
+ external: external,
312
+ target: target,
313
+ size: "m"
314
+ })), append, !isMultiAction && extraAction);
315
+ /* for non interactive elements, specifically semantic li we need to
316
+ ensure that the li is the outer element to be a valid child of a wrapping ul */
317
+ var content = hasInternalTooltip ? ___EmotionJSX(EuiToolTip, _extends({
318
+ ref: setTooltipRef,
319
+ content: tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.content,
320
+ anchorClassName: "eui-fullWidth"
321
+ }, tooltipProps), innerContent) : innerContent;
322
+
323
+ /* Uses `createElement` to side step having to specify element types. Since this is an
324
+ internal-only component and we're specifying separate types for each element, we can safely
325
+ assume the right props are passed at this point.
326
+ It uses the import from @emotion/react to ensure the `css` props works as in JSX. */
327
+ var innerElement = createElement(component, elementProps, content);
328
+ var element = !isNonInteractiveComponent && hasToolTip ? ___EmotionJSX(EuiToolTip, _extends({
329
+ ref: setTooltipRef,
330
+ content: tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.content,
331
+ anchorClassName: "eui-fullWidth"
332
+ }, tooltipProps), innerElement) : innerElement;
333
+ return WrapperElement ? ___EmotionJSX(WrapperElement, wrapperProps, element, isMultiAction && extraAction) : element;
334
+ });
335
+ EuiListItemLayout.propTypes = {
336
+ element: PropTypes.oneOfType([PropTypes.oneOf(["li"]).isRequired, PropTypes.oneOfType([PropTypes.oneOfType([PropTypes.oneOf(["button"]).isRequired, PropTypes.oneOf(["a"]).isRequired]).isRequired, PropTypes.oneOf(["div"]).isRequired]).isRequired]).isRequired,
337
+ className: PropTypes.string,
338
+ "aria-label": PropTypes.string,
339
+ "data-test-subj": PropTypes.string,
340
+ css: PropTypes.any,
341
+ /**
342
+ * Controls the disabled behavior via the native `disabled` attribute.
343
+ */
344
+ isDisabled: PropTypes.bool,
345
+ /**
346
+ * NOTE: Beta feature, may be changed or removed in the future
347
+ *
348
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
349
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
350
+ *
351
+ * Use e.g. when a disabled button should have a tooltip.
352
+ */
353
+ hasAriaDisabled: PropTypes.bool,
354
+ children: PropTypes.node,
355
+ /**
356
+ * Slot for prepended content (icons)
357
+ */
358
+ /**
359
+ * Slot for prepended content (icons)
360
+ */
361
+ /**
362
+ * Slot for prepended content (icons)
363
+ */
364
+ /**
365
+ * Slot for prepended content (icons)
366
+ */
367
+ prepend: PropTypes.node,
368
+ /**
369
+ * Slot for additional appended content (e.g. badges)
370
+ * Use extraAction instead for interactive elements.
371
+ */
372
+ /**
373
+ * Slot for additional appended content (e.g. badges)
374
+ * Use extraAction instead for interactive elements.
375
+ */
376
+ /**
377
+ * Slot for additional appended content (e.g. badges)
378
+ * Use extraAction instead for interactive elements.
379
+ */
380
+ /**
381
+ * Slot for additional appended content (e.g. badges)
382
+ * Use extraAction instead for interactive elements.
383
+ */
384
+ append: PropTypes.node,
385
+ /**
386
+ * Slot for additional interactive appended content (extra actions)
387
+ */
388
+ /**
389
+ * Slot for additional interactive appended content (extra actions)
390
+ */
391
+ /**
392
+ * Slot for additional interactive appended content (extra actions)
393
+ */
394
+ /**
395
+ * Slot for additional interactive appended content (extra actions)
396
+ */
397
+ extraAction: PropTypes.node,
398
+ /**
399
+ * Set to manually define the wrapping element for navigational items (`component=button/a`).
400
+ * This has no effect when `component=li/div`.
401
+ * @default 'li'
402
+ */
403
+ /**
404
+ * Set to manually define the wrapping element for navigational items (`component=button/a`).
405
+ * This has no effect when `component=li/div`.
406
+ * @default 'li'
407
+ */
408
+ /**
409
+ * Set to manually define the wrapping element for navigational items (`component=button/a`).
410
+ * This has no effect when `component=li/div`.
411
+ * @default 'li'
412
+ */
413
+ /**
414
+ * Set to manually define the wrapping element for navigational items (`component=button/a`).
415
+ * This has no effect when `component=li/div`.
416
+ * @default 'li'
417
+ */
418
+ wrapperElement: PropTypes.oneOf(["li", "div"]),
419
+ wrapperProps: PropTypes.shape({
420
+ className: PropTypes.string,
421
+ "aria-label": PropTypes.string,
422
+ "data-test-subj": PropTypes.string,
423
+ css: PropTypes.any
424
+ }),
425
+ contentProps: PropTypes.shape({
426
+ className: PropTypes.string,
427
+ "aria-label": PropTypes.string,
428
+ "data-test-subj": PropTypes.string,
429
+ css: PropTypes.any
430
+ }),
431
+ textProps: PropTypes.shape({
432
+ className: PropTypes.string,
433
+ "aria-label": PropTypes.string,
434
+ "data-test-subj": PropTypes.string,
435
+ css: PropTypes.any
436
+ }),
437
+ prependProps: PropTypes.shape({
438
+ className: PropTypes.string,
439
+ "aria-label": PropTypes.string,
440
+ "data-test-subj": PropTypes.string,
441
+ css: PropTypes.any
442
+ }),
443
+ appendProps: PropTypes.shape({
444
+ className: PropTypes.string,
445
+ "aria-label": PropTypes.string,
446
+ "data-test-subj": PropTypes.string,
447
+ css: PropTypes.any
448
+ }),
449
+ tooltipProps: PropTypes.any,
450
+ /**
451
+ * Controls the item checked indicator and applies a semantic `aria-checked` attribute.
452
+ * Ensure to pass an appropriate `role` for the item that supports semantic
453
+ * `checked` state. For no/other role(s) `checked` only controls the visual checked indicator.
454
+ *
455
+ * Leave `undefined` to indicate not selected. Pass a string of
456
+ * 'on' to indicate inclusion, 'off' to indicate exclusion,
457
+ * or 'mixed' to indicate inclusion for some.
458
+ *
459
+ * When using `singleSelection=true` it's expected to only use the values `on` or `undefined`
460
+ * to toggle between checked and not checked.
461
+ */
462
+ /**
463
+ * Controls the item checked indicator and applies a semantic `aria-checked` attribute.
464
+ * Ensure to pass an appropriate `role` for the item that supports semantic
465
+ * `checked` state. For no/other role(s) `checked` only controls the visual checked indicator.
466
+ *
467
+ * Leave `undefined` to indicate not selected. Pass a string of
468
+ * 'on' to indicate inclusion, 'off' to indicate exclusion,
469
+ * or 'mixed' to indicate inclusion for some.
470
+ *
471
+ * When using `singleSelection=true` it's expected to only use the values `on` or `undefined`
472
+ * to toggle between checked and not checked.
473
+ */
474
+ /**
475
+ * Controls the item checked indicator and applies a semantic `aria-checked` attribute.
476
+ * Ensure to pass an appropriate `role` for the item that supports semantic
477
+ * `checked` state. For no/other role(s) `checked` only controls the visual checked indicator.
478
+ *
479
+ * Leave `undefined` to indicate not selected. Pass a string of
480
+ * 'on' to indicate inclusion, 'off' to indicate exclusion,
481
+ * or 'mixed' to indicate inclusion for some.
482
+ *
483
+ * When using `singleSelection=true` it's expected to only use the values `on` or `undefined`
484
+ * to toggle between checked and not checked.
485
+ */
486
+ /**
487
+ * Controls the item checked indicator and applies a semantic `aria-checked` attribute.
488
+ * Ensure to pass an appropriate `role` for the item that supports semantic
489
+ * `checked` state. For no/other role(s) `checked` only controls the visual checked indicator.
490
+ *
491
+ * Leave `undefined` to indicate not selected. Pass a string of
492
+ * 'on' to indicate inclusion, 'off' to indicate exclusion,
493
+ * or 'mixed' to indicate inclusion for some.
494
+ *
495
+ * When using `singleSelection=true` it's expected to only use the values `on` or `undefined`
496
+ * to toggle between checked and not checked.
497
+ */
498
+ checked: PropTypes.any,
499
+ /**
500
+ * Controls the item selection state within a list (not the checked indicator).
501
+ * It applies an `aria-selected` or `aria-current` attributes depending on `component` and `role`.
502
+ * It adds a visual selected style when `isSingleSelection=true` or `showIndicator=false`.
503
+ */
504
+ /**
505
+ * Controls the item selection state within a list (not the checked indicator).
506
+ * It applies an `aria-selected` or `aria-current` attributes depending on `component` and `role`.
507
+ * It adds a visual selected style when `isSingleSelection=true` or `showIndicator=false`.
508
+ */
509
+ /**
510
+ * Controls the item selection state within a list (not the checked indicator).
511
+ * It applies an `aria-selected` or `aria-current` attributes depending on `component` and `role`.
512
+ * It adds a visual selected style when `isSingleSelection=true` or `showIndicator=false`.
513
+ */
514
+ /**
515
+ * Controls the item selection state within a list (not the checked indicator).
516
+ * It applies an `aria-selected` or `aria-current` attributes depending on `component` and `role`.
517
+ * It adds a visual selected style when `isSingleSelection=true` or `showIndicator=false`.
518
+ */
519
+ isSelected: PropTypes.bool,
520
+ /**
521
+ * Highlights the item as currently navigated item within a listbox.
522
+ * The item is not actually focused, it will only be styled as active.
523
+ */
524
+ /**
525
+ * Highlights the item as currently navigated item within a listbox.
526
+ * The item is not actually focused, it will only be styled as active.
527
+ */
528
+ /**
529
+ * Highlights the item as currently navigated item within a listbox.
530
+ * The item is not actually focused, it will only be styled as active.
531
+ */
532
+ /**
533
+ * Highlights the item as currently navigated item within a listbox.
534
+ * The item is not actually focused, it will only be styled as active.
535
+ */
536
+ isFocused: PropTypes.bool,
537
+ /**
538
+ * Toggles between multi-selection (renders checkbox indicators) and
539
+ * single-selection (renders icon indicators).
540
+ * @default true
541
+ */
542
+ /**
543
+ * Toggles between multi-selection (renders checkbox indicators) and
544
+ * single-selection (renders icon indicators).
545
+ * @default true
546
+ */
547
+ /**
548
+ * Toggles between multi-selection (renders checkbox indicators) and
549
+ * single-selection (renders icon indicators).
550
+ * @default true
551
+ */
552
+ /**
553
+ * Toggles between multi-selection (renders checkbox indicators) and
554
+ * single-selection (renders icon indicators).
555
+ * @default true
556
+ */
557
+ isSingleSelection: PropTypes.bool,
558
+ /**
559
+ * Manually overrides the selection type (checkbox vs selection) for checkable/selectable roles.
560
+ * This controls whether `aria-checked` or `aria-selected` attributes are set.
561
+ * For no `role` or unsupported roles, this has no effect and `aria-current` is applied.
562
+ *
563
+ * By default when unset, it's handled internally based on `isSingleSelection`
564
+ * and applies `aria-checked` to multi-selection and `aria-selected` to single-selection.
565
+ *
566
+ * Use only when you need to manually adjust this, e.g. for a single-selection
567
+ * multi-state checkbox item (supports exclusion or indeterminate).
568
+ */
569
+ /**
570
+ * Manually overrides the selection type (checkbox vs selection) for checkable/selectable roles.
571
+ * This controls whether `aria-checked` or `aria-selected` attributes are set.
572
+ * For no `role` or unsupported roles, this has no effect and `aria-current` is applied.
573
+ *
574
+ * By default when unset, it's handled internally based on `isSingleSelection`
575
+ * and applies `aria-checked` to multi-selection and `aria-selected` to single-selection.
576
+ *
577
+ * Use only when you need to manually adjust this, e.g. for a single-selection
578
+ * multi-state checkbox item (supports exclusion or indeterminate).
579
+ */
580
+ /**
581
+ * Manually overrides the selection type (checkbox vs selection) for checkable/selectable roles.
582
+ * This controls whether `aria-checked` or `aria-selected` attributes are set.
583
+ * For no `role` or unsupported roles, this has no effect and `aria-current` is applied.
584
+ *
585
+ * By default when unset, it's handled internally based on `isSingleSelection`
586
+ * and applies `aria-checked` to multi-selection and `aria-selected` to single-selection.
587
+ *
588
+ * Use only when you need to manually adjust this, e.g. for a single-selection
589
+ * multi-state checkbox item (supports exclusion or indeterminate).
590
+ */
591
+ /**
592
+ * Manually overrides the selection type (checkbox vs selection) for checkable/selectable roles.
593
+ * This controls whether `aria-checked` or `aria-selected` attributes are set.
594
+ * For no `role` or unsupported roles, this has no effect and `aria-current` is applied.
595
+ *
596
+ * By default when unset, it's handled internally based on `isSingleSelection`
597
+ * and applies `aria-checked` to multi-selection and `aria-selected` to single-selection.
598
+ *
599
+ * Use only when you need to manually adjust this, e.g. for a single-selection
600
+ * multi-state checkbox item (supports exclusion or indeterminate).
601
+ */
602
+ selectionMode: PropTypes.oneOf(["checked", "selected"]),
603
+ /**
604
+ * Controls the visibility of the indicator.
605
+ * @default true
606
+ */
607
+ /**
608
+ * Controls the visibility of the indicator.
609
+ * @default true
610
+ */
611
+ /**
612
+ * Controls the visibility of the indicator.
613
+ * @default true
614
+ */
615
+ /**
616
+ * Controls the visibility of the indicator.
617
+ * @default true
618
+ */
619
+ showIndicator: PropTypes.bool,
620
+ /**
621
+ * Native `role` attribute.
622
+ * If you pass a custom role make sure to align `selectionMode` where needed as well.
623
+ * Set it to `checked` when the role natively supports checked states and to `selected` otherwise.
624
+ */
625
+ /**
626
+ * Native `role` attribute.
627
+ * If you pass a custom role make sure to align `selectionMode` where needed as well.
628
+ * Set it to `checked` when the role natively supports checked states and to `selected` otherwise.
629
+ */
630
+ /**
631
+ * Native `role` attribute.
632
+ * If you pass a custom role make sure to align `selectionMode` where needed as well.
633
+ * Set it to `checked` when the role natively supports checked states and to `selected` otherwise.
634
+ */
635
+ /**
636
+ * Native `role` attribute.
637
+ * If you pass a custom role make sure to align `selectionMode` where needed as well.
638
+ * Set it to `checked` when the role natively supports checked states and to `selected` otherwise.
639
+ */
640
+ role: PropTypes.any,
641
+ /**
642
+ * How to handle long text within the item.
643
+ * @default 'truncate'
644
+ */
645
+ /**
646
+ * How to handle long text within the item.
647
+ * @default 'truncate'
648
+ */
649
+ /**
650
+ * How to handle long text within the item.
651
+ * @default 'truncate'
652
+ */
653
+ /**
654
+ * How to handle long text within the item.
655
+ * @default 'truncate'
656
+ */
657
+ textWrap: PropTypes.oneOf(["truncate", "wrap"]),
658
+ /**
659
+ * Set to true to show an icon indicating that it is an external link;
660
+ * Defaults to true if `target="_blank"`
661
+ */
662
+ external: PropTypes.bool
663
+ };
664
+ EuiListItemLayout.displayName = 'EuiListItemLayout';
665
+
666
+ /* Internal helpers */
667
+
668
+ function resolveIconAndColor(checked, isSelected, isDisabled) {
669
+ switch (checked) {
670
+ case 'on':
671
+ return {
672
+ icon: 'check',
673
+ color: isDisabled ? 'subdued' : isSelected ? 'primary' : 'text'
674
+ };
675
+ case 'off':
676
+ return {
677
+ icon: 'cross',
678
+ color: isDisabled ? 'subdued' : isSelected ? 'primary' : 'text'
679
+ };
680
+ case 'mixed':
681
+ return {
682
+ icon: 'minus',
683
+ color: isDisabled ? 'subdued' : isSelected ? 'primary' : 'text'
684
+ };
685
+ case undefined:
686
+ default:
687
+ return {
688
+ icon: 'empty',
689
+ color: isDisabled ? 'subdued' : 'text'
690
+ };
691
+ }
692
+ }