@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
@@ -1,14 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
4
- import _createClass from "@babel/runtime/helpers/createClass";
5
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
- import _inherits from "@babel/runtime/helpers/inherits";
8
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
4
  var _excluded = ["className", "anchorPosition", "items"];
10
- function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
11
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
12
5
  /*
13
6
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
14
7
  * or more contributor license agreements. Licensed under the Elastic License
@@ -17,7 +10,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
17
10
  * Side Public License, v 1.
18
11
  */
19
12
 
20
- import React, { Component } from 'react';
13
+ import React, { useState } from 'react';
21
14
  import classNames from 'classnames';
22
15
  import { EuiButtonEmpty } from '../../button/button_empty';
23
16
  import { EuiPopover } from '../../popover';
@@ -25,77 +18,61 @@ import { EuiContextMenuPanel } from '../../context_menu';
25
18
  import { EuiI18n } from '../../i18n';
26
19
  import { EuiTableSortMobileItem } from './table_sort_mobile_item';
27
20
  import { jsx as ___EmotionJSX } from "@emotion/react";
28
- export var EuiTableSortMobile = /*#__PURE__*/function (_Component) {
29
- function EuiTableSortMobile() {
30
- var _this;
31
- _classCallCheck(this, EuiTableSortMobile);
32
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
33
- args[_key] = arguments[_key];
34
- }
35
- _this = _callSuper(this, EuiTableSortMobile, [].concat(args));
36
- _defineProperty(_this, "state", {
37
- isPopoverOpen: false
21
+ // Aligns the button to the right even when it's the only element present
22
+ var euiTableSortMobileStyles = {
23
+ marginInlineStart: 'auto',
24
+ label: 'euiTableSortMobile'
25
+ };
26
+ export var EuiTableSortMobile = function EuiTableSortMobile(_ref) {
27
+ var className = _ref.className,
28
+ anchorPosition = _ref.anchorPosition,
29
+ items = _ref.items,
30
+ rest = _objectWithoutProperties(_ref, _excluded);
31
+ var _useState = useState(false),
32
+ _useState2 = _slicedToArray(_useState, 2),
33
+ isPopoverOpen = _useState2[0],
34
+ setIsPopoverOpen = _useState2[1];
35
+ var classes = classNames('euiTableSortMobile', className);
36
+ var onButtonClick = function onButtonClick() {
37
+ setIsPopoverOpen(function (isOpen) {
38
+ return !isOpen;
38
39
  });
39
- _defineProperty(_this, "onButtonClick", function () {
40
- _this.setState({
41
- isPopoverOpen: !_this.state.isPopoverOpen
42
- });
43
- });
44
- _defineProperty(_this, "closePopover", function () {
45
- _this.setState({
46
- isPopoverOpen: false
47
- });
48
- });
49
- // Aligns the button to the right even when it's the only element present
50
- _defineProperty(_this, "euiTableSortMobileStyles", {
51
- marginInlineStart: 'auto',
52
- label: 'euiTableSortMobile'
53
- });
54
- return _this;
55
- }
56
- _inherits(EuiTableSortMobile, _Component);
57
- return _createClass(EuiTableSortMobile, [{
58
- key: "render",
59
- value: function render() {
60
- var _this$props = this.props,
61
- className = _this$props.className,
62
- anchorPosition = _this$props.anchorPosition,
63
- items = _this$props.items,
64
- rest = _objectWithoutProperties(_this$props, _excluded);
65
- var classes = classNames('euiTableSortMobile', className);
66
- var mobileSortButton = ___EmotionJSX(EuiButtonEmpty, {
67
- iconType: "chevronSingleDown",
68
- iconSide: "right",
69
- onClick: this.onButtonClick.bind(this),
70
- flush: "right",
71
- size: "xs"
72
- }, ___EmotionJSX(EuiI18n, {
73
- token: "euiTableSortMobile.sorting",
74
- default: "Sorting"
75
- }));
76
- var mobileSortPopover = ___EmotionJSX(EuiPopover, _extends({
77
- button: mobileSortButton,
78
- isOpen: this.state.isPopoverOpen,
79
- closePopover: this.closePopover,
80
- anchorPosition: anchorPosition || 'downRight',
81
- panelPaddingSize: "none"
82
- }, rest), ___EmotionJSX(EuiContextMenuPanel, {
83
- style: {
84
- minWidth: 200
85
- },
86
- items: items && items.length ? items.map(function (item) {
87
- return ___EmotionJSX(EuiTableSortMobileItem, {
88
- key: item.key,
89
- onSort: item.onSort,
90
- isSorted: item.isSorted,
91
- isSortAscending: item.isSortAscending
92
- }, item.name);
93
- }) : undefined
94
- }));
95
- return ___EmotionJSX("div", {
96
- className: classes,
97
- css: this.euiTableSortMobileStyles
98
- }, mobileSortPopover);
99
- }
100
- }]);
101
- }(Component);
40
+ };
41
+ var closePopover = function closePopover() {
42
+ setIsPopoverOpen(false);
43
+ };
44
+ var mobileSortButton = ___EmotionJSX(EuiButtonEmpty, {
45
+ iconType: "chevronSingleDown",
46
+ iconSide: "right",
47
+ onClick: onButtonClick,
48
+ flush: "right",
49
+ size: "xs"
50
+ }, ___EmotionJSX(EuiI18n, {
51
+ token: "euiTableSortMobile.sorting",
52
+ default: "Sorting"
53
+ }));
54
+ var mobileSortPopover = ___EmotionJSX(EuiPopover, _extends({
55
+ button: mobileSortButton,
56
+ isOpen: isPopoverOpen,
57
+ closePopover: closePopover,
58
+ anchorPosition: anchorPosition || 'downRight',
59
+ panelPaddingSize: "none"
60
+ }, rest), ___EmotionJSX(EuiContextMenuPanel, {
61
+ style: {
62
+ minWidth: 200
63
+ },
64
+ items: items !== null && items !== void 0 && items.length ? items.map(function (item) {
65
+ return ___EmotionJSX(EuiTableSortMobileItem, {
66
+ key: item.key,
67
+ onSort: item.onSort,
68
+ isSorted: item.isSorted,
69
+ isSortAscending: item.isSortAscending
70
+ }, item.name);
71
+ }) : undefined
72
+ }));
73
+ return ___EmotionJSX("div", {
74
+ className: classes,
75
+ css: euiTableSortMobileStyles
76
+ }, mobileSortPopover);
77
+ };
78
+ EuiTableSortMobile.displayName = 'EuiTableSortMobile';
@@ -0,0 +1,32 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ import React, { createContext, useContext } from 'react';
10
+ import { jsx as ___EmotionJSX } from "@emotion/react";
11
+ var EuiTableWithinStickyHeaderContext = /*#__PURE__*/createContext(false);
12
+
13
+ /**
14
+ * React context provider to detect whether a component is rendered
15
+ * inside <EuiTableStickyHeader> to prevent duplicated header cell renders.
16
+ * @internal
17
+ */
18
+ export var EuiTableWithinStickyHeaderProvider = function EuiTableWithinStickyHeaderProvider(_ref) {
19
+ var children = _ref.children;
20
+ return ___EmotionJSX(EuiTableWithinStickyHeaderContext.Provider, {
21
+ value: true
22
+ }, children);
23
+ };
24
+
25
+ /**
26
+ * Returns true if the component (usually the EuiTableHeaderCell or EuiTableHeaderCellCheckbox)
27
+ * is rendered inside EuiTableStickyHeader.
28
+ * @internal
29
+ */
30
+ export var useEuiTableWithinStickyHeader = function useEuiTableWithinStickyHeader() {
31
+ return useContext(EuiTableWithinStickyHeaderContext);
32
+ };
@@ -0,0 +1,10 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ export { EuiTableStickyHeader } from './sticky_header';
10
+ export { useEuiTableWithinStickyHeader } from './context';
@@ -0,0 +1,146 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ /*
3
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
4
+ * or more contributor license agreements. Licensed under the Elastic License
5
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
6
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
7
+ * Side Public License, v 1.
8
+ */
9
+
10
+ import React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
11
+ import { useEuiTableColumnDataStore } from '../store/provider';
12
+ import { EuiTableHeader } from '../table_header';
13
+ import { EuiTableWithinStickyHeaderProvider } from './context';
14
+ import { useEuiMemoizedStyles } from '../../../services';
15
+ import { euiTableStyles } from '../table.styles';
16
+ import { euiTableStickyHeaderStyles } from './sticky_header.styles';
17
+ import { euiContainerCSS } from '../../../global_styling';
18
+ import { EUI_TABLE_CSS_CONTAINER_NAME } from '../const';
19
+
20
+ /**
21
+ * @internal
22
+ */
23
+ import { jsx as ___EmotionJSX } from "@emotion/react";
24
+ export var EuiTableStickyHeader = function EuiTableStickyHeader(_ref) {
25
+ var tableRef = _ref.tableRef,
26
+ tableWrapperRef = _ref.tableWrapperRef,
27
+ compressed = _ref.compressed,
28
+ scrollableInline = _ref.scrollableInline,
29
+ isResponsive = _ref.isResponsive;
30
+ var store = useEuiTableColumnDataStore();
31
+ var columnElements = useRef(new Map());
32
+ var stickyTableWrapperRef = useRef(null);
33
+ var stickyTableRef = useRef(null);
34
+ var _useState = useState(function () {
35
+ return Array.from(store.getColumns().entries());
36
+ }),
37
+ _useState2 = _slicedToArray(_useState, 2),
38
+ columns = _useState2[0],
39
+ setColumns = _useState2[1];
40
+ var originalStyles = useEuiMemoizedStyles(euiTableStyles);
41
+ var styles = useEuiMemoizedStyles(euiTableStickyHeaderStyles);
42
+
43
+ /**
44
+ * Get a callback ref to handle the column element ref
45
+ */
46
+ var getColumnRef = useCallback(function (id) {
47
+ return function (element) {
48
+ if (element) {
49
+ columnElements.current.set(id, element);
50
+ } else {
51
+ columnElements.current.delete(id);
52
+ }
53
+ };
54
+ }, []);
55
+ useEffect(function () {
56
+ var unsubscribe = store.subscribe(function (columns) {
57
+ setColumns(Array.from(columns.entries()));
58
+ });
59
+ var unsubscribeColumnWidths = store.subscribeToColumnWidths(function (columns) {
60
+ columns.forEach(function (width, name) {
61
+ var element = columnElements.current.get(name);
62
+ if (element) {
63
+ element.style.width = "".concat(width, "px");
64
+ }
65
+ });
66
+ });
67
+ return function () {
68
+ unsubscribe();
69
+ unsubscribeColumnWidths();
70
+ };
71
+ }, [store]);
72
+
73
+ // When columns change, apply column widths after render
74
+ useLayoutEffect(function () {
75
+ store.getColumnWidths().forEach(function (width, name) {
76
+ var element = columnElements.current.get(name);
77
+ if (element) {
78
+ element.style.width = "".concat(width, "px");
79
+ }
80
+ });
81
+ }, [store, columns]);
82
+ useEffect(function () {
83
+ if (!scrollableInline || !tableWrapperRef.current || !stickyTableRef.current || !tableRef.current) {
84
+ return;
85
+ }
86
+ var tableWrapper = tableWrapperRef.current;
87
+ var handleScroll = function handleScroll() {
88
+ if (stickyTableWrapperRef.current) {
89
+ stickyTableWrapperRef.current.scrollLeft = tableWrapper.scrollLeft;
90
+ }
91
+ };
92
+ var handleResize = function handleResize(entries) {
93
+ var element = entries[0].target;
94
+ if (!element) {
95
+ return;
96
+ }
97
+ if (stickyTableRef.current) {
98
+ stickyTableRef.current.style.minWidth = "".concat(element.clientWidth, "px");
99
+ }
100
+ };
101
+
102
+ // Initial width sync
103
+ stickyTableRef.current.style.minWidth = "".concat(tableRef.current.getBoundingClientRect().width, "px");
104
+
105
+ // Use ResizeObserver to keep table width in sync
106
+ var resizeObserver = new ResizeObserver(handleResize);
107
+ resizeObserver.observe(tableRef.current);
108
+ tableWrapper.addEventListener('scroll', handleScroll, {
109
+ passive: true
110
+ });
111
+ return function () {
112
+ tableWrapper.removeEventListener('scroll', handleScroll);
113
+ resizeObserver.disconnect();
114
+ };
115
+ }, [scrollableInline, tableRef, tableWrapperRef]);
116
+ var tableStyles = [originalStyles.euiTable, scrollableInline && originalStyles.euiTableScrollableInline, (!compressed || isResponsive) && originalStyles.uncompressed, compressed && !isResponsive && originalStyles.compressed,
117
+ // Forced fixed layout since all column widths come synced from the main table
118
+ originalStyles.layout.fixed, originalStyles.hasBackground, styles.table];
119
+ if (isResponsive) {
120
+ return null;
121
+ }
122
+ return ___EmotionJSX(EuiTableWithinStickyHeaderProvider, null, ___EmotionJSX("div", {
123
+ css: styles.wrapper,
124
+ "aria-hidden": "true"
125
+ }, ___EmotionJSX("div", {
126
+ css: [
127
+ // This CSS container is needed to feed `<EuiTableHeaderCell>`
128
+ // with `sticky` prop set the necessary scroll state
129
+ euiContainerCSS('normal', EUI_TABLE_CSS_CONTAINER_NAME, true), styles.innerWrapper, ";label:EuiTableStickyHeader;"],
130
+ ref: stickyTableWrapperRef
131
+ }, ___EmotionJSX("table", {
132
+ css: tableStyles,
133
+ ref: stickyTableRef
134
+ }, ___EmotionJSX(EuiTableHeader, {
135
+ css: styles.header
136
+ }, columns.map(function (_ref2, index) {
137
+ var _data$renderHeaderCel, _data$renderHeaderCel2;
138
+ var _ref3 = _slicedToArray(_ref2, 2),
139
+ name = _ref3[0],
140
+ data = _ref3[1];
141
+ return (_data$renderHeaderCel = (_data$renderHeaderCel2 = data.renderHeaderCellRef).current) === null || _data$renderHeaderCel === void 0 ? void 0 : _data$renderHeaderCel.call(_data$renderHeaderCel2, {
142
+ ref: getColumnRef(name),
143
+ key: "".concat(name, "-").concat(index)
144
+ });
145
+ }))))));
146
+ };
@@ -0,0 +1,43 @@
1
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
2
+ /*
3
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
4
+ * or more contributor license agreements. Licensed under the Elastic License
5
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
6
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
7
+ * Side Public License, v 1.
8
+ */
9
+
10
+ import { css } from '@emotion/react';
11
+ var _ref = process.env.NODE_ENV === "production" ? {
12
+ name: "1uk19xy-table",
13
+ styles: "pointer-events:auto;label:table;"
14
+ } : {
15
+ name: "1uk19xy-table",
16
+ styles: "pointer-events:auto;label:table;",
17
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
18
+ };
19
+ var _ref2 = process.env.NODE_ENV === "production" ? {
20
+ name: "15dchac-innerWrapper",
21
+ styles: "overflow-inline:hidden;label:innerWrapper;"
22
+ } : {
23
+ name: "15dchac-innerWrapper",
24
+ styles: "overflow-inline:hidden;label:innerWrapper;",
25
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
26
+ };
27
+ var _ref3 = process.env.NODE_ENV === "production" ? {
28
+ name: "4w3rcu-wrapper",
29
+ styles: "position:sticky;inset-block-start:var(--euiTableStickyHeaderOffsetTop, 0);z-index:var(--euiTableStickyHeaderZIndex, 1);block-size:0;overflow-block:visible;label:wrapper;"
30
+ } : {
31
+ name: "4w3rcu-wrapper",
32
+ styles: "position:sticky;inset-block-start:var(--euiTableStickyHeaderOffsetTop, 0);z-index:var(--euiTableStickyHeaderZIndex, 1);block-size:0;overflow-block:visible;label:wrapper;",
33
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
34
+ };
35
+ export var euiTableStickyHeaderStyles = function euiTableStickyHeaderStyles(_ref4) {
36
+ var euiTheme = _ref4.euiTheme;
37
+ return {
38
+ wrapper: _ref3,
39
+ innerWrapper: _ref2,
40
+ table: _ref,
41
+ header: /*#__PURE__*/css("th::after{content:'';display:block;inline-size:100%;block-size:", euiTheme.border.width.thin, ";background-color:", euiTheme.border.color, ";};label:header;")
42
+ };
43
+ };
@@ -0,0 +1,37 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ import React, { createContext, useRef, useContext } from 'react';
10
+ import { createEuiTableStore } from './store';
11
+ import { jsx as ___EmotionJSX } from "@emotion/react";
12
+ var EuiTableStoreContext = /*#__PURE__*/createContext(null);
13
+
14
+ /**
15
+ * @internal
16
+ */
17
+ export var EuiTableStoreProvider = function EuiTableStoreProvider(_ref) {
18
+ var children = _ref.children;
19
+ var store = useRef(null);
20
+ if (!store.current) {
21
+ store.current = createEuiTableStore();
22
+ }
23
+ return ___EmotionJSX(EuiTableStoreContext.Provider, {
24
+ value: store.current
25
+ }, children);
26
+ };
27
+
28
+ /**
29
+ * @internal
30
+ */
31
+ export var useEuiTableColumnDataStore = function useEuiTableColumnDataStore() {
32
+ var store = useContext(EuiTableStoreContext);
33
+ if (!store) {
34
+ throw new Error('[useEuiTableColumnDataStore] Store context not found. This hook must be used within EuiTable!');
35
+ }
36
+ return store;
37
+ };
@@ -0,0 +1,82 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ import { createPublisher } from '../../../utils/publisher';
10
+
11
+ /**
12
+ * @internal
13
+ */
14
+
15
+ /**
16
+ * @internal
17
+ */
18
+
19
+ /**
20
+ * EuiTable store that helps with column and width synchronization between
21
+ * the original table and the "virtual" sticky header table.
22
+ *
23
+ * This store is currently only used for these synchronization purposes, but
24
+ * that may extend as we implement resizable columns.
25
+ * If that's not implemented by the time per-axis `position: sticky`
26
+ * is supported in all browsers natively, this can be removed.
27
+ * @internal
28
+ */
29
+
30
+ export var createEuiTableStore = function createEuiTableStore() {
31
+ var columns = new Map();
32
+ var columnsPublisher = createPublisher();
33
+ var columnWidths = new Map();
34
+ var columnWidthsPublisher = createPublisher();
35
+ var registerColumn = function registerColumn(id, data) {
36
+ var _data$currentWidth;
37
+ if (columns.has(id)) {
38
+ throw new Error("[EuiTableStore] Column '".concat(id, "' already registered"));
39
+ }
40
+ columns.set(id, data);
41
+ // Initialize column in the columnWidths map to keep both maps in sync
42
+ columnWidths.set(id, (_data$currentWidth = data.currentWidth) !== null && _data$currentWidth !== void 0 ? _data$currentWidth : 0);
43
+ columnsPublisher.notify(columns);
44
+ return function () {
45
+ columns.delete(id);
46
+ columnWidths.delete(id);
47
+ columnsPublisher.notify(columns);
48
+ };
49
+ };
50
+ var updateColumn = function updateColumn(id, data) {
51
+ var currentData = columns.get(id);
52
+ if (!currentData) {
53
+ throw new Error("[EuiTableStore] Column '".concat(id, "' not found"));
54
+ }
55
+ columns.set(id, data);
56
+ columnsPublisher.notify(columns);
57
+ };
58
+ var updateColumnWidth = function updateColumnWidth(id, width) {
59
+ var currentWidth = columnWidths.get(id);
60
+ if (currentWidth === undefined) {
61
+ throw new Error("[EuiTableStore] No width stored for column '".concat(id, "'"));
62
+ }
63
+ if (currentWidth === width) {
64
+ return;
65
+ }
66
+ columnWidths.set(id, width);
67
+ columnWidthsPublisher.notify(columnWidths);
68
+ };
69
+ return {
70
+ registerColumn: registerColumn,
71
+ updateColumn: updateColumn,
72
+ updateColumnWidth: updateColumnWidth,
73
+ subscribe: columnsPublisher.subscribe,
74
+ subscribeToColumnWidths: columnWidthsPublisher.subscribe,
75
+ getColumns: function getColumns() {
76
+ return columns;
77
+ },
78
+ getColumnWidths: function getColumnWidths() {
79
+ return columnWidths;
80
+ }
81
+ };
82
+ };
@@ -0,0 +1,25 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ import React, { useId, useRef } from 'react';
10
+ import { v4 as uuidv4 } from 'uuid';
11
+ var useEuiTableStoreUniqueColumnIdFallback = function useEuiTableStoreUniqueColumnIdFallback() {
12
+ var ref = useRef(uuidv4());
13
+ return ref.current;
14
+ };
15
+
16
+ /**
17
+ * Returns a stable unique column ID to be used when registering columns.
18
+ * It uses `React.useId()` when available and falls back to UUID v4 on React 17.
19
+ *
20
+ * This is needed so that static `uuid` mocks don't break column registration
21
+ * (at least in React 18+; in older versions this function would need
22
+ * to be mocked to return something unique, but stable).
23
+ * @internal
24
+ */
25
+ export var useEuiTableStoreUniqueColumnId = 'useId' in React ? useId : useEuiTableStoreUniqueColumnIdFallback;
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["children", "className", "compressed", "tableLayout", "hasBackground", "responsiveBreakpoint", "scrollableInline", "stickyScrollbar"];
3
+ var _excluded = ["children", "className", "compressed", "tableLayout", "hasBackground", "responsiveBreakpoint", "scrollableInline", "stickyScrollbar", "stickyHeader"];
4
4
  /*
5
5
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
6
6
  * or more contributor license agreements. Licensed under the Elastic License
@@ -19,6 +19,8 @@ import { usePropsWithComponentDefaults } from '../provider/component_defaults';
19
19
  import { euiContainerCSS } from '../../global_styling';
20
20
  import { EUI_TABLE_CSS_CONTAINER_NAME } from './const';
21
21
  import { EuiTableStickyScrollbar } from './sticky_scrollbar';
22
+ import { EuiTableStickyHeader } from './sticky_header/sticky_header';
23
+ import { EuiTableStoreProvider } from './store/provider';
22
24
  import { jsx as ___EmotionJSX } from "@emotion/react";
23
25
  /**
24
26
  * EuiTable is a low-level building block component used to render tabular data
@@ -44,20 +46,30 @@ export var EuiTable = function EuiTable(originalProps) {
44
46
  scrollableInline = _usePropsWithComponen4 === void 0 ? false : _usePropsWithComponen4,
45
47
  _usePropsWithComponen5 = _usePropsWithComponen.stickyScrollbar,
46
48
  stickyScrollbar = _usePropsWithComponen5 === void 0 ? false : _usePropsWithComponen5,
49
+ _usePropsWithComponen6 = _usePropsWithComponen.stickyHeader,
50
+ stickyHeader = _usePropsWithComponen6 === void 0 ? false : _usePropsWithComponen6,
47
51
  rest = _objectWithoutProperties(_usePropsWithComponen, _excluded);
48
52
  var tableWrapperRef = useRef(null);
53
+ var tableRef = useRef(null);
49
54
  var isResponsive = useIsEuiTableResponsive(responsiveBreakpoint);
50
55
  var classes = classNames('euiTable', className);
51
56
  var styles = useEuiMemoizedStyles(euiTableStyles);
52
57
  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];
53
58
  var cssStyles = [euiContainerCSS('normal', EUI_TABLE_CSS_CONTAINER_NAME, true), scrollableInline && styles.scrollableWrapper];
54
- return ___EmotionJSX(React.Fragment, null, ___EmotionJSX("div", {
59
+ return ___EmotionJSX(EuiTableStoreProvider, null, stickyHeader && ___EmotionJSX(EuiTableStickyHeader, {
60
+ scrollableInline: scrollableInline,
61
+ tableRef: tableRef,
62
+ tableWrapperRef: tableWrapperRef,
63
+ compressed: compressed,
64
+ isResponsive: isResponsive
65
+ }), ___EmotionJSX("div", {
55
66
  css: cssStyles,
56
67
  ref: tableWrapperRef
57
68
  }, ___EmotionJSX("table", _extends({
58
69
  tabIndex: -1,
59
70
  css: tableStyles,
60
- className: classes
71
+ className: classes,
72
+ ref: tableRef
61
73
  }, rest), ___EmotionJSX(EuiTableIsResponsiveContext.Provider, {
62
74
  value: isResponsive
63
75
  }, ___EmotionJSX(EuiTableVariantContext.Provider, {
@@ -38,11 +38,11 @@ export var euiTableVariables = function euiTableVariables(_ref6) {
38
38
  };
39
39
  };
40
40
  var _ref = process.env.NODE_ENV === "production" ? {
41
- name: "mqw298-scrollableWrapper",
42
- styles: "overflow-inline:auto;label:scrollableWrapper;"
41
+ name: "l8gzfy-scrollableWrapper",
42
+ styles: "overflow-inline:auto;overscroll-behavior-inline:none;label:scrollableWrapper;"
43
43
  } : {
44
- name: "mqw298-scrollableWrapper",
45
- styles: "overflow-inline:auto;label:scrollableWrapper;",
44
+ name: "l8gzfy-scrollableWrapper",
45
+ styles: "overflow-inline:auto;overscroll-behavior-inline:none;label:scrollableWrapper;",
46
46
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
47
47
  };
48
48
  var _ref2 = process.env.NODE_ENV === "production" ? {