@elastic/eui 94.2.1 → 94.4.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 (450) hide show
  1. package/dist/eui_charts_theme.js +1519 -1519
  2. package/dist/eui_charts_theme.js.map +1 -1
  3. package/dist/eui_theme_dark.css +46 -499
  4. package/dist/eui_theme_dark.min.css +1 -1
  5. package/dist/eui_theme_light.css +46 -499
  6. package/dist/eui_theme_light.min.css +1 -1
  7. package/es/components/avatar/avatar.js +1 -1
  8. package/es/components/badge/badge.js +1 -1
  9. package/es/components/badge/beta_badge/beta_badge.js +1 -1
  10. package/es/components/basic_table/basic_table.js +1 -1
  11. package/es/components/basic_table/in_memory_table.js +1 -1
  12. package/es/components/button/button.js +1 -1
  13. package/es/components/button/button_display/_button_display.js +1 -1
  14. package/es/components/button/button_display/_button_display_content.js +1 -1
  15. package/es/components/button/button_empty/button_empty.js +1 -1
  16. package/es/components/button/button_group/button_group.js +1 -1
  17. package/es/components/button/button_group/button_group_button.js +1 -1
  18. package/es/components/button/button_icon/button_icon.js +1 -1
  19. package/es/components/call_out/call_out.js +1 -1
  20. package/es/components/card/card.js +2 -2
  21. package/es/components/card/card_select/card_select.js +1 -1
  22. package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  23. package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  24. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +6 -2
  25. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  26. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  27. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  28. package/es/components/combo_box/combo_box_input/combo_box_input.js +19 -1
  29. package/es/components/combo_box/combo_box_input/combo_box_pill.js +16 -0
  30. package/es/components/combo_box/combo_box_options_list/combo_box_option.js +16 -0
  31. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +26 -1
  32. package/es/components/comment_list/comment.js +2 -2
  33. package/es/components/comment_list/comment_event.js +1 -1
  34. package/es/components/comment_list/comment_list.js +2 -2
  35. package/es/components/comment_list/comment_timeline.js +1 -1
  36. package/es/components/datagrid/body/cell/data_grid_cell.js +12 -12
  37. package/es/components/datagrid/body/data_grid_body.js +7 -7
  38. package/es/components/datagrid/body/data_grid_body_custom.js +7 -7
  39. package/es/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  40. package/es/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  41. package/es/components/datagrid/controls/column_sorting.js +7 -7
  42. package/es/components/datagrid/controls/column_sorting_draggable.js +1 -1
  43. package/es/components/datagrid/controls/data_grid_toolbar.js +1 -1
  44. package/es/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  45. package/es/components/datagrid/utils/in_memory.js +6 -6
  46. package/es/components/date_picker/date_picker.js +2 -2
  47. package/es/components/date_picker/date_picker_range.js +1 -1
  48. package/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +25 -11
  49. package/es/components/empty_prompt/empty_prompt.js +1 -1
  50. package/es/components/facet/facet_button.js +1 -1
  51. package/es/components/filter_group/filter_select_item.js +46 -4
  52. package/es/components/flex/flex_group.js +0 -2
  53. package/es/components/flex/flex_item.js +0 -2
  54. package/es/components/form/field_number/field_number.js +2 -2
  55. package/es/components/form/field_text/field_text.js +2 -2
  56. package/es/components/form/form.styles.js +26 -3
  57. package/es/components/form/form_control_layout/form_control_layout.js +2 -2
  58. package/es/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  59. package/es/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  60. package/es/components/form/text_area/text_area.js +2 -2
  61. package/es/components/header/header_links/header_link.js +1 -1
  62. package/es/components/header/header_links/header_links.js +1 -1
  63. package/es/components/header/header_logo/header_logo.js +1 -1
  64. package/es/components/header/header_section/header_section_item_button.js +1 -1
  65. package/es/components/icon/assets/clickLeft.js +38 -0
  66. package/es/components/icon/assets/clickRight.js +38 -0
  67. package/es/components/icon/assets/clockCounter.js +35 -0
  68. package/es/components/icon/assets/error.js +3 -1
  69. package/es/components/icon/assets/errorFilled.js +34 -0
  70. package/es/components/icon/assets/launch.js +5 -3
  71. package/es/components/icon/assets/tokenDimension.js +36 -0
  72. package/es/components/icon/assets/tokenMetricCounter.js +4 -1
  73. package/es/components/icon/assets/tokenMetricGauge.js +4 -1
  74. package/es/components/icon/assets/warningFilled.js +34 -0
  75. package/es/components/icon/icon.js +1 -1
  76. package/es/components/icon/icon_map.js +6 -0
  77. package/es/components/key_pad_menu/key_pad_menu_item.js +1 -1
  78. package/es/components/list_group/list_group.js +2 -2
  79. package/es/components/list_group/list_group_item.js +2 -2
  80. package/es/components/list_group/list_group_item_extra_action.js +1 -1
  81. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  82. package/es/components/loading/loading_logo.js +1 -1
  83. package/es/components/markdown_editor/markdown_editor.js +13 -9
  84. package/es/components/markdown_editor/markdown_editor.styles.js +29 -0
  85. package/es/components/markdown_editor/markdown_editor_drop_zone.js +23 -10
  86. package/es/components/markdown_editor/markdown_editor_drop_zone.styles.js +33 -0
  87. package/es/components/markdown_editor/markdown_editor_footer.js +12 -3
  88. package/es/components/markdown_editor/markdown_editor_footer.styles.js +26 -0
  89. package/es/components/markdown_editor/markdown_editor_text_area.js +6 -1
  90. package/es/components/markdown_editor/markdown_editor_text_area.styles.js +22 -0
  91. package/es/components/markdown_editor/markdown_editor_toolbar.js +11 -3
  92. package/es/components/markdown_editor/markdown_editor_toolbar.styles.js +21 -0
  93. package/es/components/markdown_editor/markdown_format.js +9 -6
  94. package/es/components/markdown_editor/markdown_format.styles.js +25 -10
  95. package/es/components/markdown_editor/plugins/markdown_checkbox/renderer.js +9 -3
  96. package/es/components/markdown_editor/plugins/markdown_tooltip/renderer.js +13 -2
  97. package/es/components/page/page_header/page_header_content.js +1 -1
  98. package/es/components/pagination/pagination_button.js +1 -1
  99. package/es/components/popover/input_popover.js +20 -14
  100. package/es/components/selectable/selectable.js +10 -2
  101. package/es/components/selectable/selectable_list/selectable_list.js +96 -43
  102. package/es/components/selectable/selectable_list/selectable_list_item.js +235 -205
  103. package/es/components/selectable/selectable_option.js +9 -1
  104. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +11 -3
  105. package/es/components/text/text_color.js +4 -1
  106. package/es/components/timeline/timeline_item_icon.js +1 -1
  107. package/es/components/toast/global_toast_list.js +1 -1
  108. package/es/components/toast/global_toast_list_item.js +5 -5
  109. package/es/components/toast/toast.js +1 -1
  110. package/es/components/token/token_map.js +4 -0
  111. package/es/components/tool_tip/icon_tip.js +1 -1
  112. package/eui.d.ts +435 -243
  113. package/i18ntokens.json +138 -120
  114. package/lib/components/avatar/avatar.js +1 -1
  115. package/lib/components/badge/badge.js +1 -1
  116. package/lib/components/badge/beta_badge/beta_badge.js +1 -1
  117. package/lib/components/basic_table/basic_table.js +1 -1
  118. package/lib/components/basic_table/in_memory_table.js +1 -1
  119. package/lib/components/button/button.js +1 -1
  120. package/lib/components/button/button_display/_button_display.js +1 -1
  121. package/lib/components/button/button_display/_button_display_content.js +1 -1
  122. package/lib/components/button/button_empty/button_empty.js +1 -1
  123. package/lib/components/button/button_group/button_group.js +1 -1
  124. package/lib/components/button/button_group/button_group_button.js +1 -1
  125. package/lib/components/button/button_icon/button_icon.js +1 -1
  126. package/lib/components/call_out/call_out.js +1 -1
  127. package/lib/components/card/card.js +2 -2
  128. package/lib/components/card/card_select/card_select.js +1 -1
  129. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  130. package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  131. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +6 -2
  132. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  133. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  134. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  135. package/lib/components/combo_box/combo_box_input/combo_box_input.js +19 -1
  136. package/lib/components/combo_box/combo_box_input/combo_box_pill.js +16 -0
  137. package/lib/components/combo_box/combo_box_options_list/combo_box_option.js +16 -0
  138. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +26 -1
  139. package/lib/components/comment_list/comment.js +2 -2
  140. package/lib/components/comment_list/comment_event.js +1 -1
  141. package/lib/components/comment_list/comment_list.js +2 -2
  142. package/lib/components/comment_list/comment_timeline.js +1 -1
  143. package/lib/components/datagrid/body/cell/data_grid_cell.js +12 -12
  144. package/lib/components/datagrid/body/data_grid_body.js +7 -7
  145. package/lib/components/datagrid/body/data_grid_body_custom.js +7 -7
  146. package/lib/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  147. package/lib/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  148. package/lib/components/datagrid/controls/column_sorting.js +7 -7
  149. package/lib/components/datagrid/controls/column_sorting_draggable.js +1 -1
  150. package/lib/components/datagrid/controls/data_grid_toolbar.js +2 -1
  151. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  152. package/lib/components/datagrid/utils/in_memory.js +6 -6
  153. package/lib/components/date_picker/date_picker.js +2 -2
  154. package/lib/components/date_picker/date_picker_range.js +1 -1
  155. package/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +25 -11
  156. package/lib/components/empty_prompt/empty_prompt.js +1 -1
  157. package/lib/components/facet/facet_button.js +1 -1
  158. package/lib/components/filter_group/filter_select_item.js +45 -3
  159. package/lib/components/flex/flex_group.js +0 -2
  160. package/lib/components/flex/flex_item.js +0 -2
  161. package/lib/components/form/field_number/field_number.js +2 -2
  162. package/lib/components/form/field_text/field_text.js +2 -2
  163. package/lib/components/form/form.styles.js +30 -4
  164. package/lib/components/form/form_control_layout/form_control_layout.js +2 -2
  165. package/lib/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  166. package/lib/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  167. package/lib/components/form/text_area/text_area.js +2 -2
  168. package/lib/components/header/header_links/header_link.js +1 -1
  169. package/lib/components/header/header_links/header_links.js +1 -1
  170. package/lib/components/header/header_logo/header_logo.js +1 -1
  171. package/lib/components/header/header_section/header_section_item_button.js +1 -1
  172. package/lib/components/icon/assets/clickLeft.js +46 -0
  173. package/lib/components/icon/assets/clickRight.js +46 -0
  174. package/lib/components/icon/assets/clockCounter.js +43 -0
  175. package/lib/components/icon/assets/error.js +3 -1
  176. package/lib/components/icon/assets/errorFilled.js +42 -0
  177. package/lib/components/icon/assets/launch.js +5 -3
  178. package/lib/components/icon/assets/tokenDimension.js +44 -0
  179. package/lib/components/icon/assets/tokenMetricCounter.js +4 -1
  180. package/lib/components/icon/assets/tokenMetricGauge.js +4 -1
  181. package/lib/components/icon/assets/warningFilled.js +42 -0
  182. package/lib/components/icon/icon.js +1 -1
  183. package/lib/components/icon/icon_map.js +6 -0
  184. package/lib/components/icon/svgs/clickLeft.svg +5 -0
  185. package/lib/components/icon/svgs/clickRight.svg +5 -0
  186. package/lib/components/icon/svgs/clockCounter.svg +4 -0
  187. package/lib/components/icon/svgs/error.svg +2 -1
  188. package/lib/components/icon/svgs/errorFilled.svg +3 -0
  189. package/lib/components/icon/svgs/launch.svg +5 -5
  190. package/lib/components/icon/svgs/tokens/tokenDimension.svg +4 -0
  191. package/lib/components/icon/svgs/tokens/tokenMetricCounter.svg +2 -1
  192. package/lib/components/icon/svgs/tokens/tokenMetricGauge.svg +2 -1
  193. package/lib/components/icon/svgs/warningFilled.svg +3 -0
  194. package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -1
  195. package/lib/components/list_group/list_group.js +2 -2
  196. package/lib/components/list_group/list_group_item.js +2 -2
  197. package/lib/components/list_group/list_group_item_extra_action.js +1 -1
  198. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  199. package/lib/components/loading/loading_logo.js +1 -1
  200. package/lib/components/markdown_editor/markdown_editor.js +13 -9
  201. package/lib/components/markdown_editor/markdown_editor.styles.js +37 -0
  202. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +21 -9
  203. package/lib/components/markdown_editor/markdown_editor_drop_zone.styles.js +38 -0
  204. package/lib/components/markdown_editor/markdown_editor_footer.js +11 -2
  205. package/lib/components/markdown_editor/markdown_editor_footer.styles.js +33 -0
  206. package/lib/components/markdown_editor/markdown_editor_text_area.js +6 -1
  207. package/lib/components/markdown_editor/markdown_editor_text_area.styles.js +29 -0
  208. package/lib/components/markdown_editor/markdown_editor_toolbar.js +11 -3
  209. package/lib/components/markdown_editor/markdown_editor_toolbar.styles.js +28 -0
  210. package/lib/components/markdown_editor/markdown_format.js +8 -5
  211. package/lib/components/markdown_editor/markdown_format.styles.js +25 -10
  212. package/lib/components/markdown_editor/plugins/markdown_checkbox/renderer.js +9 -4
  213. package/lib/components/markdown_editor/plugins/markdown_tooltip/renderer.js +19 -10
  214. package/lib/components/page/page_header/page_header_content.js +1 -1
  215. package/lib/components/pagination/pagination_button.js +1 -1
  216. package/lib/components/popover/input_popover.js +20 -14
  217. package/lib/components/selectable/selectable.js +10 -2
  218. package/lib/components/selectable/selectable_list/selectable_list.js +96 -43
  219. package/lib/components/selectable/selectable_list/selectable_list_item.js +242 -211
  220. package/lib/components/selectable/selectable_option.js +12 -1
  221. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +11 -3
  222. package/lib/components/text/text_color.js +6 -2
  223. package/lib/components/timeline/timeline_item_icon.js +1 -1
  224. package/lib/components/toast/global_toast_list.js +1 -1
  225. package/lib/components/toast/global_toast_list_item.js +5 -5
  226. package/lib/components/toast/toast.js +1 -1
  227. package/lib/components/token/token_map.js +4 -0
  228. package/lib/components/tool_tip/icon_tip.js +1 -1
  229. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +5 -1
  230. package/optimize/es/components/combo_box/combo_box_input/combo_box_input.js +3 -1
  231. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  232. package/optimize/es/components/datagrid/controls/data_grid_toolbar.js +1 -1
  233. package/optimize/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +25 -11
  234. package/optimize/es/components/filter_group/filter_select_item.js +44 -4
  235. package/optimize/es/components/flex/flex_group.js +0 -2
  236. package/optimize/es/components/flex/flex_item.js +0 -2
  237. package/optimize/es/components/form/form.styles.js +26 -3
  238. package/optimize/es/components/icon/assets/clickLeft.js +37 -0
  239. package/optimize/es/components/icon/assets/clickRight.js +37 -0
  240. package/optimize/es/components/icon/assets/clockCounter.js +34 -0
  241. package/optimize/es/components/icon/assets/error.js +3 -1
  242. package/optimize/es/components/icon/assets/errorFilled.js +33 -0
  243. package/optimize/es/components/icon/assets/launch.js +5 -3
  244. package/optimize/es/components/icon/assets/tokenDimension.js +35 -0
  245. package/optimize/es/components/icon/assets/tokenMetricCounter.js +4 -1
  246. package/optimize/es/components/icon/assets/tokenMetricGauge.js +4 -1
  247. package/optimize/es/components/icon/assets/warningFilled.js +33 -0
  248. package/optimize/es/components/icon/icon_map.js +6 -0
  249. package/optimize/es/components/markdown_editor/markdown_editor.js +12 -8
  250. package/optimize/es/components/markdown_editor/markdown_editor.styles.js +29 -0
  251. package/optimize/es/components/markdown_editor/markdown_editor_drop_zone.js +19 -9
  252. package/optimize/es/components/markdown_editor/markdown_editor_drop_zone.styles.js +33 -0
  253. package/optimize/es/components/markdown_editor/markdown_editor_footer.js +11 -2
  254. package/optimize/es/components/markdown_editor/markdown_editor_footer.styles.js +26 -0
  255. package/optimize/es/components/markdown_editor/markdown_editor_text_area.js +6 -1
  256. package/optimize/es/components/markdown_editor/markdown_editor_text_area.styles.js +22 -0
  257. package/optimize/es/components/markdown_editor/markdown_editor_toolbar.js +10 -2
  258. package/optimize/es/components/markdown_editor/markdown_editor_toolbar.styles.js +21 -0
  259. package/optimize/es/components/markdown_editor/markdown_format.js +9 -6
  260. package/optimize/es/components/markdown_editor/markdown_format.styles.js +25 -10
  261. package/optimize/es/components/markdown_editor/plugins/markdown_checkbox/renderer.js +9 -3
  262. package/optimize/es/components/markdown_editor/plugins/markdown_tooltip/renderer.js +13 -2
  263. package/optimize/es/components/popover/input_popover.js +20 -14
  264. package/optimize/es/components/selectable/selectable_list/selectable_list.js +81 -38
  265. package/optimize/es/components/selectable/selectable_list/selectable_list_item.js +217 -198
  266. package/optimize/es/components/selectable/selectable_option.js +9 -1
  267. package/optimize/es/components/text/text_color.js +4 -1
  268. package/optimize/es/components/token/token_map.js +4 -0
  269. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +5 -1
  270. package/optimize/lib/components/combo_box/combo_box_input/combo_box_input.js +3 -1
  271. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  272. package/optimize/lib/components/datagrid/controls/data_grid_toolbar.js +2 -1
  273. package/optimize/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +25 -11
  274. package/optimize/lib/components/filter_group/filter_select_item.js +43 -3
  275. package/optimize/lib/components/flex/flex_group.js +0 -2
  276. package/optimize/lib/components/flex/flex_item.js +0 -2
  277. package/optimize/lib/components/form/form.styles.js +30 -4
  278. package/optimize/lib/components/icon/assets/clickLeft.js +46 -0
  279. package/optimize/lib/components/icon/assets/clickRight.js +46 -0
  280. package/optimize/lib/components/icon/assets/clockCounter.js +43 -0
  281. package/optimize/lib/components/icon/assets/error.js +3 -1
  282. package/optimize/lib/components/icon/assets/errorFilled.js +42 -0
  283. package/optimize/lib/components/icon/assets/launch.js +5 -3
  284. package/optimize/lib/components/icon/assets/tokenDimension.js +44 -0
  285. package/optimize/lib/components/icon/assets/tokenMetricCounter.js +4 -1
  286. package/optimize/lib/components/icon/assets/tokenMetricGauge.js +4 -1
  287. package/optimize/lib/components/icon/assets/warningFilled.js +42 -0
  288. package/optimize/lib/components/icon/icon_map.js +6 -0
  289. package/optimize/lib/components/icon/svgs/clickLeft.svg +5 -0
  290. package/optimize/lib/components/icon/svgs/clickRight.svg +5 -0
  291. package/optimize/lib/components/icon/svgs/clockCounter.svg +4 -0
  292. package/optimize/lib/components/icon/svgs/error.svg +2 -1
  293. package/optimize/lib/components/icon/svgs/errorFilled.svg +3 -0
  294. package/optimize/lib/components/icon/svgs/launch.svg +5 -5
  295. package/optimize/lib/components/icon/svgs/tokens/tokenDimension.svg +4 -0
  296. package/optimize/lib/components/icon/svgs/tokens/tokenMetricCounter.svg +2 -1
  297. package/optimize/lib/components/icon/svgs/tokens/tokenMetricGauge.svg +2 -1
  298. package/optimize/lib/components/icon/svgs/warningFilled.svg +3 -0
  299. package/optimize/lib/components/markdown_editor/markdown_editor.js +12 -8
  300. package/optimize/lib/components/markdown_editor/markdown_editor.styles.js +37 -0
  301. package/optimize/lib/components/markdown_editor/markdown_editor_drop_zone.js +24 -16
  302. package/optimize/lib/components/markdown_editor/markdown_editor_drop_zone.styles.js +38 -0
  303. package/optimize/lib/components/markdown_editor/markdown_editor_footer.js +10 -1
  304. package/optimize/lib/components/markdown_editor/markdown_editor_footer.styles.js +33 -0
  305. package/optimize/lib/components/markdown_editor/markdown_editor_text_area.js +6 -1
  306. package/optimize/lib/components/markdown_editor/markdown_editor_text_area.styles.js +29 -0
  307. package/optimize/lib/components/markdown_editor/markdown_editor_toolbar.js +10 -2
  308. package/optimize/lib/components/markdown_editor/markdown_editor_toolbar.styles.js +28 -0
  309. package/optimize/lib/components/markdown_editor/markdown_format.js +8 -5
  310. package/optimize/lib/components/markdown_editor/markdown_format.styles.js +25 -10
  311. package/optimize/lib/components/markdown_editor/plugins/markdown_checkbox/renderer.js +9 -4
  312. package/optimize/lib/components/markdown_editor/plugins/markdown_tooltip/renderer.js +19 -10
  313. package/optimize/lib/components/popover/input_popover.js +20 -14
  314. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +81 -38
  315. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.js +224 -204
  316. package/optimize/lib/components/selectable/selectable_option.js +12 -1
  317. package/optimize/lib/components/text/text_color.js +6 -2
  318. package/optimize/lib/components/token/token_map.js +4 -0
  319. package/package.json +5 -12
  320. package/src/components/datagrid/body/header/_data_grid_header_row.scss +6 -1
  321. package/src/components/date_picker/react-datepicker/LICENSE +21 -0
  322. package/src/components/date_picker/react-datepicker/README.md +168 -0
  323. package/src/components/date_picker/super_date_picker/date_popover/_absolute_tab.scss +13 -18
  324. package/src/components/form/checkbox/_checkbox.scss +23 -6
  325. package/src/components/index.scss +0 -1
  326. package/src/components/selectable/selectable_list/_selectable_list_item.scss +4 -0
  327. package/src/components/selectable/selectable_templates/_selectable_template_sitewide_option.scss +5 -1
  328. package/src/services/theme/README.md +153 -0
  329. package/src/test/README.md +44 -0
  330. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  331. package/test-env/components/avatar/avatar.js +1 -1
  332. package/test-env/components/badge/badge.js +1 -1
  333. package/test-env/components/badge/beta_badge/beta_badge.js +1 -1
  334. package/test-env/components/basic_table/basic_table.js +1 -1
  335. package/test-env/components/basic_table/in_memory_table.js +1 -1
  336. package/test-env/components/button/button.js +1 -1
  337. package/test-env/components/button/button_display/_button_display.js +1 -1
  338. package/test-env/components/button/button_display/_button_display_content.js +1 -1
  339. package/test-env/components/button/button_empty/button_empty.js +1 -1
  340. package/test-env/components/button/button_group/button_group.js +1 -1
  341. package/test-env/components/button/button_group/button_group_button.js +1 -1
  342. package/test-env/components/button/button_icon/button_icon.js +1 -1
  343. package/test-env/components/call_out/call_out.js +1 -1
  344. package/test-env/components/card/card.js +2 -2
  345. package/test-env/components/card/card_select/card_select.js +1 -1
  346. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  347. package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  348. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +6 -2
  349. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  350. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  351. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  352. package/test-env/components/combo_box/combo_box_input/combo_box_input.js +19 -1
  353. package/test-env/components/combo_box/combo_box_input/combo_box_pill.js +16 -0
  354. package/test-env/components/combo_box/combo_box_options_list/combo_box_option.js +16 -0
  355. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +26 -1
  356. package/test-env/components/comment_list/comment.js +2 -2
  357. package/test-env/components/comment_list/comment_event.js +1 -1
  358. package/test-env/components/comment_list/comment_list.js +2 -2
  359. package/test-env/components/comment_list/comment_timeline.js +1 -1
  360. package/test-env/components/datagrid/body/cell/data_grid_cell.js +12 -12
  361. package/test-env/components/datagrid/body/data_grid_body.js +7 -7
  362. package/test-env/components/datagrid/body/data_grid_body_custom.js +7 -7
  363. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  364. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  365. package/test-env/components/datagrid/controls/column_sorting.js +7 -7
  366. package/test-env/components/datagrid/controls/column_sorting_draggable.js +1 -1
  367. package/test-env/components/datagrid/controls/data_grid_toolbar.js +2 -1
  368. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  369. package/test-env/components/datagrid/utils/in_memory.js +6 -6
  370. package/test-env/components/date_picker/date_picker.js +2 -2
  371. package/test-env/components/date_picker/date_picker_range.js +1 -1
  372. package/test-env/components/date_picker/super_date_picker/date_popover/absolute_tab.js +25 -11
  373. package/test-env/components/empty_prompt/empty_prompt.js +1 -1
  374. package/test-env/components/facet/facet_button.js +1 -1
  375. package/test-env/components/filter_group/filter_select_item.js +45 -3
  376. package/test-env/components/flex/flex_group.js +0 -2
  377. package/test-env/components/flex/flex_item.js +0 -2
  378. package/test-env/components/form/field_number/field_number.js +2 -2
  379. package/test-env/components/form/field_text/field_text.js +2 -2
  380. package/test-env/components/form/form.styles.js +30 -4
  381. package/test-env/components/form/form_control_layout/form_control_layout.js +2 -2
  382. package/test-env/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  383. package/test-env/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  384. package/test-env/components/form/text_area/text_area.js +2 -2
  385. package/test-env/components/header/header_links/header_link.js +1 -1
  386. package/test-env/components/header/header_links/header_links.js +1 -1
  387. package/test-env/components/header/header_logo/header_logo.js +1 -1
  388. package/test-env/components/header/header_section/header_section_item_button.js +1 -1
  389. package/test-env/components/icon/assets/clickLeft.js +46 -0
  390. package/test-env/components/icon/assets/clickRight.js +46 -0
  391. package/test-env/components/icon/assets/clockCounter.js +43 -0
  392. package/test-env/components/icon/assets/error.js +3 -1
  393. package/test-env/components/icon/assets/errorFilled.js +42 -0
  394. package/test-env/components/icon/assets/launch.js +5 -3
  395. package/test-env/components/icon/assets/tokenDimension.js +44 -0
  396. package/test-env/components/icon/assets/tokenMetricCounter.js +4 -1
  397. package/test-env/components/icon/assets/tokenMetricGauge.js +4 -1
  398. package/test-env/components/icon/assets/warningFilled.js +42 -0
  399. package/test-env/components/icon/icon_map.js +6 -0
  400. package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -1
  401. package/test-env/components/list_group/list_group.js +2 -2
  402. package/test-env/components/list_group/list_group_item.js +2 -2
  403. package/test-env/components/list_group/list_group_item_extra_action.js +1 -1
  404. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  405. package/test-env/components/loading/loading_logo.js +1 -1
  406. package/test-env/components/markdown_editor/markdown_editor.js +13 -9
  407. package/test-env/components/markdown_editor/markdown_editor.styles.js +37 -0
  408. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +25 -17
  409. package/test-env/components/markdown_editor/markdown_editor_drop_zone.styles.js +38 -0
  410. package/test-env/components/markdown_editor/markdown_editor_footer.js +11 -2
  411. package/test-env/components/markdown_editor/markdown_editor_footer.styles.js +33 -0
  412. package/test-env/components/markdown_editor/markdown_editor_text_area.js +6 -1
  413. package/test-env/components/markdown_editor/markdown_editor_text_area.styles.js +29 -0
  414. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +11 -3
  415. package/test-env/components/markdown_editor/markdown_editor_toolbar.styles.js +28 -0
  416. package/test-env/components/markdown_editor/markdown_format.js +8 -5
  417. package/test-env/components/markdown_editor/markdown_format.styles.js +25 -10
  418. package/test-env/components/markdown_editor/plugins/markdown_checkbox/renderer.js +9 -4
  419. package/test-env/components/markdown_editor/plugins/markdown_tooltip/renderer.js +19 -10
  420. package/test-env/components/page/page_header/page_header_content.js +1 -1
  421. package/test-env/components/pagination/pagination_button.js +1 -1
  422. package/test-env/components/popover/input_popover.js +20 -14
  423. package/test-env/components/selectable/selectable.js +10 -2
  424. package/test-env/components/selectable/selectable_list/selectable_list.js +96 -43
  425. package/test-env/components/selectable/selectable_list/selectable_list_item.js +234 -206
  426. package/test-env/components/selectable/selectable_option.js +12 -1
  427. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +11 -3
  428. package/test-env/components/text/text_color.js +6 -2
  429. package/test-env/components/timeline/timeline_item_icon.js +1 -1
  430. package/test-env/components/toast/global_toast_list.js +1 -1
  431. package/test-env/components/toast/global_toast_list_item.js +5 -5
  432. package/test-env/components/toast/toast.js +1 -1
  433. package/test-env/components/token/token_map.js +4 -0
  434. package/test-env/components/tool_tip/icon_tip.js +1 -1
  435. package/LICENSE.txt +0 -6
  436. package/NOTICE.txt +0 -54
  437. package/README.md +0 -66
  438. package/licenses/ELASTIC-LICENSE-2.0.md +0 -93
  439. package/licenses/SSPL-LICENSE.md +0 -557
  440. package/src/components/markdown_editor/_index.scss +0 -9
  441. package/src/components/markdown_editor/_markdown_editor.scss +0 -22
  442. package/src/components/markdown_editor/_markdown_editor_drop_zone.scss +0 -58
  443. package/src/components/markdown_editor/_markdown_editor_footer.scss +0 -42
  444. package/src/components/markdown_editor/_markdown_editor_preview.scss +0 -20
  445. package/src/components/markdown_editor/_markdown_editor_text_area.scss +0 -43
  446. package/src/components/markdown_editor/_markdown_editor_toolbar.scss +0 -29
  447. package/src/components/markdown_editor/_markdown_format.scss +0 -78
  448. package/src/components/markdown_editor/_variables.scss +0 -1
  449. package/src/components/markdown_editor/plugins/markdown_tooltip.scss +0 -4
  450. package/src/themes/amsterdam/overrides/_markdown_editor.scss +0 -18
@@ -41,6 +41,9 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
41
41
  var _this;
42
42
  _classCallCheck(this, EuiSelectableList);
43
43
  _this = _super.call(this, props);
44
+ _defineProperty(_assertThisInitialized(_this), "animationFrameId", void 0);
45
+ // counter for tracking list renders and ensuring rerenders
46
+ _defineProperty(_assertThisInitialized(_this), "listRowRerender", 0);
44
47
  _defineProperty(_assertThisInitialized(_this), "listRef", null);
45
48
  _defineProperty(_assertThisInitialized(_this), "listBoxRef", null);
46
49
  _defineProperty(_assertThisInitialized(_this), "setListRef", function (ref) {
@@ -165,7 +168,6 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
165
168
  event.persist(); // NOTE: This is needed for React v16 backwards compatibility
166
169
  _this.onAddOrRemoveOption(option, event);
167
170
  },
168
- ref: ref ? ref.bind(null, index) : undefined,
169
171
  isFocused: isFocused,
170
172
  title: searchableLabel || label,
171
173
  checked: checked,
@@ -266,7 +268,7 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
266
268
  _this.focusBadgeOffset = _this.props.onFocusBadge === false ? 0 : 46;
267
269
 
268
270
  // Wait a tick for the listbox ref to update before proceeding
269
- requestAnimationFrame(function () {
271
+ _this.animationFrameId = requestAnimationFrame(function () {
270
272
  var scrollbarOffset = _this.listBoxRef ? containerWidth - _this.listBoxRef.offsetWidth : 0;
271
273
  _this.setState({
272
274
  defaultOptionWidth: containerWidth - scrollbarOffset - paddingOffset - checkedIconOffset
@@ -418,13 +420,47 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
418
420
  return _this;
419
421
  }
420
422
  _createClass(EuiSelectableList, [{
423
+ key: "componentWillUnmount",
424
+ value: function componentWillUnmount() {
425
+ // ensure requestAnimationFrame is canceled on unmount as
426
+ // it could potentially run on a next tick otherwise
427
+ if (this.animationFrameId !== undefined) {
428
+ cancelAnimationFrame(this.animationFrameId);
429
+ this.animationFrameId = undefined;
430
+ }
431
+ }
432
+ }, {
433
+ key: "shouldComponentUpdate",
434
+ value: function shouldComponentUpdate(nextProps) {
435
+ var _this$props9 = this.props,
436
+ allowExclusions = _this$props9.allowExclusions,
437
+ showIcons = _this$props9.showIcons,
438
+ paddingSize = _this$props9.paddingSize,
439
+ textWrap = _this$props9.textWrap,
440
+ onFocusBadge = _this$props9.onFocusBadge,
441
+ searchable = _this$props9.searchable;
442
+
443
+ // using shouldComponentUpdate to determine needed rerender before actual rerender
444
+ // without needing state updates or lagging behind on updates
445
+ if (nextProps.allowExclusions !== allowExclusions || nextProps.showIcons !== showIcons || nextProps.paddingSize !== paddingSize || nextProps.textWrap !== textWrap || nextProps.onFocusBadge !== onFocusBadge || nextProps.searchable !== searchable) {
446
+ this.listRowRerender += 1;
447
+ }
448
+ return true;
449
+ }
450
+ }, {
421
451
  key: "componentDidUpdate",
422
452
  value: function componentDidUpdate(prevProps) {
423
- var _this$props9 = this.props,
424
- isVirtualized = _this$props9.isVirtualized,
425
- activeOptionIndex = _this$props9.activeOptionIndex,
426
- visibleOptions = _this$props9.visibleOptions,
427
- options = _this$props9.options;
453
+ var _this$props10 = this.props,
454
+ isVirtualized = _this$props10.isVirtualized,
455
+ activeOptionIndex = _this$props10.activeOptionIndex,
456
+ visibleOptions = _this$props10.visibleOptions,
457
+ options = _this$props10.options,
458
+ allowExclusions = _this$props10.allowExclusions,
459
+ showIcons = _this$props10.showIcons,
460
+ paddingSize = _this$props10.paddingSize,
461
+ textWrap = _this$props10.textWrap,
462
+ onFocusBadge = _this$props10.onFocusBadge,
463
+ searchable = _this$props10.searchable;
428
464
  if (prevProps.activeOptionIndex !== activeOptionIndex) {
429
465
  var makeOptionId = this.props.makeOptionId;
430
466
  if (this.listBoxRef && this.props.searchable !== true) {
@@ -456,41 +492,48 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
456
492
  itemData: _objectSpread({}, optionArray)
457
493
  }, this.calculateAriaSetAttrs(optionArray)));
458
494
  }
495
+
496
+ // ensure that ListRow updates based on item props
497
+ if (isVirtualized) {
498
+ if (prevProps.allowExclusions !== allowExclusions || prevProps.showIcons !== showIcons || prevProps.paddingSize !== paddingSize || prevProps.textWrap !== textWrap || prevProps.onFocusBadge !== onFocusBadge || prevProps.searchable !== searchable) {
499
+ this.forceVirtualizedListRowRerender();
500
+ }
501
+ }
459
502
  }
460
503
  }, {
461
504
  key: "render",
462
505
  value: function render() {
463
506
  var _this2 = this;
464
- var _this$props10 = this.props,
465
- className = _this$props10.className,
466
- options = _this$props10.options,
467
- searchValue = _this$props10.searchValue,
468
- onOptionClick = _this$props10.onOptionClick,
469
- renderOption = _this$props10.renderOption,
470
- forcedHeight = _this$props10.height,
471
- windowProps = _this$props10.windowProps,
472
- rowHeight = _this$props10.rowHeight,
473
- activeOptionIndex = _this$props10.activeOptionIndex,
474
- makeOptionId = _this$props10.makeOptionId,
475
- showIcons = _this$props10.showIcons,
476
- singleSelection = _this$props10.singleSelection,
477
- visibleOptions = _this$props10.visibleOptions,
478
- allowExclusions = _this$props10.allowExclusions,
479
- bordered = _this$props10.bordered,
480
- paddingSize = _this$props10.paddingSize,
481
- searchable = _this$props10.searchable,
482
- onFocusBadge = _this$props10.onFocusBadge,
483
- listId = _this$props10.listId,
484
- setActiveOptionIndex = _this$props10.setActiveOptionIndex,
485
- ariaLabel = _this$props10['aria-label'],
486
- ariaLabelledby = _this$props10['aria-labelledby'],
487
- ariaDescribedby = _this$props10['aria-describedby'],
488
- role = _this$props10.role,
489
- isPreFiltered = _this$props10.isPreFiltered,
490
- isVirtualized = _this$props10.isVirtualized,
491
- textWrap = _this$props10.textWrap,
492
- truncationProps = _this$props10.truncationProps,
493
- rest = _objectWithoutProperties(_this$props10, _excluded3);
507
+ var _this$props11 = this.props,
508
+ className = _this$props11.className,
509
+ options = _this$props11.options,
510
+ searchValue = _this$props11.searchValue,
511
+ onOptionClick = _this$props11.onOptionClick,
512
+ renderOption = _this$props11.renderOption,
513
+ forcedHeight = _this$props11.height,
514
+ windowProps = _this$props11.windowProps,
515
+ rowHeight = _this$props11.rowHeight,
516
+ activeOptionIndex = _this$props11.activeOptionIndex,
517
+ makeOptionId = _this$props11.makeOptionId,
518
+ showIcons = _this$props11.showIcons,
519
+ singleSelection = _this$props11.singleSelection,
520
+ visibleOptions = _this$props11.visibleOptions,
521
+ allowExclusions = _this$props11.allowExclusions,
522
+ bordered = _this$props11.bordered,
523
+ paddingSize = _this$props11.paddingSize,
524
+ searchable = _this$props11.searchable,
525
+ onFocusBadge = _this$props11.onFocusBadge,
526
+ listId = _this$props11.listId,
527
+ setActiveOptionIndex = _this$props11.setActiveOptionIndex,
528
+ ariaLabel = _this$props11['aria-label'],
529
+ ariaLabelledby = _this$props11['aria-labelledby'],
530
+ ariaDescribedby = _this$props11['aria-describedby'],
531
+ role = _this$props11.role,
532
+ isPreFiltered = _this$props11.isPreFiltered,
533
+ isVirtualized = _this$props11.isVirtualized,
534
+ textWrap = _this$props11.textWrap,
535
+ truncationProps = _this$props11.truncationProps,
536
+ rest = _objectWithoutProperties(_this$props11, _excluded3);
494
537
  var heightIsFull = forcedHeight === 'full';
495
538
  var classes = classNames('euiSelectableList', {
496
539
  'euiSelectableList-fullHeight': heightIsFull,
@@ -508,7 +551,7 @@ export var EuiSelectableList = /*#__PURE__*/function (_Component) {
508
551
  ref: this.setListBoxRef
509
552
  }, this.state.optionArray.map(function (_, index) {
510
553
  return /*#__PURE__*/React.createElement(_this2.ListRow, {
511
- key: index,
554
+ key: "".concat(index, "-").concat(_this2.listRowRerender),
512
555
  data: _this2.state.optionArray,
513
556
  index: index
514
557
  }, null);
@@ -1,16 +1,9 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
4
- import _createClass from "@babel/runtime/helpers/createClass";
5
- import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
6
- import _inherits from "@babel/runtime/helpers/inherits";
7
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
8
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
9
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
- var _excluded = ["children", "className", "disabled", "checked", "isFocused", "showIcons", "prepend", "append", "allowExclusions", "onFocusBadge", "paddingSize", "role", "searchable", "textWrap"],
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
+ var _excluded = ["children", "className", "disabled", "checked", "isFocused", "showIcons", "prepend", "append", "allowExclusions", "onFocusBadge", "paddingSize", "role", "searchable", "textWrap", "toolTipContent", "toolTipProps", "aria-describedby"],
11
6
  _excluded2 = ["children", "className"];
12
- 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); }; }
13
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
14
7
  /*
15
8
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
16
9
  * or more contributor license agreements. Licensed under the Elastic License
@@ -20,12 +13,13 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
20
13
  */
21
14
 
22
15
  import classNames from 'classnames';
23
- import React, { Component } from 'react';
16
+ import React, { useState, useEffect, useMemo } from 'react';
24
17
  import { keysOf } from '../../common';
25
18
  import { EuiI18n } from '../../i18n';
26
19
  import { EuiIcon } from '../../icon';
27
20
  import { EuiScreenReaderOnly } from '../../accessibility';
28
21
  import { EuiBadge } from '../../badge';
22
+ import { EuiToolTip } from '../../tool_tip';
29
23
  import { jsx as ___EmotionJSX } from "@emotion/react";
30
24
  function resolveIconAndColor(checked) {
31
25
  switch (checked) {
@@ -56,194 +50,219 @@ var paddingSizeToClassNameMap = {
56
50
  s: 'euiSelectableListItem--paddingSmall'
57
51
  };
58
52
  export var PADDING_SIZES = keysOf(paddingSizeToClassNameMap);
59
- export var EuiSelectableListItem = /*#__PURE__*/function (_Component) {
60
- _inherits(EuiSelectableListItem, _Component);
61
- var _super = _createSuper(EuiSelectableListItem);
62
- function EuiSelectableListItem(props) {
63
- var _this;
64
- _classCallCheck(this, EuiSelectableListItem);
65
- _this = _super.call(this, props);
66
- // aria-checked is intended to be used with role="checkbox" but
67
- // the MDN documentation lists it as a possibility for role="option".
68
- // See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-checked
69
- // and https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/option_role
70
- _defineProperty(_assertThisInitialized(_this), "isChecked", function (role, checked) {
71
- var rolesThatCanBeMixed = ['option', 'checkbox', 'menuitemcheckbox'];
72
- var rolesThatCanBeChecked = [].concat(rolesThatCanBeMixed, ['radio', 'menuitemradio', 'switch']);
73
- if (!rolesThatCanBeChecked.includes(role)) return undefined;
74
- switch (checked) {
75
- case 'on':
76
- case 'off':
77
- return true;
78
- case 'mixed':
79
- if (rolesThatCanBeMixed.includes(role)) {
80
- return 'mixed';
81
- } else {
82
- return false;
83
- }
84
- default:
85
- return false;
86
- }
87
- });
88
- return _this;
89
- }
90
- _createClass(EuiSelectableListItem, [{
91
- key: "render",
92
- value: function render() {
93
- var _this$props = this.props,
94
- children = _this$props.children,
95
- className = _this$props.className,
96
- disabled = _this$props.disabled,
97
- checked = _this$props.checked,
98
- isFocused = _this$props.isFocused,
99
- showIcons = _this$props.showIcons,
100
- prepend = _this$props.prepend,
101
- append = _this$props.append,
102
- allowExclusions = _this$props.allowExclusions,
103
- onFocusBadge = _this$props.onFocusBadge,
104
- _this$props$paddingSi = _this$props.paddingSize,
105
- paddingSize = _this$props$paddingSi === void 0 ? 's' : _this$props$paddingSi,
106
- _this$props$role = _this$props.role,
107
- role = _this$props$role === void 0 ? 'option' : _this$props$role,
108
- searchable = _this$props.searchable,
109
- textWrap = _this$props.textWrap,
110
- rest = _objectWithoutProperties(_this$props, _excluded);
111
- var classes = classNames('euiSelectableListItem', {
112
- 'euiSelectableListItem-isFocused': isFocused
113
- }, paddingSizeToClassNameMap[paddingSize], className);
114
- var textClasses = classNames('euiSelectableListItem__text', _defineProperty({}, "euiSelectableListItem__text--".concat(textWrap), textWrap));
115
- var optionIcon;
116
- if (showIcons) {
117
- var _resolveIconAndColor = resolveIconAndColor(checked),
118
- icon = _resolveIconAndColor.icon,
119
- color = _resolveIconAndColor.color;
120
- optionIcon = ___EmotionJSX(EuiIcon, {
121
- className: "euiSelectableListItem__icon",
122
- color: color,
123
- type: icon
124
- });
125
- }
126
- var state;
127
- var instructions;
128
- var screenReaderStrings = {
129
- checked: {
130
- state: ___EmotionJSX(EuiI18n, {
131
- token: "euiSelectableListItem.checkedOption",
132
- default: "Checked option."
133
- }),
134
- instructions: ___EmotionJSX(EuiI18n, {
135
- token: "euiSelectableListItem.checkOptionInstructions",
136
- default: "To check this option, press Enter."
137
- })
138
- },
139
- unchecked: {
140
- instructions: ___EmotionJSX(EuiI18n, {
141
- token: "euiSelectableListItem.uncheckOptionInstructions",
142
- default: "To uncheck this option, press Enter."
143
- })
144
- },
145
- excluded: {
146
- state: ___EmotionJSX(EuiI18n, {
147
- token: "euiSelectableListItem.excludedOption",
148
- default: "Excluded option."
149
- }),
150
- instructions: ___EmotionJSX(EuiI18n, {
151
- token: "euiSelectableListItem.excludeOptionInstructions",
152
- default: "To exclude this option, press Enter."
153
- })
154
- },
155
- mixed: {
156
- state: ___EmotionJSX(EuiI18n, {
157
- token: "euiSelectableListItem.mixedOption",
158
- default: "Mixed (indeterminate) option."
159
- }),
160
- instructions: ___EmotionJSX(EuiI18n, {
161
- token: "euiSelectableListItem.mixedOptionInstructions",
162
- default: "To check this option for all, press Enter once."
163
- }),
164
- uncheckInstructions: ___EmotionJSX(EuiI18n, {
165
- token: "euiSelectableListItem.mixedOptionUncheckInstructions",
166
- default: "To uncheck this option for all, press Enter twice."
167
- }),
168
- excludeInstructions: ___EmotionJSX(EuiI18n, {
169
- token: "euiSelectableListItem.mixedOptionExcludeInstructions",
170
- default: "To exclude this option for all, press Enter twice."
171
- })
172
- }
173
- };
174
- switch (checked) {
175
- case 'on':
176
- state = screenReaderStrings.checked.state;
177
- instructions = allowExclusions ? screenReaderStrings.excluded.instructions : searchable ? screenReaderStrings.unchecked.instructions : undefined;
178
- break;
179
- case 'off':
180
- state = screenReaderStrings.excluded.state;
181
- instructions = screenReaderStrings.unchecked.instructions;
182
- break;
183
- case 'mixed':
184
- state = screenReaderStrings.mixed.state;
185
- instructions = ___EmotionJSX(React.Fragment, null, screenReaderStrings.mixed.instructions, ' ', allowExclusions ? screenReaderStrings.mixed.excludeInstructions : screenReaderStrings.mixed.uncheckInstructions);
186
- break;
187
- case undefined:
188
- default:
189
- instructions = allowExclusions || searchable ? screenReaderStrings.checked.instructions : undefined;
190
- break;
191
- }
192
- var prependNode;
193
- if (prepend) {
194
- prependNode = ___EmotionJSX("span", {
195
- className: "euiSelectableListItem__prepend"
196
- }, prepend);
53
+ export var EuiSelectableListItem = function EuiSelectableListItem(_ref) {
54
+ var children = _ref.children,
55
+ className = _ref.className,
56
+ disabled = _ref.disabled,
57
+ checked = _ref.checked,
58
+ isFocused = _ref.isFocused,
59
+ _ref$showIcons = _ref.showIcons,
60
+ showIcons = _ref$showIcons === void 0 ? true : _ref$showIcons,
61
+ prepend = _ref.prepend,
62
+ append = _ref.append,
63
+ allowExclusions = _ref.allowExclusions,
64
+ _ref$onFocusBadge = _ref.onFocusBadge,
65
+ onFocusBadge = _ref$onFocusBadge === void 0 ? true : _ref$onFocusBadge,
66
+ _ref$paddingSize = _ref.paddingSize,
67
+ paddingSize = _ref$paddingSize === void 0 ? 's' : _ref$paddingSize,
68
+ _ref$role = _ref.role,
69
+ role = _ref$role === void 0 ? 'option' : _ref$role,
70
+ searchable = _ref.searchable,
71
+ _ref$textWrap = _ref.textWrap,
72
+ textWrap = _ref$textWrap === void 0 ? 'truncate' : _ref$textWrap,
73
+ toolTipContent = _ref.toolTipContent,
74
+ toolTipProps = _ref.toolTipProps,
75
+ _ariaDescribedBy = _ref['aria-describedby'],
76
+ rest = _objectWithoutProperties(_ref, _excluded);
77
+ var classes = classNames('euiSelectableListItem', {
78
+ 'euiSelectableListItem-isFocused': isFocused
79
+ }, paddingSizeToClassNameMap[paddingSize], className);
80
+ var textClasses = classNames('euiSelectableListItem__text', _defineProperty({}, "euiSelectableListItem__text--".concat(textWrap), textWrap));
81
+ var optionIcon = useMemo(function () {
82
+ if (showIcons) {
83
+ var _resolveIconAndColor = resolveIconAndColor(checked),
84
+ icon = _resolveIconAndColor.icon,
85
+ color = _resolveIconAndColor.color;
86
+ return ___EmotionJSX(EuiIcon, {
87
+ className: "euiSelectableListItem__icon",
88
+ color: color,
89
+ type: icon
90
+ });
91
+ }
92
+ }, [showIcons, checked]);
93
+ var prependNode = useMemo(function () {
94
+ if (prepend) {
95
+ return ___EmotionJSX("span", {
96
+ className: "euiSelectableListItem__prepend"
97
+ }, prepend);
98
+ }
99
+ }, [prepend]);
100
+ var onFocusBadgeNode = useMemo(function () {
101
+ var defaultOnFocusBadgeProps = {
102
+ 'aria-hidden': true,
103
+ iconType: 'returnKey',
104
+ iconSide: 'left',
105
+ color: 'hollow'
106
+ };
107
+ if (onFocusBadge === true) {
108
+ return ___EmotionJSX(EuiBadge, _extends({
109
+ className: "euiSelectableListItem__onFocusBadge"
110
+ }, defaultOnFocusBadgeProps));
111
+ } else if (typeof onFocusBadge !== 'boolean' && !!onFocusBadge) {
112
+ var _children = onFocusBadge.children,
113
+ _className = onFocusBadge.className,
114
+ restBadgeProps = _objectWithoutProperties(onFocusBadge, _excluded2);
115
+ return ___EmotionJSX(EuiBadge, _extends({
116
+ className: classNames('euiSelectableListItem__onFocusBadge', _className)
117
+ }, defaultOnFocusBadgeProps, restBadgeProps), _children);
118
+ }
119
+ }, [onFocusBadge]);
120
+ var showOnFocusBadge = !!(isFocused && !disabled && onFocusBadgeNode);
121
+ var appendNode = useMemo(function () {
122
+ if (append || showOnFocusBadge) {
123
+ return ___EmotionJSX("span", {
124
+ className: "euiSelectableListItem__append"
125
+ }, append, " ", showOnFocusBadge ? onFocusBadgeNode : null);
126
+ }
127
+ }, [append, showOnFocusBadge, onFocusBadgeNode]);
128
+ var screenReaderText = useMemo(function () {
129
+ var state;
130
+ var instructions;
131
+ var screenReaderStrings = {
132
+ checked: {
133
+ state: ___EmotionJSX(EuiI18n, {
134
+ token: "euiSelectableListItem.checkedOption",
135
+ default: "Checked option."
136
+ }),
137
+ instructions: ___EmotionJSX(EuiI18n, {
138
+ token: "euiSelectableListItem.checkOptionInstructions",
139
+ default: "To check this option, press Enter."
140
+ })
141
+ },
142
+ unchecked: {
143
+ instructions: ___EmotionJSX(EuiI18n, {
144
+ token: "euiSelectableListItem.uncheckOptionInstructions",
145
+ default: "To uncheck this option, press Enter."
146
+ })
147
+ },
148
+ excluded: {
149
+ state: ___EmotionJSX(EuiI18n, {
150
+ token: "euiSelectableListItem.excludedOption",
151
+ default: "Excluded option."
152
+ }),
153
+ instructions: ___EmotionJSX(EuiI18n, {
154
+ token: "euiSelectableListItem.excludeOptionInstructions",
155
+ default: "To exclude this option, press Enter."
156
+ })
157
+ },
158
+ mixed: {
159
+ state: ___EmotionJSX(EuiI18n, {
160
+ token: "euiSelectableListItem.mixedOption",
161
+ default: "Mixed (indeterminate) option."
162
+ }),
163
+ instructions: ___EmotionJSX(EuiI18n, {
164
+ token: "euiSelectableListItem.mixedOptionInstructions",
165
+ default: "To check this option for all, press Enter once."
166
+ }),
167
+ uncheckInstructions: ___EmotionJSX(EuiI18n, {
168
+ token: "euiSelectableListItem.mixedOptionUncheckInstructions",
169
+ default: "To uncheck this option for all, press Enter twice."
170
+ }),
171
+ excludeInstructions: ___EmotionJSX(EuiI18n, {
172
+ token: "euiSelectableListItem.mixedOptionExcludeInstructions",
173
+ default: "To exclude this option for all, press Enter twice."
174
+ })
197
175
  }
198
- var appendNode;
199
- if (append || !!onFocusBadge) {
200
- var onFocusBadgeNode;
201
- var defaultOnFocusBadgeProps = {
202
- 'aria-hidden': true,
203
- iconType: 'returnKey',
204
- iconSide: 'left',
205
- color: 'hollow'
206
- };
207
- if (onFocusBadge === true) {
208
- onFocusBadgeNode = ___EmotionJSX(EuiBadge, _extends({
209
- className: "euiSelectableListItem__onFocusBadge"
210
- }, defaultOnFocusBadgeProps));
211
- } else if (typeof onFocusBadge !== 'boolean' && !!onFocusBadge) {
212
- var _children = onFocusBadge.children,
213
- _className = onFocusBadge.className,
214
- restBadgeProps = _objectWithoutProperties(onFocusBadge, _excluded2);
215
- onFocusBadgeNode = ___EmotionJSX(EuiBadge, _extends({
216
- className: classNames('euiSelectableListItem__onFocusBadge', _className)
217
- }, defaultOnFocusBadgeProps, restBadgeProps), _children);
218
- }
176
+ };
177
+ switch (checked) {
178
+ case 'on':
179
+ state = screenReaderStrings.checked.state;
180
+ instructions = allowExclusions ? screenReaderStrings.excluded.instructions : searchable ? screenReaderStrings.unchecked.instructions : undefined;
181
+ break;
182
+ case 'off':
183
+ state = screenReaderStrings.excluded.state;
184
+ instructions = screenReaderStrings.unchecked.instructions;
185
+ break;
186
+ case 'mixed':
187
+ state = screenReaderStrings.mixed.state;
188
+ instructions = ___EmotionJSX(React.Fragment, null, screenReaderStrings.mixed.instructions, ' ', allowExclusions ? screenReaderStrings.mixed.excludeInstructions : screenReaderStrings.mixed.uncheckInstructions);
189
+ break;
190
+ case undefined:
191
+ default:
192
+ instructions = allowExclusions || searchable ? screenReaderStrings.checked.instructions : undefined;
193
+ break;
194
+ }
195
+ return state || instructions ? ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("div", null, state || instructions ? '. ' : null, state, state && instructions ? ' ' : null, instructions)) : null;
196
+ }, [checked, searchable, allowExclusions]);
219
197
 
220
- // Only display the append wrapper if append exists or isFocused
221
- if (append || isFocused && !disabled) {
222
- appendNode = ___EmotionJSX("span", {
223
- className: "euiSelectableListItem__append"
224
- }, append, " ", isFocused && !disabled ? onFocusBadgeNode : null);
198
+ // aria-checked is intended to be used with role="checkbox" but
199
+ // the MDN documentation lists it as a possibility for role="option".
200
+ // See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-checked
201
+ // and https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/option_role
202
+ var ariaChecked = useMemo(function () {
203
+ var rolesThatCanBeMixed = ['option', 'checkbox', 'menuitemcheckbox'];
204
+ var rolesThatCanBeChecked = [].concat(rolesThatCanBeMixed, ['radio', 'menuitemradio', 'switch']);
205
+ if (!rolesThatCanBeChecked.includes(role)) return undefined;
206
+ switch (checked) {
207
+ case 'on':
208
+ case 'off':
209
+ return true;
210
+ case 'mixed':
211
+ if (rolesThatCanBeMixed.includes(role)) {
212
+ return 'mixed';
213
+ } else {
214
+ return false;
225
215
  }
226
- }
227
- var screenReaderText = (state || instructions) && ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("div", null, state || instructions ? '. ' : null, state, state && instructions ? ' ' : null, instructions));
228
- return ___EmotionJSX("li", _extends({
229
- role: role,
230
- "aria-disabled": disabled,
231
- "aria-checked": this.isChecked(role, checked) // Whether the item is "checked"
232
- ,
233
- "aria-selected": !disabled && isFocused // Whether the item has keyboard focus per W3 spec
234
- ,
235
- className: classes
236
- }, rest), ___EmotionJSX("span", {
237
- className: "euiSelectableListItem__content"
238
- }, optionIcon, prependNode, ___EmotionJSX("span", {
239
- className: textClasses
240
- }, children, screenReaderText), appendNode));
216
+ default:
217
+ return false;
218
+ }
219
+ }, [role, checked]);
220
+ var hasToolTip = !!toolTipContent && !disabled;
221
+ var _useState = useState(null),
222
+ _useState2 = _slicedToArray(_useState, 2),
223
+ tooltipRef = _useState2[0],
224
+ setTooltipRef = _useState2[1]; // Needs to be state and not a ref to trigger useEffect
225
+ var _useState3 = useState(_ariaDescribedBy),
226
+ _useState4 = _slicedToArray(_useState3, 2),
227
+ ariaDescribedBy = _useState4[0],
228
+ setAriaDescribedBy = _useState4[1];
229
+
230
+ // Manually trigger the tooltip on keyboard focus
231
+ useEffect(function () {
232
+ if (!tooltipRef) return;
233
+ if (isFocused) {
234
+ tooltipRef.showToolTip();
235
+ } else {
236
+ tooltipRef.hideToolTip();
237
+ }
238
+ }, [isFocused, tooltipRef]);
239
+
240
+ // Manually set the `aria-describedby` id on the <li> wrapper
241
+ useEffect(function () {
242
+ if (tooltipRef) {
243
+ var tooltipId = tooltipRef.state.id;
244
+ setAriaDescribedBy(classNames(tooltipId, _ariaDescribedBy));
241
245
  }
242
- }]);
243
- return EuiSelectableListItem;
244
- }(Component);
245
- _defineProperty(EuiSelectableListItem, "defaultProps", {
246
- showIcons: true,
247
- onFocusBadge: true,
248
- textWrap: 'truncate'
249
- });
246
+ }, [tooltipRef, _ariaDescribedBy]);
247
+ var content = ___EmotionJSX("span", {
248
+ className: "euiSelectableListItem__content"
249
+ }, optionIcon, prependNode, ___EmotionJSX("span", {
250
+ className: textClasses
251
+ }, children, screenReaderText), appendNode);
252
+ return ___EmotionJSX("li", _extends({
253
+ role: role,
254
+ "aria-disabled": disabled,
255
+ "aria-checked": ariaChecked // Whether the item is "checked"
256
+ ,
257
+ "aria-selected": !disabled && isFocused // Whether the item has keyboard focus per W3 spec
258
+ ,
259
+ className: classes
260
+ }, rest, {
261
+ "aria-describedby": ariaDescribedBy
262
+ }), hasToolTip ? ___EmotionJSX(EuiToolTip, _extends({
263
+ ref: setTooltipRef,
264
+ content: toolTipContent,
265
+ anchorClassName: "euiSelectableListItem__tooltipAnchor",
266
+ position: "left"
267
+ }, toolTipProps), content) : content);
268
+ };
@@ -1 +1,9 @@
1
- export {};
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ export var OPTION_CHECKED_STATES = ['on', 'off', 'mixed', undefined];