@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
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useEuiTableColumnDataStore = exports.EuiTableStoreProvider = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _store = require("./store");
10
+ var _react2 = require("@emotion/react");
11
+ 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); }
12
+ 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; }
13
+ /*
14
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
15
+ * or more contributor license agreements. Licensed under the Elastic License
16
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
17
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
18
+ * Side Public License, v 1.
19
+ */
20
+
21
+ var EuiTableStoreContext = /*#__PURE__*/(0, _react.createContext)(null);
22
+
23
+ /**
24
+ * @internal
25
+ */
26
+ var EuiTableStoreProvider = exports.EuiTableStoreProvider = function EuiTableStoreProvider(_ref) {
27
+ var children = _ref.children;
28
+ var store = (0, _react.useRef)(null);
29
+ if (!store.current) {
30
+ store.current = (0, _store.createEuiTableStore)();
31
+ }
32
+ return (0, _react2.jsx)(EuiTableStoreContext.Provider, {
33
+ value: store.current
34
+ }, children);
35
+ };
36
+
37
+ /**
38
+ * @internal
39
+ */
40
+ var useEuiTableColumnDataStore = exports.useEuiTableColumnDataStore = function useEuiTableColumnDataStore() {
41
+ var store = (0, _react.useContext)(EuiTableStoreContext);
42
+ if (!store) {
43
+ throw new Error('[useEuiTableColumnDataStore] Store context not found. This hook must be used within EuiTable!');
44
+ }
45
+ return store;
46
+ };
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createEuiTableStore = void 0;
7
+ var _publisher = require("../../../utils/publisher");
8
+ /*
9
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
10
+ * or more contributor license agreements. Licensed under the Elastic License
11
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
12
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
13
+ * Side Public License, v 1.
14
+ */
15
+
16
+ /**
17
+ * @internal
18
+ */
19
+
20
+ /**
21
+ * @internal
22
+ */
23
+
24
+ /**
25
+ * EuiTable store that helps with column and width synchronization between
26
+ * the original table and the "virtual" sticky header table.
27
+ *
28
+ * This store is currently only used for these synchronization purposes, but
29
+ * that may extend as we implement resizable columns.
30
+ * If that's not implemented by the time per-axis `position: sticky`
31
+ * is supported in all browsers natively, this can be removed.
32
+ * @internal
33
+ */
34
+
35
+ var createEuiTableStore = exports.createEuiTableStore = function createEuiTableStore() {
36
+ var columns = new Map();
37
+ var columnsPublisher = (0, _publisher.createPublisher)();
38
+ var columnWidths = new Map();
39
+ var columnWidthsPublisher = (0, _publisher.createPublisher)();
40
+ var registerColumn = function registerColumn(id, data) {
41
+ var _data$currentWidth;
42
+ if (columns.has(id)) {
43
+ throw new Error("[EuiTableStore] Column '".concat(id, "' already registered"));
44
+ }
45
+ columns.set(id, data);
46
+ // Initialize column in the columnWidths map to keep both maps in sync
47
+ columnWidths.set(id, (_data$currentWidth = data.currentWidth) !== null && _data$currentWidth !== void 0 ? _data$currentWidth : 0);
48
+ columnsPublisher.notify(columns);
49
+ return function () {
50
+ columns.delete(id);
51
+ columnWidths.delete(id);
52
+ columnsPublisher.notify(columns);
53
+ };
54
+ };
55
+ var updateColumn = function updateColumn(id, data) {
56
+ var currentData = columns.get(id);
57
+ if (!currentData) {
58
+ throw new Error("[EuiTableStore] Column '".concat(id, "' not found"));
59
+ }
60
+ columns.set(id, data);
61
+ columnsPublisher.notify(columns);
62
+ };
63
+ var updateColumnWidth = function updateColumnWidth(id, width) {
64
+ var currentWidth = columnWidths.get(id);
65
+ if (currentWidth === undefined) {
66
+ throw new Error("[EuiTableStore] No width stored for column '".concat(id, "'"));
67
+ }
68
+ if (currentWidth === width) {
69
+ return;
70
+ }
71
+ columnWidths.set(id, width);
72
+ columnWidthsPublisher.notify(columnWidths);
73
+ };
74
+ return {
75
+ registerColumn: registerColumn,
76
+ updateColumn: updateColumn,
77
+ updateColumnWidth: updateColumnWidth,
78
+ subscribe: columnsPublisher.subscribe,
79
+ subscribeToColumnWidths: columnWidthsPublisher.subscribe,
80
+ getColumns: function getColumns() {
81
+ return columns;
82
+ },
83
+ getColumnWidths: function getColumnWidths() {
84
+ return columnWidths;
85
+ }
86
+ };
87
+ };
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useEuiTableStoreUniqueColumnId = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _uuid = require("uuid");
10
+ 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); }
11
+ 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; }
12
+ /*
13
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
14
+ * or more contributor license agreements. Licensed under the Elastic License
15
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
16
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
17
+ * Side Public License, v 1.
18
+ */
19
+
20
+ var useEuiTableStoreUniqueColumnIdFallback = function useEuiTableStoreUniqueColumnIdFallback() {
21
+ var ref = (0, _react.useRef)((0, _uuid.v4)());
22
+ return ref.current;
23
+ };
24
+
25
+ /**
26
+ * Returns a stable unique column ID to be used when registering columns.
27
+ * It uses `React.useId()` when available and falls back to UUID v4 on React 17.
28
+ *
29
+ * This is needed so that static `uuid` mocks don't break column registration
30
+ * (at least in React 18+; in older versions this function would need
31
+ * to be mocked to return something unique, but stable).
32
+ * @internal
33
+ */
34
+ var useEuiTableStoreUniqueColumnId = exports.useEuiTableStoreUniqueColumnId = 'useId' in _react.default ? _react.useId : useEuiTableStoreUniqueColumnIdFallback;
@@ -16,8 +16,10 @@ var _component_defaults = require("../provider/component_defaults");
16
16
  var _global_styling = require("../../global_styling");
17
17
  var _const = require("./const");
18
18
  var _sticky_scrollbar = require("./sticky_scrollbar");
19
+ var _sticky_header = require("./sticky_header/sticky_header");
20
+ var _provider = require("./store/provider");
19
21
  var _react2 = require("@emotion/react");
20
- var _excluded = ["children", "className", "compressed", "tableLayout", "hasBackground", "responsiveBreakpoint", "scrollableInline", "stickyScrollbar"];
22
+ var _excluded = ["children", "className", "compressed", "tableLayout", "hasBackground", "responsiveBreakpoint", "scrollableInline", "stickyScrollbar", "stickyHeader"];
21
23
  /*
22
24
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
23
25
  * or more contributor license agreements. Licensed under the Elastic License
@@ -55,20 +57,30 @@ var EuiTable = exports.EuiTable = function EuiTable(originalProps) {
55
57
  scrollableInline = _usePropsWithComponen4 === void 0 ? false : _usePropsWithComponen4,
56
58
  _usePropsWithComponen5 = _usePropsWithComponen.stickyScrollbar,
57
59
  stickyScrollbar = _usePropsWithComponen5 === void 0 ? false : _usePropsWithComponen5,
60
+ _usePropsWithComponen6 = _usePropsWithComponen.stickyHeader,
61
+ stickyHeader = _usePropsWithComponen6 === void 0 ? false : _usePropsWithComponen6,
58
62
  rest = _objectWithoutProperties(_usePropsWithComponen, _excluded);
59
63
  var tableWrapperRef = (0, _react.useRef)(null);
64
+ var tableRef = (0, _react.useRef)(null);
60
65
  var isResponsive = (0, _responsive_context.useIsEuiTableResponsive)(responsiveBreakpoint);
61
66
  var classes = (0, _classnames.default)('euiTable', className);
62
67
  var styles = (0, _services.useEuiMemoizedStyles)(_table.euiTableStyles);
63
68
  var tableStyles = [styles.euiTable, scrollableInline && styles.euiTableScrollableInline, styles.layout[tableLayout], (!compressed || isResponsive) && styles.uncompressed, compressed && !isResponsive && styles.compressed, hasBackground && styles.hasBackground, isResponsive ? styles.mobile : styles.desktop];
64
69
  var cssStyles = [(0, _global_styling.euiContainerCSS)('normal', _const.EUI_TABLE_CSS_CONTAINER_NAME, true), scrollableInline && styles.scrollableWrapper];
65
- return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", {
70
+ return (0, _react2.jsx)(_provider.EuiTableStoreProvider, null, stickyHeader && (0, _react2.jsx)(_sticky_header.EuiTableStickyHeader, {
71
+ scrollableInline: scrollableInline,
72
+ tableRef: tableRef,
73
+ tableWrapperRef: tableWrapperRef,
74
+ compressed: compressed,
75
+ isResponsive: isResponsive
76
+ }), (0, _react2.jsx)("div", {
66
77
  css: cssStyles,
67
78
  ref: tableWrapperRef
68
79
  }, (0, _react2.jsx)("table", _extends({
69
80
  tabIndex: -1,
70
81
  css: tableStyles,
71
- className: classes
82
+ className: classes,
83
+ ref: tableRef
72
84
  }, rest), (0, _react2.jsx)(_responsive_context.EuiTableIsResponsiveContext.Provider, {
73
85
  value: isResponsive
74
86
  }, (0, _react2.jsx)(_table_context.EuiTableVariantContext.Provider, {
@@ -121,6 +133,19 @@ EuiTable.propTypes = {
121
133
  * @default false
122
134
  */
123
135
  stickyScrollbar: _propTypes.default.bool,
136
+ /**
137
+ * When enabled, the table header will stick to the top of the viewport as users
138
+ * scroll through long tables. This enhances usability by maintaining column
139
+ * context during vertical scrolling and unifies the scrolling experience
140
+ * between EuiTable components and EuiDataGrid.
141
+ *
142
+ * This feature should be used in places where it's possible for the table
143
+ * to grow longer than the viewport.
144
+ *
145
+ * @beta
146
+ * @default false
147
+ */
148
+ stickyHeader: _propTypes.default.bool,
124
149
  className: _propTypes.default.string,
125
150
  "aria-label": _propTypes.default.string,
126
151
  "data-test-subj": _propTypes.default.string,
@@ -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" ? {
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.EuiTableHeaderCell = void 0;
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _react = _interopRequireDefault(require("react"));
9
+ var _react = _interopRequireWildcard(require("react"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
  var _services = require("../../services");
12
12
  var _i18n = require("../i18n");
@@ -18,8 +18,13 @@ var _utils = require("./utils");
18
18
  var _responsive_context = require("./mobile/responsive_context");
19
19
  var _table_cell_content = require("./_table_cell_content");
20
20
  var _table_cells_shared = require("./table_cells_shared.styles");
21
+ var _provider = require("./store/provider");
22
+ var _sticky_header = require("./sticky_header");
23
+ var _use_unique_column_id = require("./store/use_unique_column_id");
21
24
  var _react2 = require("@emotion/react");
22
25
  var _excluded = ["children", "align", "onSort", "isSorted", "isSortAscending", "className", "scope", "mobileOptions", "width", "minWidth", "maxWidth", "style", "readOnly", "tooltipProps", "description", "append", "sticky"];
26
+ 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); }
27
+ 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; }
23
28
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
24
29
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
25
30
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
@@ -110,60 +115,124 @@ var EuiTableHeaderCell = exports.EuiTableHeaderCell = function EuiTableHeaderCel
110
115
  append = _ref2.append,
111
116
  sticky = _ref2.sticky,
112
117
  rest = _objectWithoutProperties(_ref2, _excluded);
118
+ var selfRef = (0, _react.useRef)(null);
119
+ var storeCellId = (0, _use_unique_column_id.useEuiTableStoreUniqueColumnId)();
120
+ var store = (0, _provider.useEuiTableColumnDataStore)();
121
+ var isWithinStickyHeader = (0, _sticky_header.useEuiTableWithinStickyHeader)();
113
122
  var styles = (0, _services.useEuiMemoizedStyles)(_table_cells_shared.euiTableHeaderFooterCellStyles);
114
123
  var stickyStyles = (0, _table_cells_shared._useEuiTableStickyCellStyles)(sticky);
115
124
  var isResponsive = (0, _responsive_context.useEuiTableIsResponsive)();
116
125
  var hideForDesktop = !isResponsive && (mobileOptions === null || mobileOptions === void 0 ? void 0 : mobileOptions.only);
117
126
  var hideForMobile = isResponsive && (mobileOptions === null || mobileOptions === void 0 ? void 0 : mobileOptions.show) === false;
118
- if (hideForDesktop || hideForMobile) return null;
119
- var classes = (0, _classnames.default)('euiTableHeaderCell', className);
120
- var cssStyles = [styles.euiTableHeaderCell, !isResponsive && stickyStyles];
121
- var inlineWidthStyles = (0, _utils.resolveWidthPropsAsStyle)(_style, {
122
- width: width,
123
- minWidth: minWidth,
124
- maxWidth: maxWidth
125
- });
126
- var CellComponent = children ? 'th' : 'td';
127
- var cellScope = CellComponent === 'th' ? scope !== null && scope !== void 0 ? scope : 'col' : undefined; // `scope` is only valid on `th` elements
127
+ var renderHeaderCellRef = (0, _react.useRef)();
128
+ renderHeaderCellRef.current = function (extraProps) {
129
+ if (hideForDesktop || hideForMobile) return null;
130
+ var classes = (0, _classnames.default)('euiTableHeaderCell', className);
131
+ var cssStyles = [styles.euiTableHeaderCell, !isResponsive && stickyStyles];
132
+ var inlineWidthStyles = (0, _utils.resolveWidthPropsAsStyle)(_style, {
133
+ width: width,
134
+ minWidth: minWidth,
135
+ maxWidth: maxWidth
136
+ });
137
+ var CellComponent = children ? 'th' : 'td';
138
+ var cellScope = CellComponent === 'th' ? scope !== null && scope !== void 0 ? scope : 'col' : undefined; // `scope` is only valid on `th` elements
128
139
 
129
- var canSort = !!(onSort && !readOnly);
130
- var ariaSortValue;
131
- if (isSorted) {
132
- ariaSortValue = isSortAscending ? 'ascending' : 'descending';
133
- } else if (canSort) {
134
- ariaSortValue = 'none';
135
- }
136
- var cellContentsProps = {
137
- css: styles.euiTableHeaderCell__content,
138
- align: align,
139
- tooltipProps: tooltipProps,
140
- description: description,
141
- canSort: canSort,
142
- isSorted: isSorted,
143
- isSortAscending: isSortAscending,
144
- children: children
140
+ var canSort = !!(onSort && !readOnly);
141
+ var ariaSortValue;
142
+ if (isSorted) {
143
+ ariaSortValue = isSortAscending ? 'ascending' : 'descending';
144
+ } else if (canSort) {
145
+ ariaSortValue = 'none';
146
+ }
147
+ var cellContentsProps = {
148
+ css: styles.euiTableHeaderCell__content,
149
+ align: align,
150
+ tooltipProps: tooltipProps,
151
+ description: description,
152
+ canSort: canSort,
153
+ isSorted: isSorted,
154
+ isSortAscending: isSortAscending,
155
+ children: children
156
+ };
157
+ return (0, _react2.jsx)(CellComponent, _extends({
158
+ css: cssStyles,
159
+ className: classes,
160
+ scope: cellScope,
161
+ role: "columnheader",
162
+ "aria-sort": ariaSortValue,
163
+ "data-sticky": !isResponsive && (sticky === null || sticky === void 0 ? void 0 : sticky.side) || undefined,
164
+ style: _objectSpread(_objectSpread({}, _style), inlineWidthStyles)
165
+ }, rest, extraProps), canSort ? (0, _react2.jsx)(_tool_tip.EuiToolTip, _extends({
166
+ content: tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.content
167
+ }, tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.tooltipProps, {
168
+ display: "block"
169
+ }), (0, _react2.jsx)("button", {
170
+ type: "button",
171
+ css: styles.euiTableHeaderCell__button,
172
+ className: (0, _classnames.default)('euiTableHeaderButton', {
173
+ 'euiTableHeaderButton-isSorted': isSorted
174
+ }),
175
+ onClick: onSort,
176
+ "data-test-subj": "tableHeaderSortButton"
177
+ }, (0, _react2.jsx)(CellContents, cellContentsProps))) : (0, _react2.jsx)(CellContents, cellContentsProps), append);
145
178
  };
146
- return (0, _react2.jsx)(CellComponent, _extends({
147
- css: cssStyles,
148
- className: classes,
149
- scope: cellScope,
150
- role: "columnheader",
151
- "aria-sort": ariaSortValue,
152
- "data-sticky": !isResponsive && (sticky === null || sticky === void 0 ? void 0 : sticky.side) || undefined,
153
- style: _objectSpread(_objectSpread({}, _style), inlineWidthStyles)
154
- }, rest), canSort ? (0, _react2.jsx)(_tool_tip.EuiToolTip, _extends({
155
- content: tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.content
156
- }, tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.tooltipProps, {
157
- display: "block"
158
- }), (0, _react2.jsx)("button", {
159
- type: "button",
160
- css: styles.euiTableHeaderCell__button,
161
- className: (0, _classnames.default)('euiTableHeaderButton', {
162
- 'euiTableHeaderButton-isSorted': isSorted
163
- }),
164
- onClick: onSort,
165
- "data-test-subj": "tableHeaderSortButton"
166
- }, (0, _react2.jsx)(CellContents, cellContentsProps))) : (0, _react2.jsx)(CellContents, cellContentsProps), append);
179
+ var handleResize = (0, _react.useCallback)(function (entries) {
180
+ var entry = entries[0];
181
+ if (!entry) {
182
+ return;
183
+ }
184
+ store.updateColumnWidth(storeCellId, entry.contentRect.width);
185
+ }, [store, storeCellId]);
186
+ (0, _react.useEffect)(function () {
187
+ // Don't register the column inside the sticky header as the original
188
+ // column is already registered. This would cause an infinite loop.
189
+ if (isWithinStickyHeader || !selfRef.current || !renderHeaderCellRef.current) {
190
+ return;
191
+ }
192
+ var unregisterColumn = store.registerColumn(storeCellId, {
193
+ renderHeaderCellRef: renderHeaderCellRef,
194
+ // getBoundingClientRect is not the cheapest, but we call it only once
195
+ currentWidth: selfRef.current.getBoundingClientRect().width
196
+ });
197
+
198
+ // ResizeObserver is available in all supported browsers,
199
+ // but jsdom and jest don't provide a polyfill for it.
200
+ var resizeObserver;
201
+ if (typeof window.ResizeObserver !== 'undefined') {
202
+ resizeObserver = new ResizeObserver(handleResize);
203
+
204
+ // Note: This _could_ be optimized by using a single ResizeObserver
205
+ // for the whole EuiTable, but it would need to be changed back to this
206
+ // if/when we implement resizable columns
207
+ resizeObserver.observe(selfRef.current);
208
+ }
209
+ return function () {
210
+ var _resizeObserver;
211
+ unregisterColumn();
212
+ (_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 || _resizeObserver.disconnect();
213
+ };
214
+ }, [store, isWithinStickyHeader, handleResize, storeCellId]);
215
+
216
+ // Notify the store on every render so the sticky header stays in sync.
217
+ // React's reconciliation will efficiently handle any duplicate renders.
218
+ (0, _react.useEffect)(function () {
219
+ // Don't update the store if the component is rendered within EuiTableStickyHeader
220
+ if (isWithinStickyHeader) {
221
+ return;
222
+ }
223
+
224
+ // Don't update the store if the element doesn't exist. The render function
225
+ // in `renderHeaderCellRef` sometimes renders null - e.g., in mobile layout
226
+ if (!selfRef.current) {
227
+ return;
228
+ }
229
+ store.updateColumn(storeCellId, {
230
+ renderHeaderCellRef: renderHeaderCellRef
231
+ });
232
+ });
233
+ return renderHeaderCellRef.current({
234
+ ref: selfRef
235
+ });
167
236
  };
168
237
  EuiTableHeaderCell.propTypes = {
169
238
  className: _propTypes.default.string,
@@ -1,15 +1,19 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.EuiTableHeaderCellCheckbox = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
8
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
10
  var _classnames = _interopRequireDefault(require("classnames"));
10
11
  var _services = require("../../services");
11
12
  var _utils = require("./utils");
12
13
  var _table_cells_shared = require("./table_cells_shared.styles");
14
+ var _provider = require("./store/provider");
15
+ var _sticky_header = require("./sticky_header");
16
+ var _use_unique_column_id = require("./store/use_unique_column_id");
13
17
  var _react2 = require("@emotion/react");
14
18
  var _excluded = ["children", "className", "scope", "style", "width", "minWidth", "maxWidth", "append"];
15
19
  /*
@@ -20,35 +24,67 @@ var _excluded = ["children", "className", "scope", "style", "width", "minWidth",
20
24
  * Side Public License, v 1.
21
25
  */
22
26
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
27
+ 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); }
28
+ 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; }
23
29
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
24
30
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
25
31
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
26
- var EuiTableHeaderCellCheckbox = exports.EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(_ref) {
27
- var children = _ref.children,
28
- className = _ref.className,
29
- _ref$scope = _ref.scope,
30
- scope = _ref$scope === void 0 ? 'col' : _ref$scope,
31
- _style = _ref.style,
32
- width = _ref.width,
33
- minWidth = _ref.minWidth,
34
- maxWidth = _ref.maxWidth,
35
- append = _ref.append,
36
- rest = _objectWithoutProperties(_ref, _excluded);
37
- var classes = (0, _classnames.default)('euiTableHeaderCellCheckbox', className);
32
+ var EuiTableHeaderCellCheckbox = exports.EuiTableHeaderCellCheckbox = function EuiTableHeaderCellCheckbox(props) {
33
+ var children = props.children,
34
+ className = props.className,
35
+ _props$scope = props.scope,
36
+ scope = _props$scope === void 0 ? 'col' : _props$scope,
37
+ _style = props.style,
38
+ width = props.width,
39
+ minWidth = props.minWidth,
40
+ maxWidth = props.maxWidth,
41
+ append = props.append,
42
+ rest = _objectWithoutProperties(props, _excluded);
43
+ var storeCellId = (0, _use_unique_column_id.useEuiTableStoreUniqueColumnId)();
44
+ var store = (0, _provider.useEuiTableColumnDataStore)();
45
+ var isWithinStickyHeader = (0, _sticky_header.useEuiTableWithinStickyHeader)();
38
46
  var styles = (0, _services.useEuiMemoizedStyles)(_table_cells_shared.euiTableCellCheckboxStyles);
39
- var style = (0, _utils.resolveWidthPropsAsStyle)(_style, {
40
- width: width,
41
- minWidth: minWidth,
42
- maxWidth: maxWidth
47
+ var renderHeaderCellRef = (0, _react.useRef)();
48
+ renderHeaderCellRef.current = function (extraProps) {
49
+ var classes = (0, _classnames.default)('euiTableHeaderCellCheckbox', className);
50
+ var style = (0, _utils.resolveWidthPropsAsStyle)(_style, {
51
+ width: width,
52
+ minWidth: minWidth,
53
+ maxWidth: maxWidth
54
+ });
55
+ return (0, _react2.jsx)("th", _extends({
56
+ css: styles.euiTableHeaderCellCheckbox,
57
+ className: classes,
58
+ scope: scope,
59
+ style: style
60
+ }, rest, extraProps), (0, _react2.jsx)("div", {
61
+ className: "euiTableCellContent"
62
+ }, children), append);
63
+ };
64
+ (0, _react.useEffect)(function () {
65
+ // Don't register the column inside the sticky header as the original
66
+ // column is already registered. This would cause an infinite loop.
67
+ if (isWithinStickyHeader) {
68
+ return;
69
+ }
70
+ var unregisterColumn = store.registerColumn(storeCellId, {
71
+ renderHeaderCellRef: renderHeaderCellRef
72
+ });
73
+ return function () {
74
+ unregisterColumn();
75
+ };
76
+ }, [store, isWithinStickyHeader, storeCellId]);
77
+ (0, _react.useEffect)(function () {
78
+ // Notify the store on every render so the sticky header stays in sync.
79
+ // React's reconciliation will efficiently handle any duplicate renders.
80
+ if (isWithinStickyHeader) {
81
+ return;
82
+ }
83
+ store.updateColumn(storeCellId, {
84
+ renderHeaderCellRef: renderHeaderCellRef
85
+ });
43
86
  });
44
- return (0, _react2.jsx)("th", _extends({
45
- css: styles.euiTableHeaderCellCheckbox,
46
- className: classes,
47
- scope: scope,
48
- style: style
49
- }, rest), (0, _react2.jsx)("div", {
50
- className: "euiTableCellContent"
51
- }, children), append);
87
+ return renderHeaderCellRef.current({});
52
88
  };
53
89
  EuiTableHeaderCellCheckbox.propTypes = {
54
90
  className: _propTypes.default.string,
@@ -10,6 +10,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
  var _services = require("../../services");
12
12
  var _resize_observer = require("../observer/resize_observer");
13
+ var _tool_tip = require("../tool_tip");
13
14
  var _utils = require("./utils");
14
15
  var _text_truncate = require("./text_truncate.styles");
15
16
  var _react2 = require("@emotion/react");
@@ -213,11 +214,10 @@ var EuiTextTruncateWithWidth = function EuiTextTruncateWithWidth(_ref2) {
213
214
  }, [ready, width, text, truncation, truncationOffset, truncationPosition, ellipsis, containerEl]);
214
215
  var isTruncating = truncatedText !== text;
215
216
  var styles = (0, _services.useEuiMemoizedStyles)(_text_truncate.euiTextTruncateStyles);
216
- return (0, _react2.jsx)("div", _extends({
217
+ var content = (0, _react2.jsx)("div", _extends({
217
218
  className: (0, _classnames.default)('euiTextTruncate', className),
218
219
  css: styles.euiTextTruncate,
219
- ref: refs,
220
- title: isTruncating ? text : undefined
220
+ ref: refs
221
221
  }, rest), isTruncating ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("span", {
222
222
  className: "euiTextTruncate__truncatedText",
223
223
  css: styles.euiTextTruncate__truncatedText,
@@ -231,6 +231,11 @@ var EuiTextTruncateWithWidth = function EuiTextTruncateWithWidth(_ref2) {
231
231
  className: "euiTextTruncate__fullText",
232
232
  "data-test-subj": "fullText"
233
233
  }, children ? children(text) : text));
234
+ return isTruncating ? (0, _react2.jsx)(_tool_tip.EuiToolTip, {
235
+ content: text,
236
+ disableScreenReaderOutput: true,
237
+ display: "block"
238
+ }, content) : content;
234
239
  };
235
240
  EuiTextTruncateWithWidth.propTypes = {
236
241
  width: _propTypes.default.number.isRequired,