@elastic/eui 116.2.0 → 116.3.1-snapshot.1782148316870

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 (385) hide show
  1. package/es/components/avatar/avatar.js +18 -5
  2. package/es/components/avatar/avatar.styles.js +16 -16
  3. package/es/components/banner/banner.js +201 -0
  4. package/es/components/banner/banner.styles.js +76 -0
  5. package/es/components/banner/index.js +9 -0
  6. package/es/components/basic_table/basic_table.js +54 -13
  7. package/es/components/basic_table/basic_table.styles.js +19 -1
  8. package/es/components/basic_table/collapsed_item_actions.js +5 -4
  9. package/es/components/basic_table/default_item_action.js +3 -5
  10. package/es/components/basic_table/in_memory_table.js +17 -0
  11. package/es/components/basic_table/index.js +2 -1
  12. package/es/components/basic_table/pagination_bar.js +19 -4
  13. package/es/components/basic_table/pagination_bar.styles.js +21 -0
  14. package/es/components/basic_table/panel.styles.js +14 -0
  15. package/es/components/basic_table/use_panel_props.js +28 -0
  16. package/es/components/breadcrumbs/_breadcrumb_content.js +29 -19
  17. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  18. package/es/components/context_menu/context_menu_panel_title.js +0 -12
  19. package/es/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  20. package/es/components/datagrid/controls/display_selector.js +2 -1
  21. package/es/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  22. package/es/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  23. package/es/components/date_picker/auto_refresh/refresh_interval.js +176 -229
  24. package/es/components/date_picker/date_picker.js +1 -1
  25. package/es/components/date_picker/react-datepicker/src/index.js +1 -5
  26. package/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  27. package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  28. package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  29. package/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  30. package/es/components/flyout/flyout.component.js +10 -6
  31. package/es/components/flyout/flyout_menu.js +122 -19
  32. package/es/components/flyout/flyout_menu.styles.js +2 -1
  33. package/es/components/flyout/manager/actions.js +20 -0
  34. package/es/components/flyout/manager/flyout_child.js +23 -1
  35. package/es/components/flyout/manager/flyout_managed.js +65 -19
  36. package/es/components/flyout/manager/hooks.js +1 -1
  37. package/es/components/flyout/manager/index.js +2 -2
  38. package/es/components/flyout/manager/reducer.js +32 -8
  39. package/es/components/flyout/manager/selectors.js +8 -2
  40. package/es/components/flyout/manager/store.js +35 -2
  41. package/es/components/flyout/use_flyout_menu.js +2 -2
  42. package/es/components/form/field_password/field_password.js +6 -3
  43. package/es/components/form/field_password/field_password.styles.js +1 -1
  44. package/es/components/form/field_search/field_search.styles.js +1 -1
  45. package/es/components/form/form.styles.js +1 -1
  46. package/es/components/form/form_control_layout/form_control_layout_icons.js +95 -143
  47. package/es/components/form/select/select.styles.js +1 -1
  48. package/es/components/form/text_area/text_area.styles.js +1 -1
  49. package/es/components/form/validatable_control/validatable_control.js +8 -55
  50. package/es/components/header/header.a11y.js +1 -1
  51. package/es/components/index.js +1 -0
  52. package/es/components/markdown_editor/markdown_editor_help_button.js +7 -4
  53. package/es/components/pagination/pagination_button_arrow.js +6 -2
  54. package/es/components/panel/panel.styles.js +4 -4
  55. package/es/components/panel/split_panel/split_panel.styles.js +1 -1
  56. package/es/components/search_bar/search_bar.js +20 -16
  57. package/es/components/search_bar/search_box.js +4 -2
  58. package/es/components/selectable/selectable_list/selectable_list.js +1 -1
  59. package/es/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  60. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +2 -1
  61. package/es/components/table/mobile/table_sort_mobile.js +64 -103
  62. package/es/components/table/sticky_header/context.js +32 -0
  63. package/es/components/table/sticky_header/index.js +10 -0
  64. package/es/components/table/sticky_header/sticky_header.js +151 -0
  65. package/es/components/table/sticky_header/sticky_header.styles.js +43 -0
  66. package/es/components/table/store/provider.js +37 -0
  67. package/es/components/table/store/store.js +82 -0
  68. package/es/components/table/store/use_unique_column_id.js +25 -0
  69. package/es/components/table/table.js +28 -3
  70. package/es/components/table/table.styles.js +4 -4
  71. package/es/components/table/table_header_cell.js +115 -48
  72. package/es/components/table/table_header_cell_checkbox.js +58 -25
  73. package/es/components/text_truncate/text_truncate.js +8 -3
  74. package/es/components/tool_tip/tool_tip.js +62 -31
  75. package/es/components/tool_tip/tool_tip.styles.js +14 -5
  76. package/es/components/tool_tip/tool_tip_anchor.js +5 -5
  77. package/es/components/tool_tip/tool_tip_manager.js +27 -2
  78. package/es/utils/publisher.js +53 -0
  79. package/eui.d.ts +2314 -1874
  80. package/i18ntokens.json +2580 -2490
  81. package/lib/components/avatar/avatar.js +18 -5
  82. package/lib/components/avatar/avatar.styles.js +16 -16
  83. package/lib/components/banner/banner.js +210 -0
  84. package/lib/components/banner/banner.styles.js +80 -0
  85. package/lib/components/banner/index.js +12 -0
  86. package/lib/components/basic_table/basic_table.js +53 -12
  87. package/lib/components/basic_table/basic_table.styles.js +19 -1
  88. package/lib/components/basic_table/collapsed_item_actions.js +5 -4
  89. package/lib/components/basic_table/default_item_action.js +3 -5
  90. package/lib/components/basic_table/in_memory_table.js +17 -0
  91. package/lib/components/basic_table/index.js +8 -1
  92. package/lib/components/basic_table/pagination_bar.js +19 -4
  93. package/lib/components/basic_table/pagination_bar.styles.js +26 -0
  94. package/lib/components/basic_table/panel.styles.js +20 -0
  95. package/lib/components/basic_table/use_panel_props.js +33 -0
  96. package/lib/components/breadcrumbs/_breadcrumb_content.js +29 -19
  97. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  98. package/lib/components/context_menu/context_menu_panel_title.js +0 -12
  99. package/lib/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  100. package/lib/components/datagrid/controls/display_selector.js +2 -1
  101. package/lib/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  102. package/lib/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  103. package/lib/components/date_picker/auto_refresh/refresh_interval.js +175 -229
  104. package/lib/components/date_picker/date_picker.js +1 -1
  105. package/lib/components/date_picker/react-datepicker/src/index.js +0 -4
  106. package/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  107. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  108. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  109. package/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  110. package/lib/components/flyout/flyout.component.js +10 -6
  111. package/lib/components/flyout/flyout_menu.js +120 -19
  112. package/lib/components/flyout/flyout_menu.styles.js +2 -1
  113. package/lib/components/flyout/manager/actions.js +21 -1
  114. package/lib/components/flyout/manager/flyout_child.js +23 -1
  115. package/lib/components/flyout/manager/flyout_managed.js +41 -17
  116. package/lib/components/flyout/manager/hooks.js +6 -0
  117. package/lib/components/flyout/manager/index.js +12 -0
  118. package/lib/components/flyout/manager/reducer.js +31 -7
  119. package/lib/components/flyout/manager/selectors.js +9 -3
  120. package/lib/components/flyout/manager/store.js +34 -1
  121. package/lib/components/flyout/use_flyout_menu.js +2 -2
  122. package/lib/components/form/field_password/field_password.js +6 -3
  123. package/lib/components/form/field_password/field_password.styles.js +1 -1
  124. package/lib/components/form/field_search/field_search.styles.js +1 -1
  125. package/lib/components/form/form.styles.js +1 -1
  126. package/lib/components/form/form_control_layout/form_control_layout_icons.js +95 -145
  127. package/lib/components/form/select/select.styles.js +1 -1
  128. package/lib/components/form/text_area/text_area.styles.js +1 -1
  129. package/lib/components/form/validatable_control/validatable_control.js +7 -52
  130. package/lib/components/header/header.a11y.js +1 -1
  131. package/lib/components/index.js +11 -0
  132. package/lib/components/markdown_editor/markdown_editor_help_button.js +7 -4
  133. package/lib/components/pagination/pagination_button_arrow.js +6 -2
  134. package/lib/components/panel/panel.styles.js +4 -4
  135. package/lib/components/panel/split_panel/split_panel.styles.js +1 -1
  136. package/lib/components/search_bar/search_bar.js +20 -16
  137. package/lib/components/search_bar/search_box.js +4 -2
  138. package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  139. package/lib/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  140. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +2 -1
  141. package/lib/components/table/mobile/table_sort_mobile.js +71 -108
  142. package/lib/components/table/sticky_header/context.js +41 -0
  143. package/lib/components/table/sticky_header/index.js +19 -0
  144. package/lib/components/table/sticky_header/sticky_header.js +156 -0
  145. package/lib/components/table/sticky_header/sticky_header.styles.js +47 -0
  146. package/lib/components/table/store/provider.js +46 -0
  147. package/lib/components/table/store/store.js +87 -0
  148. package/lib/components/table/store/use_unique_column_id.js +34 -0
  149. package/lib/components/table/table.js +28 -3
  150. package/lib/components/table/table.styles.js +4 -4
  151. package/lib/components/table/table_header_cell.js +117 -48
  152. package/lib/components/table/table_header_cell_checkbox.js +61 -25
  153. package/lib/components/text_truncate/text_truncate.js +8 -3
  154. package/lib/components/tool_tip/tool_tip.js +60 -30
  155. package/lib/components/tool_tip/tool_tip.styles.js +14 -5
  156. package/lib/components/tool_tip/tool_tip_anchor.js +5 -5
  157. package/lib/components/tool_tip/tool_tip_manager.js +27 -2
  158. package/lib/utils/publisher.js +59 -0
  159. package/optimize/es/components/avatar/avatar.js +16 -4
  160. package/optimize/es/components/avatar/avatar.styles.js +16 -16
  161. package/optimize/es/components/banner/banner.js +111 -0
  162. package/optimize/es/components/banner/banner.styles.js +76 -0
  163. package/optimize/es/components/banner/index.js +9 -0
  164. package/optimize/es/components/basic_table/basic_table.js +37 -13
  165. package/optimize/es/components/basic_table/basic_table.styles.js +19 -1
  166. package/optimize/es/components/basic_table/collapsed_item_actions.js +5 -4
  167. package/optimize/es/components/basic_table/default_item_action.js +3 -5
  168. package/optimize/es/components/basic_table/index.js +2 -1
  169. package/optimize/es/components/basic_table/pagination_bar.js +19 -4
  170. package/optimize/es/components/basic_table/pagination_bar.styles.js +21 -0
  171. package/optimize/es/components/basic_table/panel.styles.js +14 -0
  172. package/optimize/es/components/basic_table/use_panel_props.js +28 -0
  173. package/optimize/es/components/breadcrumbs/_breadcrumb_content.js +27 -18
  174. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  175. package/optimize/es/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  176. package/optimize/es/components/datagrid/controls/display_selector.js +2 -1
  177. package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  178. package/optimize/es/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  179. package/optimize/es/components/date_picker/auto_refresh/refresh_interval.js +172 -196
  180. package/optimize/es/components/date_picker/date_picker.js +1 -1
  181. package/optimize/es/components/date_picker/react-datepicker/src/index.js +1 -5
  182. package/optimize/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  183. package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  184. package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  185. package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  186. package/optimize/es/components/flyout/flyout.component.js +10 -6
  187. package/optimize/es/components/flyout/flyout_menu.js +99 -18
  188. package/optimize/es/components/flyout/flyout_menu.styles.js +2 -1
  189. package/optimize/es/components/flyout/manager/actions.js +20 -0
  190. package/optimize/es/components/flyout/manager/flyout_managed.js +42 -18
  191. package/optimize/es/components/flyout/manager/hooks.js +1 -1
  192. package/optimize/es/components/flyout/manager/index.js +2 -2
  193. package/optimize/es/components/flyout/manager/reducer.js +32 -8
  194. package/optimize/es/components/flyout/manager/selectors.js +8 -2
  195. package/optimize/es/components/flyout/manager/store.js +35 -2
  196. package/optimize/es/components/flyout/use_flyout_menu.js +2 -2
  197. package/optimize/es/components/form/field_password/field_password.js +6 -3
  198. package/optimize/es/components/form/field_password/field_password.styles.js +1 -1
  199. package/optimize/es/components/form/field_search/field_search.styles.js +1 -1
  200. package/optimize/es/components/form/form.styles.js +1 -1
  201. package/optimize/es/components/form/form_control_layout/form_control_layout_icons.js +96 -115
  202. package/optimize/es/components/form/select/select.styles.js +1 -1
  203. package/optimize/es/components/form/text_area/text_area.styles.js +1 -1
  204. package/optimize/es/components/form/validatable_control/validatable_control.js +7 -48
  205. package/optimize/es/components/header/header.a11y.js +1 -1
  206. package/optimize/es/components/index.js +1 -0
  207. package/optimize/es/components/markdown_editor/markdown_editor_help_button.js +7 -4
  208. package/optimize/es/components/pagination/pagination_button_arrow.js +6 -2
  209. package/optimize/es/components/panel/panel.styles.js +4 -4
  210. package/optimize/es/components/panel/split_panel/split_panel.styles.js +1 -1
  211. package/optimize/es/components/search_bar/search_bar.js +20 -16
  212. package/optimize/es/components/search_bar/search_box.js +4 -2
  213. package/optimize/es/components/selectable/selectable_list/selectable_list.js +1 -1
  214. package/optimize/es/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  215. package/optimize/es/components/table/mobile/table_sort_mobile.js +59 -82
  216. package/optimize/es/components/table/sticky_header/context.js +32 -0
  217. package/optimize/es/components/table/sticky_header/index.js +10 -0
  218. package/optimize/es/components/table/sticky_header/sticky_header.js +146 -0
  219. package/optimize/es/components/table/sticky_header/sticky_header.styles.js +43 -0
  220. package/optimize/es/components/table/store/provider.js +37 -0
  221. package/optimize/es/components/table/store/store.js +82 -0
  222. package/optimize/es/components/table/store/use_unique_column_id.js +25 -0
  223. package/optimize/es/components/table/table.js +15 -3
  224. package/optimize/es/components/table/table.styles.js +4 -4
  225. package/optimize/es/components/table/table_header_cell.js +115 -48
  226. package/optimize/es/components/table/table_header_cell_checkbox.js +58 -25
  227. package/optimize/es/components/text_truncate/text_truncate.js +8 -3
  228. package/optimize/es/components/tool_tip/tool_tip.js +59 -31
  229. package/optimize/es/components/tool_tip/tool_tip.styles.js +14 -5
  230. package/optimize/es/components/tool_tip/tool_tip_anchor.js +5 -5
  231. package/optimize/es/components/tool_tip/tool_tip_manager.js +27 -2
  232. package/optimize/es/utils/publisher.js +53 -0
  233. package/optimize/lib/components/avatar/avatar.js +16 -4
  234. package/optimize/lib/components/avatar/avatar.styles.js +16 -16
  235. package/optimize/lib/components/banner/banner.js +120 -0
  236. package/optimize/lib/components/banner/banner.styles.js +80 -0
  237. package/optimize/lib/components/banner/index.js +12 -0
  238. package/optimize/lib/components/basic_table/basic_table.js +36 -12
  239. package/optimize/lib/components/basic_table/basic_table.styles.js +19 -1
  240. package/optimize/lib/components/basic_table/collapsed_item_actions.js +5 -4
  241. package/optimize/lib/components/basic_table/default_item_action.js +3 -5
  242. package/optimize/lib/components/basic_table/index.js +8 -1
  243. package/optimize/lib/components/basic_table/pagination_bar.js +19 -4
  244. package/optimize/lib/components/basic_table/pagination_bar.styles.js +26 -0
  245. package/optimize/lib/components/basic_table/panel.styles.js +20 -0
  246. package/optimize/lib/components/basic_table/use_panel_props.js +33 -0
  247. package/optimize/lib/components/breadcrumbs/_breadcrumb_content.js +27 -18
  248. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  249. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  250. package/optimize/lib/components/datagrid/controls/display_selector.js +2 -1
  251. package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  252. package/optimize/lib/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  253. package/optimize/lib/components/date_picker/auto_refresh/refresh_interval.js +170 -194
  254. package/optimize/lib/components/date_picker/date_picker.js +1 -1
  255. package/optimize/lib/components/date_picker/react-datepicker/src/index.js +0 -4
  256. package/optimize/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  257. package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  258. package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  259. package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  260. package/optimize/lib/components/flyout/flyout.component.js +10 -6
  261. package/optimize/lib/components/flyout/flyout_menu.js +98 -18
  262. package/optimize/lib/components/flyout/flyout_menu.styles.js +2 -1
  263. package/optimize/lib/components/flyout/manager/actions.js +21 -1
  264. package/optimize/lib/components/flyout/manager/flyout_managed.js +41 -17
  265. package/optimize/lib/components/flyout/manager/hooks.js +6 -0
  266. package/optimize/lib/components/flyout/manager/index.js +12 -0
  267. package/optimize/lib/components/flyout/manager/reducer.js +31 -7
  268. package/optimize/lib/components/flyout/manager/selectors.js +9 -3
  269. package/optimize/lib/components/flyout/manager/store.js +34 -1
  270. package/optimize/lib/components/flyout/use_flyout_menu.js +2 -2
  271. package/optimize/lib/components/form/field_password/field_password.js +6 -3
  272. package/optimize/lib/components/form/field_password/field_password.styles.js +1 -1
  273. package/optimize/lib/components/form/field_search/field_search.styles.js +1 -1
  274. package/optimize/lib/components/form/form.styles.js +1 -1
  275. package/optimize/lib/components/form/form_control_layout/form_control_layout_icons.js +96 -117
  276. package/optimize/lib/components/form/select/select.styles.js +1 -1
  277. package/optimize/lib/components/form/text_area/text_area.styles.js +1 -1
  278. package/optimize/lib/components/form/validatable_control/validatable_control.js +6 -49
  279. package/optimize/lib/components/header/header.a11y.js +1 -1
  280. package/optimize/lib/components/index.js +11 -0
  281. package/optimize/lib/components/markdown_editor/markdown_editor_help_button.js +7 -4
  282. package/optimize/lib/components/pagination/pagination_button_arrow.js +6 -2
  283. package/optimize/lib/components/panel/panel.styles.js +4 -4
  284. package/optimize/lib/components/panel/split_panel/split_panel.styles.js +1 -1
  285. package/optimize/lib/components/search_bar/search_bar.js +20 -16
  286. package/optimize/lib/components/search_bar/search_box.js +4 -2
  287. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  288. package/optimize/lib/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  289. package/optimize/lib/components/table/mobile/table_sort_mobile.js +61 -83
  290. package/optimize/lib/components/table/sticky_header/context.js +41 -0
  291. package/optimize/lib/components/table/sticky_header/index.js +19 -0
  292. package/optimize/lib/components/table/sticky_header/sticky_header.js +156 -0
  293. package/optimize/lib/components/table/sticky_header/sticky_header.styles.js +47 -0
  294. package/optimize/lib/components/table/store/provider.js +46 -0
  295. package/optimize/lib/components/table/store/store.js +87 -0
  296. package/optimize/lib/components/table/store/use_unique_column_id.js +34 -0
  297. package/optimize/lib/components/table/table.js +15 -3
  298. package/optimize/lib/components/table/table.styles.js +4 -4
  299. package/optimize/lib/components/table/table_header_cell.js +118 -48
  300. package/optimize/lib/components/table/table_header_cell_checkbox.js +61 -25
  301. package/optimize/lib/components/text_truncate/text_truncate.js +8 -3
  302. package/optimize/lib/components/tool_tip/tool_tip.js +58 -30
  303. package/optimize/lib/components/tool_tip/tool_tip.styles.js +14 -5
  304. package/optimize/lib/components/tool_tip/tool_tip_anchor.js +5 -5
  305. package/optimize/lib/components/tool_tip/tool_tip_manager.js +27 -2
  306. package/optimize/lib/utils/publisher.js +59 -0
  307. package/package.json +9 -6
  308. package/test-env/components/avatar/avatar.js +18 -5
  309. package/test-env/components/avatar/avatar.styles.js +16 -16
  310. package/test-env/components/banner/banner.js +209 -0
  311. package/test-env/components/banner/banner.styles.js +80 -0
  312. package/test-env/components/banner/index.js +12 -0
  313. package/test-env/components/basic_table/basic_table.js +53 -12
  314. package/test-env/components/basic_table/basic_table.styles.js +19 -1
  315. package/test-env/components/basic_table/collapsed_item_actions.js +5 -4
  316. package/test-env/components/basic_table/default_item_action.js +3 -5
  317. package/test-env/components/basic_table/in_memory_table.js +17 -0
  318. package/test-env/components/basic_table/index.js +8 -1
  319. package/test-env/components/basic_table/pagination_bar.js +19 -4
  320. package/test-env/components/basic_table/pagination_bar.styles.js +26 -0
  321. package/test-env/components/basic_table/panel.styles.js +20 -0
  322. package/test-env/components/basic_table/use_panel_props.js +33 -0
  323. package/test-env/components/breadcrumbs/_breadcrumb_content.js +29 -19
  324. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +2 -1
  325. package/test-env/components/context_menu/context_menu_panel_title.js +0 -12
  326. package/test-env/components/datagrid/body/cell/data_grid_cell_actions.js +11 -7
  327. package/test-env/components/datagrid/controls/display_selector.js +2 -1
  328. package/test-env/components/datagrid/controls/keyboard_shortcuts.js +2 -1
  329. package/test-env/components/date_picker/auto_refresh/auto_refresh.js +7 -4
  330. package/test-env/components/date_picker/auto_refresh/refresh_interval.js +170 -220
  331. package/test-env/components/date_picker/date_picker.js +1 -1
  332. package/test-env/components/date_picker/react-datepicker/src/index.js +0 -4
  333. package/test-env/components/date_picker/super_date_picker/date_popover/absolute_tab.js +6 -3
  334. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.js +10 -2
  335. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.styles.js +2 -1
  336. package/test-env/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +8 -5
  337. package/test-env/components/flyout/flyout.component.js +10 -6
  338. package/test-env/components/flyout/flyout_menu.js +121 -19
  339. package/test-env/components/flyout/flyout_menu.styles.js +2 -1
  340. package/test-env/components/flyout/manager/actions.js +21 -1
  341. package/test-env/components/flyout/manager/flyout_child.js +23 -1
  342. package/test-env/components/flyout/manager/flyout_managed.js +41 -17
  343. package/test-env/components/flyout/manager/hooks.js +6 -0
  344. package/test-env/components/flyout/manager/index.js +12 -0
  345. package/test-env/components/flyout/manager/reducer.js +31 -7
  346. package/test-env/components/flyout/manager/selectors.js +9 -3
  347. package/test-env/components/flyout/manager/store.js +34 -1
  348. package/test-env/components/flyout/use_flyout_menu.js +2 -2
  349. package/test-env/components/form/field_password/field_password.js +6 -3
  350. package/test-env/components/form/field_password/field_password.styles.js +1 -1
  351. package/test-env/components/form/field_search/field_search.styles.js +1 -1
  352. package/test-env/components/form/form.styles.js +1 -1
  353. package/test-env/components/form/form_control_layout/form_control_layout_icons.js +95 -139
  354. package/test-env/components/form/select/select.styles.js +1 -1
  355. package/test-env/components/form/text_area/text_area.styles.js +1 -1
  356. package/test-env/components/form/validatable_control/validatable_control.js +6 -48
  357. package/test-env/components/header/header.a11y.js +1 -1
  358. package/test-env/components/index.js +11 -0
  359. package/test-env/components/markdown_editor/markdown_editor_help_button.js +7 -4
  360. package/test-env/components/pagination/pagination_button_arrow.js +6 -2
  361. package/test-env/components/panel/panel.styles.js +4 -4
  362. package/test-env/components/panel/split_panel/split_panel.styles.js +1 -1
  363. package/test-env/components/search_bar/search_bar.js +20 -16
  364. package/test-env/components/search_bar/search_box.js +4 -2
  365. package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
  366. package/test-env/components/selectable/selectable_list/selectable_list.styles.js +1 -1
  367. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +2 -1
  368. package/test-env/components/table/mobile/table_sort_mobile.js +61 -98
  369. package/test-env/components/table/sticky_header/context.js +41 -0
  370. package/test-env/components/table/sticky_header/index.js +19 -0
  371. package/test-env/components/table/sticky_header/sticky_header.js +156 -0
  372. package/test-env/components/table/sticky_header/sticky_header.styles.js +47 -0
  373. package/test-env/components/table/store/provider.js +46 -0
  374. package/test-env/components/table/store/store.js +87 -0
  375. package/test-env/components/table/store/use_unique_column_id.js +34 -0
  376. package/test-env/components/table/table.js +28 -3
  377. package/test-env/components/table/table.styles.js +4 -4
  378. package/test-env/components/table/table_header_cell.js +118 -48
  379. package/test-env/components/table/table_header_cell_checkbox.js +61 -25
  380. package/test-env/components/text_truncate/text_truncate.js +8 -3
  381. package/test-env/components/tool_tip/tool_tip.js +58 -30
  382. package/test-env/components/tool_tip/tool_tip.styles.js +14 -5
  383. package/test-env/components/tool_tip/tool_tip_anchor.js +5 -5
  384. package/test-env/components/tool_tip/tool_tip_manager.js +27 -2
  385. package/test-env/utils/publisher.js +59 -0
@@ -42,11 +42,11 @@ var euiTableVariables = exports.euiTableVariables = function euiTableVariables(_
42
42
  };
43
43
  };
44
44
  var _ref = process.env.NODE_ENV === "production" ? {
45
- name: "mqw298-scrollableWrapper",
46
- styles: "overflow-inline:auto;label:scrollableWrapper;"
45
+ name: "l8gzfy-scrollableWrapper",
46
+ styles: "overflow-inline:auto;overscroll-behavior-inline:none;label:scrollableWrapper;"
47
47
  } : {
48
- name: "mqw298-scrollableWrapper",
49
- styles: "overflow-inline:auto;label:scrollableWrapper;",
48
+ name: "l8gzfy-scrollableWrapper",
49
+ styles: "overflow-inline:auto;overscroll-behavior-inline:none;label:scrollableWrapper;",
50
50
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
51
51
  };
52
52
  var _ref2 = process.env.NODE_ENV === "production" ? {
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
@@ -8,7 +9,7 @@ exports.EuiTableHeaderCell = void 0;
8
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
11
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
- var _react = _interopRequireDefault(require("react"));
12
+ var _react = _interopRequireWildcard(require("react"));
12
13
  var _classnames = _interopRequireDefault(require("classnames"));
13
14
  var _services = require("../../services");
14
15
  var _i18n = require("../i18n");
@@ -20,8 +21,13 @@ var _utils = require("./utils");
20
21
  var _responsive_context = require("./mobile/responsive_context");
21
22
  var _table_cell_content = require("./_table_cell_content");
22
23
  var _table_cells_shared = require("./table_cells_shared.styles");
24
+ var _provider = require("./store/provider");
25
+ var _sticky_header = require("./sticky_header");
26
+ var _use_unique_column_id = require("./store/use_unique_column_id");
23
27
  var _react2 = require("@emotion/react");
24
28
  var _excluded = ["children", "align", "onSort", "isSorted", "isSortAscending", "className", "scope", "mobileOptions", "width", "minWidth", "maxWidth", "style", "readOnly", "tooltipProps", "description", "append", "sticky"];
29
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
30
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
31
  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; }
26
32
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /*
27
33
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -105,58 +111,122 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
105
111
  append = _ref2.append,
106
112
  sticky = _ref2.sticky,
107
113
  rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
114
+ var selfRef = (0, _react.useRef)(null);
115
+ var storeCellId = (0, _use_unique_column_id.useEuiTableStoreUniqueColumnId)();
116
+ var store = (0, _provider.useEuiTableColumnDataStore)();
117
+ var isWithinStickyHeader = (0, _sticky_header.useEuiTableWithinStickyHeader)();
108
118
  var styles = (0, _services.useEuiMemoizedStyles)(_table_cells_shared.euiTableHeaderFooterCellStyles);
109
119
  var stickyStyles = (0, _table_cells_shared._useEuiTableStickyCellStyles)(sticky);
110
120
  var isResponsive = (0, _responsive_context.useEuiTableIsResponsive)();
111
121
  var hideForDesktop = !isResponsive && (mobileOptions === null || mobileOptions === void 0 ? void 0 : mobileOptions.only);
112
122
  var hideForMobile = isResponsive && (mobileOptions === null || mobileOptions === void 0 ? void 0 : mobileOptions.show) === false;
113
- if (hideForDesktop || hideForMobile) return null;
114
- var classes = (0, _classnames.default)('euiTableHeaderCell', className);
115
- var cssStyles = [styles.euiTableHeaderCell, !isResponsive && stickyStyles];
116
- var inlineWidthStyles = (0, _utils.resolveWidthPropsAsStyle)(_style, {
117
- width: width,
118
- minWidth: minWidth,
119
- maxWidth: maxWidth
120
- });
121
- var CellComponent = children ? 'th' : 'td';
122
- var cellScope = CellComponent === 'th' ? scope !== null && scope !== void 0 ? scope : 'col' : undefined; // `scope` is only valid on `th` elements
123
+ var renderHeaderCellRef = (0, _react.useRef)();
124
+ renderHeaderCellRef.current = function (extraProps) {
125
+ if (hideForDesktop || hideForMobile) return null;
126
+ var classes = (0, _classnames.default)('euiTableHeaderCell', className);
127
+ var cssStyles = [styles.euiTableHeaderCell, !isResponsive && stickyStyles];
128
+ var inlineWidthStyles = (0, _utils.resolveWidthPropsAsStyle)(_style, {
129
+ width: width,
130
+ minWidth: minWidth,
131
+ maxWidth: maxWidth
132
+ });
133
+ var CellComponent = children ? 'th' : 'td';
134
+ var cellScope = CellComponent === 'th' ? scope !== null && scope !== void 0 ? scope : 'col' : undefined; // `scope` is only valid on `th` elements
123
135
 
124
- var canSort = !!(onSort && !readOnly);
125
- var ariaSortValue;
126
- if (isSorted) {
127
- ariaSortValue = isSortAscending ? 'ascending' : 'descending';
128
- } else if (canSort) {
129
- ariaSortValue = 'none';
130
- }
131
- var cellContentsProps = {
132
- css: styles.euiTableHeaderCell__content,
133
- align: align,
134
- tooltipProps: tooltipProps,
135
- description: description,
136
- canSort: canSort,
137
- isSorted: isSorted,
138
- isSortAscending: isSortAscending,
139
- children: children
136
+ var canSort = !!(onSort && !readOnly);
137
+ var ariaSortValue;
138
+ if (isSorted) {
139
+ ariaSortValue = isSortAscending ? 'ascending' : 'descending';
140
+ } else if (canSort) {
141
+ ariaSortValue = 'none';
142
+ }
143
+ var cellContentsProps = {
144
+ css: styles.euiTableHeaderCell__content,
145
+ align: align,
146
+ tooltipProps: tooltipProps,
147
+ description: description,
148
+ canSort: canSort,
149
+ isSorted: isSorted,
150
+ isSortAscending: isSortAscending,
151
+ children: children
152
+ };
153
+ return (0, _react2.jsx)(CellComponent, (0, _extends2.default)({
154
+ css: cssStyles,
155
+ className: classes,
156
+ scope: cellScope,
157
+ role: "columnheader",
158
+ "aria-sort": ariaSortValue,
159
+ "data-sticky": !isResponsive && (sticky === null || sticky === void 0 ? void 0 : sticky.side) || undefined,
160
+ style: _objectSpread(_objectSpread({}, _style), inlineWidthStyles)
161
+ }, rest, extraProps), canSort ? (0, _react2.jsx)(_tool_tip.EuiToolTip, (0, _extends2.default)({
162
+ content: tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.content
163
+ }, tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.tooltipProps, {
164
+ display: "block"
165
+ }), (0, _react2.jsx)("button", {
166
+ type: "button",
167
+ css: styles.euiTableHeaderCell__button,
168
+ className: (0, _classnames.default)('euiTableHeaderButton', {
169
+ 'euiTableHeaderButton-isSorted': isSorted
170
+ }),
171
+ onClick: onSort,
172
+ "data-test-subj": "tableHeaderSortButton"
173
+ }, (0, _react2.jsx)(CellContents, cellContentsProps))) : (0, _react2.jsx)(CellContents, cellContentsProps), append);
140
174
  };
141
- return (0, _react2.jsx)(CellComponent, (0, _extends2.default)({
142
- css: cssStyles,
143
- className: classes,
144
- scope: cellScope,
145
- role: "columnheader",
146
- "aria-sort": ariaSortValue,
147
- "data-sticky": !isResponsive && (sticky === null || sticky === void 0 ? void 0 : sticky.side) || undefined,
148
- style: _objectSpread(_objectSpread({}, _style), inlineWidthStyles)
149
- }, rest), canSort ? (0, _react2.jsx)(_tool_tip.EuiToolTip, (0, _extends2.default)({
150
- content: tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.content
151
- }, tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.tooltipProps, {
152
- display: "block"
153
- }), (0, _react2.jsx)("button", {
154
- type: "button",
155
- css: styles.euiTableHeaderCell__button,
156
- className: (0, _classnames.default)('euiTableHeaderButton', {
157
- 'euiTableHeaderButton-isSorted': isSorted
158
- }),
159
- onClick: onSort,
160
- "data-test-subj": "tableHeaderSortButton"
161
- }, (0, _react2.jsx)(CellContents, cellContentsProps))) : (0, _react2.jsx)(CellContents, cellContentsProps), append);
175
+ var handleResize = (0, _react.useCallback)(function (entries) {
176
+ var entry = entries[0];
177
+ if (!entry) {
178
+ return;
179
+ }
180
+ store.updateColumnWidth(storeCellId, entry.contentRect.width);
181
+ }, [store, storeCellId]);
182
+ (0, _react.useEffect)(function () {
183
+ // Don't register the column inside the sticky header as the original
184
+ // column is already registered. This would cause an infinite loop.
185
+ if (isWithinStickyHeader || !selfRef.current || !renderHeaderCellRef.current) {
186
+ return;
187
+ }
188
+ var unregisterColumn = store.registerColumn(storeCellId, {
189
+ renderHeaderCellRef: renderHeaderCellRef,
190
+ // getBoundingClientRect is not the cheapest, but we call it only once
191
+ currentWidth: selfRef.current.getBoundingClientRect().width
192
+ });
193
+
194
+ // ResizeObserver is available in all supported browsers,
195
+ // but jsdom and jest don't provide a polyfill for it.
196
+ var resizeObserver;
197
+ if (typeof window.ResizeObserver !== 'undefined') {
198
+ resizeObserver = new ResizeObserver(handleResize);
199
+
200
+ // Note: This _could_ be optimized by using a single ResizeObserver
201
+ // for the whole EuiTable, but it would need to be changed back to this
202
+ // if/when we implement resizable columns
203
+ resizeObserver.observe(selfRef.current);
204
+ }
205
+ return function () {
206
+ var _resizeObserver;
207
+ unregisterColumn();
208
+ (_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 || _resizeObserver.disconnect();
209
+ };
210
+ }, [store, isWithinStickyHeader, handleResize, storeCellId]);
211
+
212
+ // Notify the store on every render so the sticky header stays in sync.
213
+ // React's reconciliation will efficiently handle any duplicate renders.
214
+ (0, _react.useEffect)(function () {
215
+ // Don't update the store if the component is rendered within EuiTableStickyHeader
216
+ if (isWithinStickyHeader) {
217
+ return;
218
+ }
219
+
220
+ // Don't update the store if the element doesn't exist. The render function
221
+ // in `renderHeaderCellRef` sometimes renders null - e.g., in mobile layout
222
+ if (!selfRef.current) {
223
+ return;
224
+ }
225
+ store.updateColumn(storeCellId, {
226
+ renderHeaderCellRef: renderHeaderCellRef
227
+ });
228
+ });
229
+ return renderHeaderCellRef.current({
230
+ ref: selfRef
231
+ });
162
232
  };
@@ -1,17 +1,21 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.EuiTableHeaderCellCheckbox = void 0;
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
- var _react = _interopRequireDefault(require("react"));
11
+ var _react = _interopRequireWildcard(require("react"));
11
12
  var _classnames = _interopRequireDefault(require("classnames"));
12
13
  var _services = require("../../services");
13
14
  var _utils = require("./utils");
14
15
  var _table_cells_shared = require("./table_cells_shared.styles");
16
+ var _provider = require("./store/provider");
17
+ var _sticky_header = require("./sticky_header");
18
+ var _use_unique_column_id = require("./store/use_unique_column_id");
15
19
  var _react2 = require("@emotion/react");
16
20
  var _excluded = ["children", "className", "scope", "style", "width", "minWidth", "maxWidth", "append"];
17
21
  /*
@@ -21,30 +25,62 @@ var _excluded = ["children", "className", "scope", "style", "width", "minWidth",
21
25
  * in compliance with, at your election, the Elastic License 2.0 or the Server
22
26
  * Side Public License, v 1.
23
27
  */
24
- var EuiTableHeaderCellCheckbox = exports.EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(_ref) {
25
- var children = _ref.children,
26
- className = _ref.className,
27
- _ref$scope = _ref.scope,
28
- scope = _ref$scope === void 0 ? 'col' : _ref$scope,
29
- _style = _ref.style,
30
- width = _ref.width,
31
- minWidth = _ref.minWidth,
32
- maxWidth = _ref.maxWidth,
33
- append = _ref.append,
34
- rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
35
- var classes = (0, _classnames.default)('euiTableHeaderCellCheckbox', className);
28
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
29
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
30
+ var EuiTableHeaderCellCheckbox = exports.EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(props) {
31
+ var children = props.children,
32
+ className = props.className,
33
+ _props$scope = props.scope,
34
+ scope = _props$scope === void 0 ? 'col' : _props$scope,
35
+ _style = props.style,
36
+ width = props.width,
37
+ minWidth = props.minWidth,
38
+ maxWidth = props.maxWidth,
39
+ append = props.append,
40
+ rest = (0, _objectWithoutProperties2.default)(props, _excluded);
41
+ var storeCellId = (0, _use_unique_column_id.useEuiTableStoreUniqueColumnId)();
42
+ var store = (0, _provider.useEuiTableColumnDataStore)();
43
+ var isWithinStickyHeader = (0, _sticky_header.useEuiTableWithinStickyHeader)();
36
44
  var styles = (0, _services.useEuiMemoizedStyles)(_table_cells_shared.euiTableCellCheckboxStyles);
37
- var style = (0, _utils.resolveWidthPropsAsStyle)(_style, {
38
- width: width,
39
- minWidth: minWidth,
40
- maxWidth: maxWidth
45
+ var renderHeaderCellRef = (0, _react.useRef)();
46
+ renderHeaderCellRef.current = function (extraProps) {
47
+ var classes = (0, _classnames.default)('euiTableHeaderCellCheckbox', className);
48
+ var style = (0, _utils.resolveWidthPropsAsStyle)(_style, {
49
+ width: width,
50
+ minWidth: minWidth,
51
+ maxWidth: maxWidth
52
+ });
53
+ return (0, _react2.jsx)("th", (0, _extends2.default)({
54
+ css: styles.euiTableHeaderCellCheckbox,
55
+ className: classes,
56
+ scope: scope,
57
+ style: style
58
+ }, rest, extraProps), (0, _react2.jsx)("div", {
59
+ className: "euiTableCellContent"
60
+ }, children), append);
61
+ };
62
+ (0, _react.useEffect)(function () {
63
+ // Don't register the column inside the sticky header as the original
64
+ // column is already registered. This would cause an infinite loop.
65
+ if (isWithinStickyHeader) {
66
+ return;
67
+ }
68
+ var unregisterColumn = store.registerColumn(storeCellId, {
69
+ renderHeaderCellRef: renderHeaderCellRef
70
+ });
71
+ return function () {
72
+ unregisterColumn();
73
+ };
74
+ }, [store, isWithinStickyHeader, storeCellId]);
75
+ (0, _react.useEffect)(function () {
76
+ // Notify the store on every render so the sticky header stays in sync.
77
+ // React's reconciliation will efficiently handle any duplicate renders.
78
+ if (isWithinStickyHeader) {
79
+ return;
80
+ }
81
+ store.updateColumn(storeCellId, {
82
+ renderHeaderCellRef: renderHeaderCellRef
83
+ });
41
84
  });
42
- return (0, _react2.jsx)("th", (0, _extends2.default)({
43
- css: styles.euiTableHeaderCellCheckbox,
44
- className: classes,
45
- scope: scope,
46
- style: style
47
- }, rest), (0, _react2.jsx)("div", {
48
- className: "euiTableCellContent"
49
- }, children), append);
85
+ return renderHeaderCellRef.current({});
50
86
  };
@@ -13,6 +13,7 @@ var _react = _interopRequireWildcard(require("react"));
13
13
  var _classnames = _interopRequireDefault(require("classnames"));
14
14
  var _services = require("../../services");
15
15
  var _resize_observer = require("../observer/resize_observer");
16
+ var _tool_tip = require("../tool_tip");
16
17
  var _utils = require("./utils");
17
18
  var _text_truncate = require("./text_truncate.styles");
18
19
  var _react2 = require("@emotion/react");
@@ -137,11 +138,10 @@ var EuiTextTruncateWithWidth = function EuiTextTruncateWithWidth(_ref2) {
137
138
  }, [ready, width, text, truncation, truncationOffset, truncationPosition, ellipsis, containerEl]);
138
139
  var isTruncating = truncatedText !== text;
139
140
  var styles = (0, _services.useEuiMemoizedStyles)(_text_truncate.euiTextTruncateStyles);
140
- return (0, _react2.jsx)("div", (0, _extends2.default)({
141
+ var content = (0, _react2.jsx)("div", (0, _extends2.default)({
141
142
  className: (0, _classnames.default)('euiTextTruncate', className),
142
143
  css: styles.euiTextTruncate,
143
- ref: refs,
144
- title: isTruncating ? text : undefined
144
+ ref: refs
145
145
  }, rest), isTruncating ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("span", {
146
146
  className: "euiTextTruncate__truncatedText",
147
147
  css: styles.euiTextTruncate__truncatedText,
@@ -155,6 +155,11 @@ var EuiTextTruncateWithWidth = function EuiTextTruncateWithWidth(_ref2) {
155
155
  className: "euiTextTruncate__fullText",
156
156
  "data-test-subj": "fullText"
157
157
  }, children ? children(text) : text));
158
+ return isTruncating ? (0, _react2.jsx)(_tool_tip.EuiToolTip, {
159
+ content: text,
160
+ disableScreenReaderOutput: true,
161
+ display: "block"
162
+ }, content) : content;
158
163
  };
159
164
  var EuiTextTruncateWithResizeObserver = function EuiTextTruncateWithResizeObserver(_ref3) {
160
165
  var _onResize = _ref3.onResize,
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.POSITIONS = exports.EuiToolTip = exports.DEFAULT_TOOLTIP_OFFSET = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -31,8 +32,10 @@ var _excluded = ["children", "className", "anchorClassName", "anchorProps", "con
31
32
  */
32
33
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
33
34
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
35
+ 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; }
36
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
34
37
  var POSITIONS = exports.POSITIONS = ['top', 'right', 'bottom', 'left'];
35
- var DISPLAYS = ['inlineBlock', 'block'];
38
+ var DISPLAYS = ['inlineBlock', 'block', 'flex'];
36
39
  var DEFAULT_TOOLTIP_OFFSET = exports.DEFAULT_TOOLTIP_OFFSET = 16;
37
40
 
38
41
  /**
@@ -84,22 +87,26 @@ var EuiToolTip = exports.EuiToolTip = /*#__PURE__*/(0, _react.forwardRef)(functi
84
87
  setVisible = _useState2[1];
85
88
  var _useState3 = (0, _react.useState)(false),
86
89
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
87
- hasFocus = _useState4[0],
88
- setHasFocus = _useState4[1];
89
- var _useState5 = (0, _react.useState)(positionProp),
90
+ skipAnimation = _useState4[0],
91
+ setSkipAnimation = _useState4[1];
92
+ var _useState5 = (0, _react.useState)(false),
90
93
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
91
- calculatedPosition = _useState6[0],
92
- setCalculatedPosition = _useState6[1];
93
- var _useState7 = (0, _react.useState)(DEFAULT_TOOLTIP_STYLES),
94
+ hasFocus = _useState6[0],
95
+ setHasFocus = _useState6[1];
96
+ var _useState7 = (0, _react.useState)(positionProp),
94
97
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
95
- toolTipStyles = _useState8[0],
96
- setToolTipStyles = _useState8[1];
97
- var _useState9 = (0, _react.useState)(undefined),
98
+ calculatedPosition = _useState8[0],
99
+ setCalculatedPosition = _useState8[1];
100
+ var _useState9 = (0, _react.useState)(DEFAULT_TOOLTIP_STYLES),
98
101
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
99
- arrowStyles = _useState10[0],
100
- setArrowStyles = _useState10[1];
101
- var generatedId = (0, _react.useRef)((0, _services.htmlIdGenerator)()());
102
- var id = idProp !== null && idProp !== void 0 ? idProp : generatedId.current;
102
+ toolTipStyles = _useState10[0],
103
+ setToolTipStyles = _useState10[1];
104
+ var _useState11 = (0, _react.useState)(undefined),
105
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
106
+ arrowStyles = _useState12[0],
107
+ setArrowStyles = _useState12[1];
108
+ var generatedId = (0, _services.useGeneratedHtmlId)();
109
+ var id = idProp !== null && idProp !== void 0 ? idProp : generatedId;
103
110
  var anchorRef = (0, _react.useRef)(null);
104
111
  var popoverRef = (0, _react.useRef)(null);
105
112
  var positionToolTip = (0, _react.useCallback)(function () {
@@ -151,10 +158,19 @@ var EuiToolTip = exports.EuiToolTip = /*#__PURE__*/(0, _react.forwardRef)(functi
151
158
  setArrowStyles(undefined);
152
159
  _tool_tip_manager.toolTipManager.deregisterToolTip(hideToolTip);
153
160
  }, []);
161
+
162
+ /**
163
+ * Show the tooltip.
164
+ *
165
+ * Uses the tooltip manager's `skipAnimation` signal to optionally skip the entry
166
+ * animation when another tooltip is already open or was just closed.
167
+ */
154
168
  var showToolTip = (0, _react.useCallback)(function () {
155
169
  if (!content && !title) return;
170
+ var result = _tool_tip_manager.toolTipManager.registerTooltip(hideToolTip);
171
+ if (!result) return;
172
+ setSkipAnimation(result.skipAnimation);
156
173
  setVisible(true);
157
- _tool_tip_manager.toolTipManager.registerTooltip(hideToolTip);
158
174
  }, [content, title, hideToolTip]);
159
175
  (0, _react.useImperativeHandle)(ref, function () {
160
176
  return {
@@ -234,18 +250,24 @@ var EuiToolTip = exports.EuiToolTip = /*#__PURE__*/(0, _react.forwardRef)(functi
234
250
  hideToolTip();
235
251
  }
236
252
  }, [disableScreenReaderOutput, visible, hideToolTip]);
237
- var onMouseOut = (0, _react.useCallback)(function (event) {
238
- // Prevent mousing over children from hiding the tooltip by testing for whether the mouse has
239
- // left the anchor for a non-child.
240
- if (anchorRef.current === event.relatedTarget || anchorRef.current != null && !anchorRef.current.contains(event.relatedTarget)) {
241
- if (!hasFocus) {
242
- hideToolTip();
243
- }
244
- }
245
- if (onMouseOutProp) {
246
- onMouseOutProp(event);
247
- }
248
- }, [hasFocus, hideToolTip, onMouseOutProp]);
253
+
254
+ /**
255
+ * Show the tooltip on enter.
256
+ */
257
+ var onMouseEnter = (0, _react.useCallback)(function (event) {
258
+ var _anchorProps$onMouseE;
259
+ showToolTip();
260
+ anchorProps === null || anchorProps === void 0 || (_anchorProps$onMouseE = anchorProps.onMouseEnter) === null || _anchorProps$onMouseE === void 0 || _anchorProps$onMouseE.call(anchorProps, event);
261
+ }, [showToolTip, anchorProps === null || anchorProps === void 0 ? void 0 : anchorProps.onMouseEnter]);
262
+
263
+ /**
264
+ * Hide the tooltip if the mouse is not over the trigger.
265
+ */
266
+ var onMouseLeave = (0, _react.useCallback)(function (event) {
267
+ var _anchorProps$onMouseL;
268
+ if (!hasFocus) hideToolTip();
269
+ anchorProps === null || anchorProps === void 0 || (_anchorProps$onMouseL = anchorProps.onMouseLeave) === null || _anchorProps$onMouseL === void 0 || _anchorProps$onMouseL.call(anchorProps, event);
270
+ }, [hasFocus, hideToolTip, anchorProps === null || anchorProps === void 0 ? void 0 : anchorProps.onMouseLeave]);
249
271
  var classes = (0, _classnames.default)('euiToolTip', className);
250
272
  var anchorClasses = (0, _classnames.default)(anchorClassName, anchorProps === null || anchorProps === void 0 ? void 0 : anchorProps.className);
251
273
  return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_tool_tip_anchor.EuiToolTipAnchor, (0, _extends2.default)({}, anchorProps, {
@@ -253,8 +275,9 @@ var EuiToolTip = exports.EuiToolTip = /*#__PURE__*/(0, _react.forwardRef)(functi
253
275
  onBlur: onBlur,
254
276
  onFocus: onFocus,
255
277
  onKeyDown: onEscapeKey,
256
- onMouseOver: showToolTip,
257
- onMouseOut: onMouseOut
278
+ onMouseEnter: onMouseEnter,
279
+ onMouseLeave: onMouseLeave,
280
+ onMouseOut: onMouseOutProp
258
281
  // `id` defines if the trigger and tooltip are automatically linked via `aria-describedby`.
259
282
  ,
260
283
  id: !disableScreenReaderOutput ? id : undefined,
@@ -263,7 +286,12 @@ var EuiToolTip = exports.EuiToolTip = /*#__PURE__*/(0, _react.forwardRef)(functi
263
286
  isVisible: visible
264
287
  }), children), visible && (content || title) && (0, _react2.jsx)(_portal.EuiPortal, null, (0, _react2.jsx)(_tool_tip_popover.EuiToolTipPopover, (0, _extends2.default)({
265
288
  className: classes,
266
- style: toolTipStyles,
289
+ style: _objectSpread(_objectSpread({}, toolTipStyles), {}, {
290
+ // Inline `animation: none` overrides the keyframes fade-in
291
+ // shorthand on the base `.euiToolTip` class, so a tooltip
292
+ // shown right after another closes appears instantly.
293
+ animation: skipAnimation ? 'none' : undefined
294
+ }),
267
295
  positionToolTip: positionToolTip,
268
296
  popoverRef: setPopoverRef,
269
297
  title: title,
@@ -48,6 +48,14 @@ var euiToolTipStyles = exports.euiToolTipStyles = function euiToolTipStyles(euiT
48
48
  };
49
49
  };
50
50
  var _ref = process.env.NODE_ENV === "production" ? {
51
+ name: "1cjglks-flex",
52
+ styles: "display:flex;label:flex;"
53
+ } : {
54
+ name: "1cjglks-flex",
55
+ styles: "display:flex;label:flex;",
56
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
57
+ };
58
+ var _ref2 = process.env.NODE_ENV === "production" ? {
51
59
  name: "fzilnk-inlineBlock",
52
60
  styles: "display:inline-block;label:inlineBlock;"
53
61
  } : {
@@ -55,7 +63,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
55
63
  styles: "display:inline-block;label:inlineBlock;",
56
64
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
57
65
  };
58
- var _ref2 = process.env.NODE_ENV === "production" ? {
66
+ var _ref3 = process.env.NODE_ENV === "production" ? {
59
67
  name: "14aceuy-block",
60
68
  styles: "display:block;label:block;"
61
69
  } : {
@@ -63,7 +71,7 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
63
71
  styles: "display:block;label:block;",
64
72
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
65
73
  };
66
- var _ref3 = process.env.NODE_ENV === "production" ? {
74
+ var _ref4 = process.env.NODE_ENV === "production" ? {
67
75
  name: "1s3i3p5-euiToolTipAnchor",
68
76
  styles: "*[disabled]{pointer-events:none;};label:euiToolTipAnchor;"
69
77
  } : {
@@ -74,9 +82,10 @@ var _ref3 = process.env.NODE_ENV === "production" ? {
74
82
  var euiToolTipAnchorStyles = exports.euiToolTipAnchorStyles = function euiToolTipAnchorStyles() {
75
83
  return {
76
84
  // Elements
77
- euiToolTipAnchor: _ref3,
85
+ euiToolTipAnchor: _ref4,
78
86
  // Variants
79
- block: _ref2,
80
- inlineBlock: _ref
87
+ block: _ref3,
88
+ inlineBlock: _ref2,
89
+ flex: _ref
81
90
  };
82
91
  };
@@ -13,7 +13,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
13
13
  var _services = require("../../services");
14
14
  var _tool_tip = require("./tool_tip.styles");
15
15
  var _react2 = require("@emotion/react");
16
- var _excluded = ["onBlur", "onFocus", "onMouseOver", "onMouseOut", "id", "className", "children", "display", "isVisible"];
16
+ var _excluded = ["onBlur", "onFocus", "onMouseEnter", "onMouseLeave", "id", "className", "children", "display", "isVisible"];
17
17
  /*
18
18
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
19
19
  * or more contributor license agreements. Licensed under the Elastic License
@@ -26,8 +26,8 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
26
26
  var EuiToolTipAnchor = exports.EuiToolTipAnchor = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
27
27
  var _onBlur = _ref.onBlur,
28
28
  _onFocus = _ref.onFocus,
29
- onMouseOver = _ref.onMouseOver,
30
- onMouseOut = _ref.onMouseOut,
29
+ onMouseEnter = _ref.onMouseEnter,
30
+ onMouseLeave = _ref.onMouseLeave,
31
31
  id = _ref.id,
32
32
  className = _ref.className,
33
33
  children = _ref.children,
@@ -51,8 +51,8 @@ var EuiToolTipAnchor = exports.EuiToolTipAnchor = /*#__PURE__*/(0, _react.forwar
51
51
  id: anchorId
52
52
  }, rest, {
53
53
  className: classes,
54
- onMouseOver: onMouseOver,
55
- onMouseOut: onMouseOut
54
+ onMouseEnter: onMouseEnter,
55
+ onMouseLeave: onMouseLeave
56
56
  }), /*#__PURE__*/(0, _react.cloneElement)(children, {
57
57
  onFocus: function onFocus(e) {
58
58
  _onFocus(e);
@@ -15,29 +15,54 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
15
15
  * in compliance with, at your election, the Elastic License 2.0 or the Server
16
16
  * Side Public License, v 1.
17
17
  */
18
+
18
19
  /**
19
20
  * Manager utility that ensures only one tooltip is visible at a time
21
+ * and lets the next tooltip to open skip its entry animation if another was
22
+ * just opened or just closed.
20
23
  *
21
24
  * UX rationale (primarily for mouse-only users):
22
25
  * @see https://github.com/elastic/kibana/issues/144482
23
26
  * @see https://github.com/elastic/eui/issues/5883
24
27
  */
28
+
29
+ /**
30
+ * Time window in ms after a tooltip closes during which the next one to open
31
+ * skips its entry animation.
32
+ */
33
+ var SKIP_ANIMATION_WINDOW = 300;
25
34
  var ToolTipManager = /*#__PURE__*/(0, _createClass2.default)(function ToolTipManager() {
26
35
  var _this = this;
27
36
  (0, _classCallCheck2.default)(this, ToolTipManager);
28
37
  // We use a set instead of a single var just in case
29
38
  // multiple tooltips are registered via async shenanigans
30
39
  (0, _defineProperty2.default)(this, "toolTipsToHide", new Set());
40
+ // Timestamp of the last hide; `null` means no tooltip has closed yet.
41
+ (0, _defineProperty2.default)(this, "lastHiddenAt", null);
31
42
  (0, _defineProperty2.default)(this, "registerTooltip", function (hideCallback) {
32
- if (_this.toolTipsToHide.has(hideCallback)) return;
43
+ if (_this.toolTipsToHide.has(hideCallback)) return null;
44
+ var hadOpen = _this.toolTipsToHide.size > 0;
45
+ var recentlyClosed = _this.lastHiddenAt !== null && Date.now() - _this.lastHiddenAt < SKIP_ANIMATION_WINDOW;
33
46
  _this.toolTipsToHide.forEach(function (hide) {
34
47
  return hide();
35
48
  });
36
49
  _this.toolTipsToHide.clear();
37
50
  _this.toolTipsToHide.add(hideCallback);
51
+ return {
52
+ skipAnimation: hadOpen || recentlyClosed
53
+ };
38
54
  });
39
55
  (0, _defineProperty2.default)(this, "deregisterToolTip", function (hideCallback) {
40
- _this.toolTipsToHide.delete(hideCallback);
56
+ if (_this.toolTipsToHide.delete(hideCallback)) _this.lastHiddenAt = Date.now();
57
+ });
58
+ /**
59
+ * Resets all internal state. Primarily intended for tests, so that a
60
+ * tooltip shown in one test doesn't leak into the next (the manager is a
61
+ * module-level singleton).
62
+ */
63
+ (0, _defineProperty2.default)(this, "reset", function () {
64
+ _this.toolTipsToHide.clear();
65
+ _this.lastHiddenAt = null;
41
66
  });
42
67
  });
43
68
  var toolTipManager = exports.toolTipManager = new ToolTipManager();