@elastic/eui 108.0.0 → 109.1.0-snapshot.1763390960850

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 (405) hide show
  1. package/es/components/accessibility/skip_link/skip_link.js +10 -1
  2. package/es/components/basic_table/collapsed_item_actions.js +3 -1
  3. package/es/components/basic_table/default_item_action.js +7 -4
  4. package/es/components/bottom_bar/bottom_bar.js +12 -2
  5. package/es/components/button/button.js +20 -25
  6. package/es/components/button/button_display/_button_display.js +32 -30
  7. package/es/components/button/button_display/_button_display.styles.js +4 -4
  8. package/es/components/button/button_empty/button_empty.js +32 -14
  9. package/es/components/button/button_group/button_group.js +49 -31
  10. package/es/components/button/button_group/button_group_button.js +16 -5
  11. package/es/components/button/button_group/button_group_button.styles.js +12 -8
  12. package/es/components/button/button_icon/button_icon.js +30 -6
  13. package/es/components/card/card.js +20 -25
  14. package/es/components/card/card_select/card_select.js +20 -25
  15. package/es/components/code/code_block_virtualized.js +9 -7
  16. package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +13 -1
  17. package/es/components/datagrid/body/cell/data_grid_cell.js +35 -12
  18. package/es/components/datagrid/body/data_grid_body.js +23 -6
  19. package/es/components/datagrid/body/data_grid_body_custom.js +23 -6
  20. package/es/components/datagrid/body/data_grid_body_virtualized.js +23 -6
  21. package/es/components/datagrid/body/header/column_actions.js +5 -21
  22. package/es/components/datagrid/body/header/data_grid_header_cell.js +29 -10
  23. package/es/components/datagrid/body/header/data_grid_header_cell.styles.js +8 -2
  24. package/es/components/datagrid/body/header/data_grid_header_cell_wrapper.js +5 -2
  25. package/es/components/datagrid/controls/column_selector.js +36 -19
  26. package/es/components/datagrid/controls/column_sorting.js +23 -6
  27. package/es/components/datagrid/controls/data_grid_toolbar_control.js +13 -7
  28. package/es/components/datagrid/data_grid.js +5 -1
  29. package/es/components/datagrid/utils/in_memory.js +25 -7
  30. package/es/components/date_picker/auto_refresh/auto_refresh.js +11 -2
  31. package/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +31 -5
  32. package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +24 -3
  33. package/es/components/date_picker/super_date_picker/date_popover/date_popover_content.js +26 -4
  34. package/es/components/date_picker/super_date_picker/date_popover/relative_tab.js +29 -3
  35. package/es/components/date_picker/super_date_picker/date_popover/timezone_display.js +98 -0
  36. package/es/components/date_picker/super_date_picker/date_popover/timezone_display.styles.js +19 -0
  37. package/es/components/date_picker/super_date_picker/pretty_duration.js +1 -8
  38. package/es/components/date_picker/super_date_picker/relative_utils.js +8 -0
  39. package/es/components/date_picker/super_date_picker/super_date_picker.js +118 -26
  40. package/es/components/date_picker/super_date_picker/time_window_buttons.js +185 -0
  41. package/es/components/facet/facet_button.js +9 -19
  42. package/es/components/filter_group/filter_button.js +14 -1
  43. package/es/components/flyout/flyout.js +27 -10
  44. package/es/components/form/file_picker/file_picker.styles.js +3 -3
  45. package/es/components/form/form_control_button/form_control_button.js +13 -7
  46. package/es/components/header/header_links/header_link.js +13 -7
  47. package/es/components/header/header_section/header_section_item_button.js +13 -7
  48. package/es/components/icon/assets/boxes_vertical.js +1 -1
  49. package/es/components/icon/assets/checkInCircleFilled.js +1 -2
  50. package/es/components/icon/assets/errorFilled.js +1 -2
  51. package/es/components/icon/assets/paper_clip.js +1 -1
  52. package/es/components/icon/assets/streams_wired.js +3 -2
  53. package/es/components/icon/assets/warningFilled.js +1 -2
  54. package/es/components/icon/icon_map.js +3 -6
  55. package/es/components/list_group/list_group.js +13 -1
  56. package/es/components/list_group/list_group_item.js +13 -1
  57. package/es/components/list_group/list_group_item_extra_action.js +13 -1
  58. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +15 -2
  59. package/es/components/overlay_mask/overlay_mask.styles.js +1 -1
  60. package/es/components/pagination/pagination_button.js +13 -7
  61. package/es/components/popover/popover.js +22 -16
  62. package/es/components/provider/component_defaults/component_defaults.js +22 -2
  63. package/es/components/table/table_row.styles.js +1 -1
  64. package/es/components/tool_tip/tool_tip.js +24 -24
  65. package/es/global_styling/index.js +2 -1
  66. package/es/global_styling/mixins/_button.js +1 -1
  67. package/es/global_styling/utility/selectors.js +9 -0
  68. package/es/services/focus_trap/focus_trap_pub_sub.js +74 -0
  69. package/es/services/focus_trap/index.js +9 -0
  70. package/es/services/hooks/index.js +2 -1
  71. package/es/services/hooks/useEuiDisabledElement.js +195 -0
  72. package/es/services/index.js +1 -0
  73. package/es/services/popover/reposition_on_scroll.js +61 -0
  74. package/es/services/theme/high_contrast_overrides.js +5 -1
  75. package/es/test/cypress/index.d.ts +12 -0
  76. package/es/test/cypress/index.js +9 -0
  77. package/es/test/cypress/matchers.d.ts +20 -0
  78. package/es/test/cypress/matchers.js +54 -0
  79. package/es/test/cypress/test_reposition_on_scroll.js +66 -0
  80. package/es/test/enzyme/enzyme_matchers.d.ts +36 -0
  81. package/es/test/enzyme/enzyme_matchers.js +43 -0
  82. package/es/test/enzyme/index.d.ts +14 -0
  83. package/es/test/enzyme/index.js +10 -0
  84. package/es/test/rtl/index.d.ts +9 -1
  85. package/es/test/rtl/index.js +2 -1
  86. package/es/test/rtl/matchers.d.ts +36 -0
  87. package/es/test/rtl/matchers.js +82 -0
  88. package/es/utils/element_can_be_disabled.js +16 -0
  89. package/es/utils/index.js +2 -1
  90. package/eui.d.ts +604 -183
  91. package/i18ntokens.json +1357 -1231
  92. package/lib/components/accessibility/skip_link/skip_link.js +10 -1
  93. package/lib/components/basic_table/collapsed_item_actions.js +3 -1
  94. package/lib/components/basic_table/default_item_action.js +7 -4
  95. package/lib/components/bottom_bar/bottom_bar.js +11 -1
  96. package/lib/components/button/button.js +21 -26
  97. package/lib/components/button/button_display/_button_display.js +31 -29
  98. package/lib/components/button/button_display/_button_display.styles.js +4 -4
  99. package/lib/components/button/button_empty/button_empty.js +31 -13
  100. package/lib/components/button/button_group/button_group.js +49 -31
  101. package/lib/components/button/button_group/button_group_button.js +16 -5
  102. package/lib/components/button/button_group/button_group_button.styles.js +10 -6
  103. package/lib/components/button/button_icon/button_icon.js +29 -5
  104. package/lib/components/card/card.js +21 -26
  105. package/lib/components/card/card_select/card_select.js +21 -26
  106. package/lib/components/code/code_block_virtualized.js +9 -7
  107. package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +13 -1
  108. package/lib/components/datagrid/body/cell/data_grid_cell.js +35 -12
  109. package/lib/components/datagrid/body/data_grid_body.js +23 -6
  110. package/lib/components/datagrid/body/data_grid_body_custom.js +23 -6
  111. package/lib/components/datagrid/body/data_grid_body_virtualized.js +23 -6
  112. package/lib/components/datagrid/body/header/column_actions.js +5 -21
  113. package/lib/components/datagrid/body/header/data_grid_header_cell.js +29 -10
  114. package/lib/components/datagrid/body/header/data_grid_header_cell.styles.js +8 -1
  115. package/lib/components/datagrid/body/header/data_grid_header_cell_wrapper.js +5 -2
  116. package/lib/components/datagrid/controls/column_selector.js +36 -19
  117. package/lib/components/datagrid/controls/column_sorting.js +23 -6
  118. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +13 -7
  119. package/lib/components/datagrid/data_grid.js +5 -1
  120. package/lib/components/datagrid/utils/in_memory.js +25 -7
  121. package/lib/components/date_picker/auto_refresh/auto_refresh.js +12 -3
  122. package/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +30 -4
  123. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +24 -3
  124. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_content.js +26 -4
  125. package/lib/components/date_picker/super_date_picker/date_popover/relative_tab.js +29 -3
  126. package/lib/components/date_picker/super_date_picker/date_popover/timezone_display.js +104 -0
  127. package/lib/components/date_picker/super_date_picker/date_popover/timezone_display.styles.js +25 -0
  128. package/lib/components/date_picker/super_date_picker/pretty_duration.js +2 -9
  129. package/lib/components/date_picker/super_date_picker/relative_utils.js +9 -0
  130. package/lib/components/date_picker/super_date_picker/super_date_picker.js +118 -26
  131. package/lib/components/date_picker/super_date_picker/time_window_buttons.js +193 -0
  132. package/lib/components/facet/facet_button.js +9 -19
  133. package/lib/components/filter_group/filter_button.js +14 -1
  134. package/lib/components/flyout/flyout.js +26 -9
  135. package/lib/components/form/file_picker/file_picker.styles.js +3 -3
  136. package/lib/components/form/form_control_button/form_control_button.js +13 -7
  137. package/lib/components/header/header_links/header_link.js +13 -7
  138. package/lib/components/header/header_section/header_section_item_button.js +13 -7
  139. package/lib/components/icon/assets/boxes_vertical.js +1 -1
  140. package/lib/components/icon/assets/checkInCircleFilled.js +1 -2
  141. package/lib/components/icon/assets/errorFilled.js +1 -2
  142. package/lib/components/icon/assets/paper_clip.js +1 -1
  143. package/lib/components/icon/assets/streams_wired.js +3 -2
  144. package/lib/components/icon/assets/warningFilled.js +1 -2
  145. package/lib/components/icon/icon_map.js +3 -6
  146. package/lib/components/icon/svgs/boxes_vertical.svg +1 -1
  147. package/lib/components/icon/svgs/checkInCircleFilled.svg +1 -1
  148. package/lib/components/icon/svgs/errorFilled.svg +1 -1
  149. package/lib/components/icon/svgs/paper_clip.svg +3 -3
  150. package/lib/components/icon/svgs/warningFilled.svg +1 -1
  151. package/lib/components/list_group/list_group.js +13 -1
  152. package/lib/components/list_group/list_group_item.js +13 -1
  153. package/lib/components/list_group/list_group_item_extra_action.js +13 -1
  154. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +15 -2
  155. package/lib/components/overlay_mask/overlay_mask.styles.js +1 -1
  156. package/lib/components/pagination/pagination_button.js +13 -7
  157. package/lib/components/popover/popover.js +21 -15
  158. package/lib/components/provider/component_defaults/component_defaults.js +22 -2
  159. package/lib/components/table/table_row.styles.js +1 -1
  160. package/lib/components/tool_tip/tool_tip.js +24 -24
  161. package/lib/global_styling/index.js +16 -1
  162. package/lib/global_styling/mixins/_button.js +1 -1
  163. package/lib/global_styling/utility/selectors.js +15 -0
  164. package/lib/services/focus_trap/focus_trap_pub_sub.js +80 -0
  165. package/lib/services/focus_trap/index.js +12 -0
  166. package/lib/services/hooks/index.js +18 -1
  167. package/lib/services/hooks/useEuiDisabledElement.js +199 -0
  168. package/lib/services/index.js +8 -0
  169. package/lib/services/popover/reposition_on_scroll.js +67 -0
  170. package/lib/services/theme/high_contrast_overrides.js +5 -1
  171. package/lib/test/cypress/index.d.ts +12 -0
  172. package/lib/test/cypress/index.js +18 -0
  173. package/lib/test/cypress/matchers.d.ts +20 -0
  174. package/lib/test/cypress/matchers.js +61 -0
  175. package/lib/test/cypress/test_reposition_on_scroll.js +69 -0
  176. package/lib/test/enzyme/enzyme_matchers.d.ts +36 -0
  177. package/lib/test/enzyme/enzyme_matchers.js +49 -0
  178. package/lib/test/enzyme/index.d.ts +14 -0
  179. package/lib/test/enzyme/index.js +24 -0
  180. package/lib/test/rtl/index.d.ts +9 -1
  181. package/lib/test/rtl/index.js +24 -2
  182. package/lib/test/rtl/matchers.d.ts +36 -0
  183. package/lib/test/rtl/matchers.js +86 -0
  184. package/lib/utils/element_can_be_disabled.js +22 -0
  185. package/lib/utils/index.js +14 -1
  186. package/optimize/es/components/basic_table/collapsed_item_actions.js +3 -1
  187. package/optimize/es/components/basic_table/default_item_action.js +7 -4
  188. package/optimize/es/components/bottom_bar/bottom_bar.js +12 -2
  189. package/optimize/es/components/button/button_display/_button_display.js +24 -12
  190. package/optimize/es/components/button/button_display/_button_display.styles.js +4 -4
  191. package/optimize/es/components/button/button_empty/button_empty.js +18 -6
  192. package/optimize/es/components/button/button_group/button_group.js +10 -5
  193. package/optimize/es/components/button/button_group/button_group_button.js +2 -3
  194. package/optimize/es/components/button/button_group/button_group_button.styles.js +12 -8
  195. package/optimize/es/components/button/button_icon/button_icon.js +17 -5
  196. package/optimize/es/components/code/code_block_virtualized.js +9 -7
  197. package/optimize/es/components/datagrid/body/header/column_actions.js +5 -21
  198. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +6 -4
  199. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.styles.js +8 -2
  200. package/optimize/es/components/datagrid/body/header/data_grid_header_cell_wrapper.js +4 -2
  201. package/optimize/es/components/datagrid/controls/column_selector.js +36 -19
  202. package/optimize/es/components/datagrid/data_grid.js +5 -1
  203. package/optimize/es/components/datagrid/utils/in_memory.js +2 -1
  204. package/optimize/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +12 -4
  205. package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +5 -2
  206. package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_content.js +7 -3
  207. package/optimize/es/components/date_picker/super_date_picker/date_popover/relative_tab.js +10 -2
  208. package/optimize/es/components/date_picker/super_date_picker/date_popover/timezone_display.js +97 -0
  209. package/optimize/es/components/date_picker/super_date_picker/date_popover/timezone_display.styles.js +19 -0
  210. package/optimize/es/components/date_picker/super_date_picker/pretty_duration.js +1 -8
  211. package/optimize/es/components/date_picker/super_date_picker/relative_utils.js +8 -0
  212. package/optimize/es/components/date_picker/super_date_picker/super_date_picker.js +49 -25
  213. package/optimize/es/components/date_picker/super_date_picker/time_window_buttons.js +185 -0
  214. package/optimize/es/components/flyout/flyout.js +27 -10
  215. package/optimize/es/components/form/file_picker/file_picker.styles.js +3 -3
  216. package/optimize/es/components/icon/assets/boxes_vertical.js +1 -1
  217. package/optimize/es/components/icon/assets/checkInCircleFilled.js +1 -2
  218. package/optimize/es/components/icon/assets/errorFilled.js +1 -2
  219. package/optimize/es/components/icon/assets/paper_clip.js +1 -1
  220. package/optimize/es/components/icon/assets/streams_wired.js +3 -2
  221. package/optimize/es/components/icon/assets/warningFilled.js +1 -2
  222. package/optimize/es/components/icon/icon_map.js +3 -6
  223. package/optimize/es/components/overlay_mask/overlay_mask.styles.js +1 -1
  224. package/optimize/es/components/popover/popover.js +22 -16
  225. package/optimize/es/components/table/table_row.styles.js +1 -1
  226. package/optimize/es/components/tool_tip/tool_tip.js +24 -24
  227. package/optimize/es/global_styling/index.js +2 -1
  228. package/optimize/es/global_styling/mixins/_button.js +1 -1
  229. package/optimize/es/global_styling/utility/selectors.js +9 -0
  230. package/optimize/es/services/focus_trap/focus_trap_pub_sub.js +74 -0
  231. package/optimize/es/services/focus_trap/index.js +9 -0
  232. package/optimize/es/services/hooks/index.js +2 -1
  233. package/optimize/es/services/hooks/useEuiDisabledElement.js +192 -0
  234. package/optimize/es/services/index.js +1 -0
  235. package/optimize/es/services/popover/reposition_on_scroll.js +61 -0
  236. package/optimize/es/services/theme/high_contrast_overrides.js +5 -1
  237. package/optimize/es/test/cypress/index.d.ts +12 -0
  238. package/optimize/es/test/cypress/index.js +9 -0
  239. package/optimize/es/test/cypress/matchers.d.ts +20 -0
  240. package/optimize/es/test/cypress/matchers.js +54 -0
  241. package/optimize/es/test/cypress/test_reposition_on_scroll.js +63 -0
  242. package/optimize/es/test/enzyme/enzyme_matchers.d.ts +36 -0
  243. package/optimize/es/test/enzyme/enzyme_matchers.js +43 -0
  244. package/optimize/es/test/enzyme/index.d.ts +14 -0
  245. package/optimize/es/test/enzyme/index.js +10 -0
  246. package/optimize/es/test/rtl/index.d.ts +9 -1
  247. package/optimize/es/test/rtl/index.js +2 -1
  248. package/optimize/es/test/rtl/matchers.d.ts +36 -0
  249. package/optimize/es/test/rtl/matchers.js +82 -0
  250. package/optimize/es/utils/element_can_be_disabled.js +16 -0
  251. package/optimize/es/utils/index.js +2 -1
  252. package/optimize/lib/components/basic_table/collapsed_item_actions.js +3 -1
  253. package/optimize/lib/components/basic_table/default_item_action.js +7 -4
  254. package/optimize/lib/components/bottom_bar/bottom_bar.js +11 -1
  255. package/optimize/lib/components/button/button_display/_button_display.js +23 -11
  256. package/optimize/lib/components/button/button_display/_button_display.styles.js +4 -4
  257. package/optimize/lib/components/button/button_empty/button_empty.js +17 -5
  258. package/optimize/lib/components/button/button_group/button_group.js +10 -5
  259. package/optimize/lib/components/button/button_group/button_group_button.js +2 -3
  260. package/optimize/lib/components/button/button_group/button_group_button.styles.js +10 -6
  261. package/optimize/lib/components/button/button_icon/button_icon.js +16 -4
  262. package/optimize/lib/components/code/code_block_virtualized.js +9 -7
  263. package/optimize/lib/components/datagrid/body/header/column_actions.js +5 -21
  264. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +6 -4
  265. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.styles.js +8 -1
  266. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell_wrapper.js +4 -2
  267. package/optimize/lib/components/datagrid/controls/column_selector.js +36 -19
  268. package/optimize/lib/components/datagrid/data_grid.js +5 -1
  269. package/optimize/lib/components/datagrid/utils/in_memory.js +2 -1
  270. package/optimize/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +11 -3
  271. package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +5 -2
  272. package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_content.js +7 -3
  273. package/optimize/lib/components/date_picker/super_date_picker/date_popover/relative_tab.js +10 -2
  274. package/optimize/lib/components/date_picker/super_date_picker/date_popover/timezone_display.js +103 -0
  275. package/optimize/lib/components/date_picker/super_date_picker/date_popover/timezone_display.styles.js +25 -0
  276. package/optimize/lib/components/date_picker/super_date_picker/pretty_duration.js +2 -9
  277. package/optimize/lib/components/date_picker/super_date_picker/relative_utils.js +9 -0
  278. package/optimize/lib/components/date_picker/super_date_picker/super_date_picker.js +49 -25
  279. package/optimize/lib/components/date_picker/super_date_picker/time_window_buttons.js +193 -0
  280. package/optimize/lib/components/flyout/flyout.js +26 -9
  281. package/optimize/lib/components/form/file_picker/file_picker.styles.js +3 -3
  282. package/optimize/lib/components/icon/assets/boxes_vertical.js +1 -1
  283. package/optimize/lib/components/icon/assets/checkInCircleFilled.js +1 -2
  284. package/optimize/lib/components/icon/assets/errorFilled.js +1 -2
  285. package/optimize/lib/components/icon/assets/paper_clip.js +1 -1
  286. package/optimize/lib/components/icon/assets/streams_wired.js +3 -2
  287. package/optimize/lib/components/icon/assets/warningFilled.js +1 -2
  288. package/optimize/lib/components/icon/icon_map.js +3 -6
  289. package/optimize/lib/components/icon/svgs/boxes_vertical.svg +1 -1
  290. package/optimize/lib/components/icon/svgs/checkInCircleFilled.svg +1 -1
  291. package/optimize/lib/components/icon/svgs/errorFilled.svg +1 -1
  292. package/optimize/lib/components/icon/svgs/paper_clip.svg +3 -3
  293. package/optimize/lib/components/icon/svgs/warningFilled.svg +1 -1
  294. package/optimize/lib/components/overlay_mask/overlay_mask.styles.js +1 -1
  295. package/optimize/lib/components/popover/popover.js +21 -15
  296. package/optimize/lib/components/table/table_row.styles.js +1 -1
  297. package/optimize/lib/components/tool_tip/tool_tip.js +24 -24
  298. package/optimize/lib/global_styling/index.js +16 -1
  299. package/optimize/lib/global_styling/mixins/_button.js +1 -1
  300. package/optimize/lib/global_styling/utility/selectors.js +15 -0
  301. package/optimize/lib/services/focus_trap/focus_trap_pub_sub.js +80 -0
  302. package/optimize/lib/services/focus_trap/index.js +12 -0
  303. package/optimize/lib/services/hooks/index.js +18 -1
  304. package/optimize/lib/services/hooks/useEuiDisabledElement.js +197 -0
  305. package/optimize/lib/services/index.js +8 -0
  306. package/optimize/lib/services/popover/reposition_on_scroll.js +67 -0
  307. package/optimize/lib/services/theme/high_contrast_overrides.js +5 -1
  308. package/optimize/lib/test/cypress/index.d.ts +12 -0
  309. package/optimize/lib/test/cypress/index.js +18 -0
  310. package/optimize/lib/test/cypress/matchers.d.ts +20 -0
  311. package/optimize/lib/test/cypress/matchers.js +61 -0
  312. package/optimize/lib/test/cypress/test_reposition_on_scroll.js +70 -0
  313. package/optimize/lib/test/enzyme/enzyme_matchers.d.ts +36 -0
  314. package/optimize/lib/test/enzyme/enzyme_matchers.js +50 -0
  315. package/optimize/lib/test/enzyme/index.d.ts +14 -0
  316. package/optimize/lib/test/enzyme/index.js +24 -0
  317. package/optimize/lib/test/rtl/index.d.ts +9 -1
  318. package/optimize/lib/test/rtl/index.js +24 -2
  319. package/optimize/lib/test/rtl/matchers.d.ts +36 -0
  320. package/optimize/lib/test/rtl/matchers.js +86 -0
  321. package/optimize/lib/utils/element_can_be_disabled.js +22 -0
  322. package/optimize/lib/utils/index.js +14 -1
  323. package/package.json +6 -5
  324. package/test-env/components/accessibility/skip_link/skip_link.js +10 -1
  325. package/test-env/components/basic_table/collapsed_item_actions.js +3 -1
  326. package/test-env/components/basic_table/default_item_action.js +7 -4
  327. package/test-env/components/bottom_bar/bottom_bar.js +11 -1
  328. package/test-env/components/button/button.js +21 -26
  329. package/test-env/components/button/button_display/_button_display.js +31 -29
  330. package/test-env/components/button/button_display/_button_display.styles.js +4 -4
  331. package/test-env/components/button/button_empty/button_empty.js +31 -13
  332. package/test-env/components/button/button_group/button_group.js +49 -31
  333. package/test-env/components/button/button_group/button_group_button.js +16 -5
  334. package/test-env/components/button/button_group/button_group_button.styles.js +10 -6
  335. package/test-env/components/button/button_icon/button_icon.js +29 -5
  336. package/test-env/components/card/card.js +21 -26
  337. package/test-env/components/card/card_select/card_select.js +21 -26
  338. package/test-env/components/code/code_block_virtualized.js +9 -7
  339. package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +13 -1
  340. package/test-env/components/datagrid/body/cell/data_grid_cell.js +35 -12
  341. package/test-env/components/datagrid/body/data_grid_body.js +23 -6
  342. package/test-env/components/datagrid/body/data_grid_body_custom.js +23 -6
  343. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +23 -6
  344. package/test-env/components/datagrid/body/header/column_actions.js +5 -21
  345. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +29 -10
  346. package/test-env/components/datagrid/body/header/data_grid_header_cell.styles.js +8 -1
  347. package/test-env/components/datagrid/body/header/data_grid_header_cell_wrapper.js +5 -2
  348. package/test-env/components/datagrid/controls/column_selector.js +36 -19
  349. package/test-env/components/datagrid/controls/column_sorting.js +23 -6
  350. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +13 -7
  351. package/test-env/components/datagrid/data_grid.js +5 -1
  352. package/test-env/components/datagrid/utils/in_memory.js +25 -7
  353. package/test-env/components/date_picker/auto_refresh/auto_refresh.js +12 -3
  354. package/test-env/components/date_picker/super_date_picker/date_popover/absolute_tab.js +30 -4
  355. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.js +24 -3
  356. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_content.js +26 -4
  357. package/test-env/components/date_picker/super_date_picker/date_popover/relative_tab.js +29 -3
  358. package/test-env/components/date_picker/super_date_picker/date_popover/timezone_display.js +103 -0
  359. package/test-env/components/date_picker/super_date_picker/date_popover/timezone_display.styles.js +25 -0
  360. package/test-env/components/date_picker/super_date_picker/pretty_duration.js +2 -9
  361. package/test-env/components/date_picker/super_date_picker/relative_utils.js +9 -0
  362. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +118 -26
  363. package/test-env/components/date_picker/super_date_picker/time_window_buttons.js +193 -0
  364. package/test-env/components/facet/facet_button.js +9 -19
  365. package/test-env/components/filter_group/filter_button.js +14 -1
  366. package/test-env/components/form/file_picker/file_picker.styles.js +3 -3
  367. package/test-env/components/form/form_control_button/form_control_button.js +13 -7
  368. package/test-env/components/header/header_links/header_link.js +13 -7
  369. package/test-env/components/header/header_section/header_section_item_button.js +13 -7
  370. package/test-env/components/icon/assets/boxes_vertical.js +1 -1
  371. package/test-env/components/icon/assets/checkInCircleFilled.js +1 -2
  372. package/test-env/components/icon/assets/errorFilled.js +1 -2
  373. package/test-env/components/icon/assets/paper_clip.js +1 -1
  374. package/test-env/components/icon/assets/streams_wired.js +3 -2
  375. package/test-env/components/icon/assets/warningFilled.js +1 -2
  376. package/test-env/components/icon/icon_map.js +3 -6
  377. package/test-env/components/list_group/list_group.js +13 -1
  378. package/test-env/components/list_group/list_group_item.js +13 -1
  379. package/test-env/components/list_group/list_group_item_extra_action.js +13 -1
  380. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +15 -2
  381. package/test-env/components/overlay_mask/overlay_mask.styles.js +1 -1
  382. package/test-env/components/pagination/pagination_button.js +13 -7
  383. package/test-env/components/popover/popover.js +21 -15
  384. package/test-env/components/provider/component_defaults/component_defaults.js +22 -2
  385. package/test-env/components/table/table_row.styles.js +1 -1
  386. package/test-env/components/tool_tip/tool_tip.js +24 -24
  387. package/test-env/global_styling/index.js +16 -1
  388. package/test-env/global_styling/mixins/_button.js +1 -1
  389. package/test-env/global_styling/utility/selectors.js +15 -0
  390. package/test-env/services/focus_trap/focus_trap_pub_sub.js +80 -0
  391. package/test-env/services/focus_trap/index.js +12 -0
  392. package/test-env/services/hooks/index.js +18 -1
  393. package/test-env/services/hooks/useEuiDisabledElement.js +197 -0
  394. package/test-env/services/index.js +8 -0
  395. package/test-env/services/popover/reposition_on_scroll.js +67 -0
  396. package/test-env/services/theme/high_contrast_overrides.js +5 -1
  397. package/test-env/test/cypress/index.js +18 -0
  398. package/test-env/test/cypress/matchers.js +61 -0
  399. package/test-env/test/cypress/test_reposition_on_scroll.js +70 -0
  400. package/test-env/test/enzyme/enzyme_matchers.js +50 -0
  401. package/test-env/test/enzyme/index.js +24 -0
  402. package/test-env/test/rtl/index.js +24 -2
  403. package/test-env/test/rtl/matchers.js +86 -0
  404. package/test-env/utils/element_can_be_disabled.js +22 -0
  405. package/test-env/utils/index.js +14 -1
@@ -14,7 +14,7 @@ var _accessibility = require("../../accessibility");
14
14
  var _button_group_button = require("./button_group_button");
15
15
  var _button_group = require("./button_group.styles");
16
16
  var _react2 = require("@emotion/react");
17
- var _excluded = ["className", "buttonSize", "color", "idSelected", "idToSelectedMap", "isDisabled", "isFullWidth", "isIconOnly", "legend", "name", "onChange", "options", "type"];
17
+ var _excluded = ["className", "buttonSize", "color", "idSelected", "idToSelectedMap", "isDisabled", "hasAriaDisabled", "isFullWidth", "isIconOnly", "legend", "name", "onChange", "options", "type"];
18
18
  /*
19
19
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
20
20
  * or more contributor license agreements. Licensed under the Elastic License
@@ -34,6 +34,8 @@ var EuiButtonGroup = exports.EuiButtonGroup = function EuiButtonGroup(_ref) {
34
34
  idToSelectedMap = _ref$idToSelectedMap === void 0 ? {} : _ref$idToSelectedMap,
35
35
  _ref$isDisabled = _ref.isDisabled,
36
36
  isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
37
+ _ref$hasAriaDisabled = _ref.hasAriaDisabled,
38
+ hasAriaDisabled = _ref$hasAriaDisabled === void 0 ? false : _ref$hasAriaDisabled,
37
39
  _ref$isFullWidth = _ref.isFullWidth,
38
40
  isFullWidth = _ref$isFullWidth === void 0 ? false : _ref$isFullWidth,
39
41
  _ref$isIconOnly = _ref.isIconOnly,
@@ -53,18 +55,21 @@ var EuiButtonGroup = exports.EuiButtonGroup = function EuiButtonGroup(_ref) {
53
55
  'euiButtonGroup-isDisabled': isDisabled
54
56
  }, className);
55
57
  var typeIsSingle = type === 'single';
58
+ var groupDisabledProps = {
59
+ disabled: hasAriaDisabled ? undefined : isDisabled,
60
+ 'aria-disabled': hasAriaDisabled ? isDisabled : undefined
61
+ };
56
62
  return (0, _react2.jsx)("fieldset", (0, _extends2.default)({
57
63
  css: wrapperCssStyles,
58
64
  className: classes
59
- }, rest, {
60
- disabled: isDisabled
61
- }), (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("legend", null, legend)), (0, _react2.jsx)("div", {
65
+ }, rest, groupDisabledProps), (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("legend", null, legend)), (0, _react2.jsx)("div", {
62
66
  css: cssStyles,
63
67
  className: "euiButtonGroup__buttons"
64
68
  }, options.map(function (option) {
65
69
  return (0, _react2.jsx)(_button_group_button.EuiButtonGroupButton, (0, _extends2.default)({
66
70
  key: option.id,
67
- isDisabled: isDisabled
71
+ isDisabled: isDisabled,
72
+ hasAriaDisabled: hasAriaDisabled
68
73
  }, option, {
69
74
  onClick: typeIsSingle ? function () {
70
75
  return onChange(option.id, option.value);
@@ -33,8 +33,7 @@ var EuiButtonGroupButton = exports.EuiButtonGroupButton = function EuiButtonGrou
33
33
  id = _ref.id,
34
34
  isDisabled = _ref.isDisabled,
35
35
  isIconOnly = _ref.isIconOnly,
36
- _ref$isSelected = _ref.isSelected,
37
- isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
36
+ isSelected = _ref.isSelected,
38
37
  label = _ref.label,
39
38
  value = _ref.value,
40
39
  size = _ref.size,
@@ -54,7 +53,7 @@ var EuiButtonGroupButton = exports.EuiButtonGroupButton = function EuiButtonGrou
54
53
  var buttonColorStyles = (0, _button.useEuiButtonColorCSS)({
55
54
  display: display
56
55
  })[color];
57
- var cssStyles = [styles.euiButtonGroupButton, isIconOnly && styles.iconOnly, !isCompressed && (hasToolTip ? styles.uncompressed.hasToolTip : styles.uncompressed[size]), isCompressed ? styles.compressed : styles.uncompressed.uncompressed, isDisabled && isSelected ? styles.disabledAndSelected : buttonColorStyles, !isDisabled && isCompressed && focusColorStyles[color], hasBorder && styles.hasBorder];
56
+ var cssStyles = [styles.euiButtonGroupButton, isIconOnly && styles.iconOnly.iconOnly, isIconOnly && styles.iconOnly[size], !isCompressed && (hasToolTip ? styles.uncompressed.hasToolTip : styles.uncompressed[size]), isCompressed ? styles.compressed : styles.uncompressed.uncompressed, isDisabled && isSelected ? styles.disabledAndSelected : buttonColorStyles, !isDisabled && isCompressed && focusColorStyles[color], hasBorder && styles.hasBorder];
58
57
  var tooltipWrapperStyles = [styles.tooltipWrapper, !isCompressed && styles.uncompressed[size]];
59
58
  var contentStyles = [styles.content.euiButtonGroupButton__content, isCompressed && styles.content.compressed];
60
59
  var textStyles = [isIconOnly ? styles.text.euiButtonGroupButton__iconOnly : styles.text.euiButtonGroupButton__text];
@@ -11,7 +11,6 @@ var _react = require("@emotion/react");
11
11
  var _global_styling = require("../../../global_styling");
12
12
  var _button = require("../../../global_styling/mixins/_button");
13
13
  var _accessibility = require("../../accessibility");
14
- var _form = require("../../form/form.styles");
15
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
15
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
16
  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)."; } /*
@@ -40,9 +39,8 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
40
39
  var euiButtonGroupButtonStyles = exports.euiButtonGroupButtonStyles = function euiButtonGroupButtonStyles(euiThemeContext) {
41
40
  var euiTheme = euiThemeContext.euiTheme,
42
41
  highContrastMode = euiThemeContext.highContrastMode;
43
- var _euiFormVariables = (0, _form.euiFormVariables)(euiThemeContext),
44
- controlCompressedHeight = _euiFormVariables.controlCompressedHeight;
45
- var compressedButtonHeight = (0, _global_styling.mathWithUnits)([controlCompressedHeight, euiTheme.border.width.thin], function (x, y) {
42
+ var buttonSizes = (0, _button.euiButtonSizeMap)(euiThemeContext);
43
+ var compressedButtonHeight = (0, _global_styling.mathWithUnits)([buttonSizes.s.height, euiTheme.border.width.thin], function (x, y) {
46
44
  return x - y * 6;
47
45
  });
48
46
  var selectedSelectors = '.euiButtonGroupButton-isSelected, .euiButtonGroup__tooltipWrapper-isSelected';
@@ -54,10 +52,16 @@ var euiButtonGroupButtonStyles = exports.euiButtonGroupButtonStyles = function e
54
52
  euiButtonGroupButton: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('min-width', 0), " flex-shrink:1;flex-grow:0;z-index:0;&:focus-visible{z-index:2;}", _global_styling.euiCanAnimate, "{transition:background-color ", euiTheme.animation.normal, " ease-in-out,color ", euiTheme.animation.normal, " ease-in-out;}&:is(", selectedSelectors, "){", (0, _global_styling.highContrastModeStyles)(euiThemeContext, {
55
53
  forced: "\n --highContrastHoverIndicatorColor: ".concat(euiTheme.colors.textInverse, ";\n border: none;\n\n /* styles the content manually instead of the button itself to preserve the system\n focus style, as otherwise preventForcedColors() would require manual styling */\n > [class*=\"euiButtonDisplayContent\"] {\n ").concat((0, _global_styling.preventForcedColors)(euiThemeContext), "\n color: ").concat(euiTheme.colors.emptyShade, ";\n border: none;\n }\n ")
56
54
  }), ";};label:euiButtonGroupButton;"),
57
- iconOnly: /*#__PURE__*/(0, _react.css)("padding-inline:", euiTheme.size.s, ";;label:iconOnly;"),
55
+ iconOnly: {
56
+ // used only as classname, sizes are added separately
57
+ iconOnly: /*#__PURE__*/(0, _react.css)(";label:iconOnly;"),
58
+ s: "\n ".concat((0, _global_styling.logicalCSS)('width', buttonSizes.s.height), "\n "),
59
+ m: "\n ".concat((0, _global_styling.logicalCSS)('width', buttonSizes.m.height), "\n "),
60
+ compressed: "\n ".concat((0, _global_styling.logicalCSS)('width', compressedButtonHeight), "\n ")
61
+ },
58
62
  // Sizes
59
63
  uncompressed: {
60
- uncompressed: /*#__PURE__*/(0, _react.css)("&:focus-visible{", (0, _global_styling.euiOutline)(euiThemeContext, 'inset', euiTheme.components.buttonGroupFocusColor), ";}&:is(", selectedSelectors, "):not(:disabled){z-index:1;border:", euiTheme.border.width.thin, " solid transparent;", (0, _global_styling.highContrastModeStyles)(euiThemeContext, {
64
+ uncompressed: /*#__PURE__*/(0, _react.css)("&:focus-visible{", (0, _global_styling.euiOutline)(euiThemeContext, 'inset', euiTheme.components.buttonGroupFocusColor), ";}&:is(", selectedSelectors, "):not(", _global_styling.euiDisabledSelector, "){z-index:1;border:", euiTheme.border.width.thin, " solid transparent;", (0, _global_styling.highContrastModeStyles)(euiThemeContext, {
61
65
  forced: "\n /* use inset focus outline to ensure visibility, same as custom hover.\n NOTE: temp solution - this will be revisited once we handle global focus styles */\n &:focus-visible {\n outline-color: ".concat(euiTheme.colors.textInverse, ";\n /* has to be inset due to overflow: hidden */\n outline-offset: -").concat((0, _global_styling.mathWithUnits)(euiTheme.border.width.thin, function (x) {
62
66
  return x * 4;
63
67
  }), ";\n }\n ")
@@ -10,13 +10,15 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
12
  var _services = require("../../../services");
13
+ var _useEuiDisabledElement = require("../../../services/hooks/useEuiDisabledElement");
13
14
  var _icon = require("../../icon");
14
15
  var _loading = require("../../loading");
15
16
  var _button = require("../../../global_styling/mixins/_button");
16
17
  var _button_display = require("../button_display/_button_display");
17
18
  var _button_icon = require("./button_icon.styles");
18
19
  var _react2 = require("@emotion/react");
19
- var _excluded = ["className", "iconType", "iconSize", "color", "isDisabled", "disabled", "href", "type", "display", "target", "rel", "size", "buttonRef", "isSelected", "isLoading"];
20
+ var _excluded = ["className", "iconType", "iconSize", "color", "isDisabled", "disabled", "hasAriaDisabled", "href", "type", "display", "target", "rel", "size", "buttonRef", "isSelected", "isLoading"],
21
+ _excluded2 = ["ref"];
20
22
  /*
21
23
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
22
24
  * or more contributor license agreements. Licensed under the Elastic License
@@ -35,6 +37,8 @@ var EuiButtonIcon = exports.EuiButtonIcon = function EuiButtonIcon(_ref) {
35
37
  color = _ref$color === void 0 ? 'primary' : _ref$color,
36
38
  _isDisabled = _ref.isDisabled,
37
39
  disabled = _ref.disabled,
40
+ _ref$hasAriaDisabled = _ref.hasAriaDisabled,
41
+ hasAriaDisabled = _ref$hasAriaDisabled === void 0 ? false : _ref$hasAriaDisabled,
38
42
  href = _ref.href,
39
43
  _ref$type = _ref.type,
40
44
  type = _ref$type === void 0 ? 'button' : _ref$type,
@@ -53,6 +57,14 @@ var EuiButtonIcon = exports.EuiButtonIcon = function EuiButtonIcon(_ref) {
53
57
  href: href,
54
58
  isLoading: isLoading
55
59
  });
60
+ var _useEuiDisabledElemen = (0, _useEuiDisabledElement.useEuiDisabledElement)({
61
+ isDisabled: isDisabled,
62
+ hasAriaDisabled: hasAriaDisabled,
63
+ onKeyDown: rest.onKeyDown
64
+ }),
65
+ disabledRef = _useEuiDisabledElemen.ref,
66
+ disabledButtonProps = (0, _objectWithoutProperties2.default)(_useEuiDisabledElemen, _excluded2);
67
+ var setCombinedRef = (0, _services.useCombinedRefs)([disabledRef, buttonRef]);
56
68
  var ariaHidden = rest['aria-hidden'];
57
69
  var isAriaHidden = ariaHidden === 'true' || ariaHidden === true;
58
70
  if (!rest['aria-label'] && !rest['aria-labelledby'] && !isAriaHidden) {
@@ -112,7 +124,7 @@ var EuiButtonIcon = exports.EuiButtonIcon = function EuiButtonIcon(_ref) {
112
124
  href: href,
113
125
  target: target,
114
126
  rel: secureRel,
115
- ref: buttonRef
127
+ ref: setCombinedRef
116
128
  }, rest), buttonIcon);
117
129
  }
118
130
  var buttonType;
@@ -123,6 +135,6 @@ var EuiButtonIcon = exports.EuiButtonIcon = function EuiButtonIcon(_ref) {
123
135
  className: classes,
124
136
  "aria-pressed": isSelected,
125
137
  type: type,
126
- ref: buttonRef
127
- }, rest), buttonIcon);
138
+ ref: setCombinedRef
139
+ }, rest, disabledButtonProps), buttonIcon);
128
140
  };
@@ -14,7 +14,7 @@ var _global_styling = require("../../global_styling");
14
14
  var _auto_sizer = require("../auto_sizer");
15
15
  var _utils = require("./utils");
16
16
  var _react2 = require("@emotion/react");
17
- var _excluded = ["style", "children"],
17
+ var _excluded = ["style"],
18
18
  _excluded2 = ["style"];
19
19
  /*
20
20
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -32,29 +32,31 @@ var EuiCodeBlockVirtualized = exports.EuiCodeBlockVirtualized = function EuiCode
32
32
  overflowHeight = _ref.overflowHeight,
33
33
  preProps = _ref.preProps,
34
34
  codeProps = _ref.codeProps;
35
+ // NOTE: Don't inject other content (e.g. a label) inside this outer virtualized
36
+ // container as react-window requires this to be stable for scroll calculations.
37
+ // Instead, inject it into the inner virtualized element.
35
38
  var VirtualizedOuterElement = (0, _react.useMemo)(function () {
36
39
  return /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
37
40
  var style = _ref2.style,
38
- children = _ref2.children,
39
41
  props = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
40
42
  return (0, _react2.jsx)("pre", (0, _extends2.default)({
41
43
  style: (0, _global_styling.logicalStyles)(style)
42
44
  }, props, {
43
45
  ref: ref
44
- }, preProps), label, children);
46
+ }, preProps));
45
47
  });
46
- }, [preProps, label]);
48
+ }, [preProps]);
47
49
  var VirtualizedInnerElement = (0, _react.useMemo)(function () {
48
50
  return /*#__PURE__*/(0, _react.forwardRef)(function (_ref3, ref) {
49
51
  var style = _ref3.style,
50
52
  props = (0, _objectWithoutProperties2.default)(_ref3, _excluded2);
51
- return (0, _react2.jsx)("code", (0, _extends2.default)({
53
+ return (0, _react2.jsx)(_react.default.Fragment, null, label, (0, _react2.jsx)("code", (0, _extends2.default)({
52
54
  style: (0, _global_styling.logicalStyles)(style)
53
55
  }, props, {
54
56
  ref: ref
55
- }, codeProps));
57
+ }, codeProps)));
56
58
  });
57
- }, [codeProps]);
59
+ }, [codeProps, label]);
58
60
  var virtualizationProps = {
59
61
  itemData: data,
60
62
  itemSize: rowHeight,
@@ -79,16 +79,6 @@ var ColumnActions = exports.ColumnActions = /*#__PURE__*/(0, _react.memo)(functi
79
79
  var closePopover = (0, _react.useCallback)(function () {
80
80
  setIsPopoverOpen(false);
81
81
  }, []);
82
- var _useState3 = (0, _react.useState)(false),
83
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
84
- isActionsButtonFocused = _useState4[0],
85
- setIsActionsButtonFocused = _useState4[1];
86
- var onFocus = (0, _react.useCallback)(function () {
87
- return setIsActionsButtonFocused(true);
88
- }, []);
89
- var onBlur = (0, _react.useCallback)(function () {
90
- return setIsActionsButtonFocused(false);
91
- }, []);
92
82
  var actionsButtonAriaLabel = (0, _i18n.useEuiI18n)('euiDataGridHeaderCell.actionsButtonAriaLabel', '{title}. Click to view column header actions.', {
93
83
  title: title
94
84
  });
@@ -103,10 +93,10 @@ var ColumnActions = exports.ColumnActions = /*#__PURE__*/(0, _react.memo)(functi
103
93
  /**
104
94
  * Props to set on parent EuiDataGridHeaderCell
105
95
  */
106
- var _useState5 = (0, _react.useState)(false),
107
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
108
- isColumnMoving = _useState6[0],
109
- setIsColumnMoving = _useState6[1];
96
+ var _useState3 = (0, _react.useState)(false),
97
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
98
+ isColumnMoving = _useState4[0],
99
+ setIsColumnMoving = _useState4[1];
110
100
  (0, _react.useEffect)(function () {
111
101
  setPropsFromColumnActions({
112
102
  className: isPopoverOpen ? 'euiDataGridHeaderCell--isActionsPopoverOpen' : '',
@@ -152,17 +142,11 @@ var ColumnActions = exports.ColumnActions = /*#__PURE__*/(0, _react.memo)(functi
152
142
  iconType: "boxesVertical",
153
143
  iconSize: "s",
154
144
  color: "text",
155
- css: styles.euiDataGridHeaderCell__actions,
156
145
  className: "euiDataGridHeaderCell__button",
157
146
  onClick: togglePopover,
158
147
  buttonRef: actionsButtonRef,
159
- onFocus: onFocus,
160
- onBlur: onBlur,
161
- tabIndex: 0 // Override EuiButtonIcon's conditional tabindex based on aria-hidden
162
- ,
163
- "aria-hidden": hasFocusTrap && !isActionsButtonFocused ? 'true' // prevent the actions button from being read on cell focus
164
- : undefined,
165
148
  "aria-label": hasFocusTrap ? actionsButtonAriaLabel : actionsEnterKeyInstructions,
149
+ css: [styles.euiDataGridHeaderCell__actions.action, styles.euiDataGridHeaderCell__actions.end, ";label:ColumnActions;"],
166
150
  "data-test-subj": "dataGridHeaderCellActionButton-".concat(id)
167
151
  }),
168
152
  isOpen: isPopoverOpen,
@@ -55,6 +55,7 @@ var EuiDataGridHeaderCell = exports.EuiDataGridHeaderCell = /*#__PURE__*/(0, _re
55
55
  var width = columnWidths[id] || defaultColumnWidth;
56
56
  var columnType = schema[id] ? schema[id].columnType : null;
57
57
  var hasColumnActions = (0, _column_actions.useHasColumnActions)(actions);
58
+ var cellContentId = "dataGridHeaderCellContent-".concat(id);
58
59
  var classes = (0, _classnames2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "euiDataGridHeaderCell--".concat(columnType), columnType), 'euiDataGridHeaderCell--hasColumnActions', hasColumnActions), displayHeaderCellProps === null || displayHeaderCellProps === void 0 ? void 0 : displayHeaderCellProps.className);
59
60
  var styles = (0, _services.useEuiMemoizedStyles)(_data_grid_header_cell.euiDataGridHeaderCellStyles);
60
61
  var contentStyles = [styles.euiDataGridHeaderCell__content, (columnType === 'numeric' || columnType === 'currency') && styles.right];
@@ -98,8 +99,7 @@ var EuiDataGridHeaderCell = exports.EuiDataGridHeaderCell = /*#__PURE__*/(0, _re
98
99
  isLastColumn: isLastColumn,
99
100
  width: width,
100
101
  "aria-sort": ariaSort,
101
- "aria-label": displayAsText && "".concat(displayAsText, ", ") // ensure cell text content is read first, if available
102
- ,
102
+ "aria-labelledby": cellContentId,
103
103
  "aria-describedby": (0, _classnames2.default)(sortingAriaId, dragProps === null || dragProps === void 0 ? void 0 : dragProps['aria-describedby']),
104
104
  "data-column-moving": propsFromColumnActions['data-column-moving'] || (dragProps === null || dragProps === void 0 ? void 0 : dragProps['data-column-moving']) || undefined
105
105
  }), function (hasFocusTrap) {
@@ -108,11 +108,13 @@ var EuiDataGridHeaderCell = exports.EuiDataGridHeaderCell = /*#__PURE__*/(0, _re
108
108
  }, (0, _react2.jsx)(_icon.EuiIcon, {
109
109
  type: "grabOmnidirectional",
110
110
  size: "s",
111
- css: styles.euiDataGridHeaderCell__actions
111
+ css: [styles.euiDataGridHeaderCell__actions.action, styles.euiDataGridHeaderCell__actions.start, ";label:EuiDataGridHeaderCell;"]
112
112
  })), (0, _react2.jsx)("div", {
113
113
  css: contentStyles,
114
114
  className: "euiDataGridHeaderCell__content",
115
- title: title
115
+ title: title,
116
+ id: cellContentId,
117
+ "aria-label": displayAsText ? displayAsText : typeof children === 'string' ? children : undefined
116
118
  }, children), sortingArrow, sortingScreenReaderText, hasColumnActions && (0, _react2.jsx)(_column_actions.ColumnActions, {
117
119
  index: index,
118
120
  id: id,
@@ -22,11 +22,18 @@ var euiDataGridHeaderCellStyles = exports.euiDataGridHeaderCellStyles = function
22
22
  var euiTheme = euiThemeContext.euiTheme;
23
23
  var _euiDataGridCellOutli = (0, _data_grid_cell.euiDataGridCellOutlineSelectors)('.euiDataGridHeaderCell'),
24
24
  header = _euiDataGridCellOutli.header;
25
+ var hideAnimation = function hideAnimation(margin, translateX) {
26
+ return "\n ".concat(header.hideActions, " & {\n ").concat((0, _global_styling.logicalCSS)('margin-left', margin), "\n transform: translateX(").concat(translateX, ") scale(0.01);\n opacity: 0;\n }\n ");
27
+ };
25
28
  return {
26
29
  euiDataGridHeaderCell__content: /*#__PURE__*/(0, _react.css)("flex-grow:1;", (0, _global_styling.euiTextTruncate)(), ";;label:euiDataGridHeaderCell__content;"),
27
30
  // Numeric and currency schemas are aligned to the right
28
31
  right: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalTextAlignCSS)('right'), ";;label:right;"),
29
32
  euiDataGridHeaderCell__popover: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-left', 'auto'), "line-height:0;;label:euiDataGridHeaderCell__popover;"),
30
- euiDataGridHeaderCell__actions: /*#__PURE__*/(0, _react.css)("overflow:hidden;display:flex;", header.hideActions, " &{", (0, _global_styling.logicalCSS)('width', 0), " opacity:0;}", _global_styling.euiCanAnimate, "{transition:inline-size ", euiTheme.animation.fast, " ease-in,opacity ", euiTheme.animation.slow, " ease-in;transform:none!important;animation:none!important;};label:euiDataGridHeaderCell__actions;")
33
+ euiDataGridHeaderCell__actions: {
34
+ action: /*#__PURE__*/(0, _react.css)("overflow:hidden;display:flex;max-inline-size:24px;", _global_styling.euiCanAnimate, "{transition:transform ", euiTheme.animation.fast, " ease-in,opacity ", euiTheme.animation.slow, " ease-in,margin-left ", euiTheme.animation.fast, " ease-in;animation:none!important;};label:action;"),
35
+ start: /*#__PURE__*/(0, _react.css)(hideAnimation("-".concat(euiTheme.size.m), '0%'), ";;label:start;"),
36
+ end: /*#__PURE__*/(0, _react.css)(hideAnimation("-".concat(euiTheme.size.l), '50%'), ";;label:end;")
37
+ }
31
38
  };
32
39
  };
@@ -16,7 +16,7 @@ var _focus = require("../../utils/focus");
16
16
  var _focus_utils = require("../cell/focus_utils");
17
17
  var _data_grid_header_cell_wrapper = require("./data_grid_header_cell_wrapper.styles");
18
18
  var _react2 = require("@emotion/react");
19
- var _excluded = ["id", "index", "isLastColumn", "width", "className", "children", "hasColumnActions", "isDragging", "onKeyDown", "aria-label"];
19
+ var _excluded = ["id", "index", "isLastColumn", "width", "className", "children", "hasColumnActions", "isDragging", "onKeyDown", "aria-label", "aria-labelledby"];
20
20
  /*
21
21
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
22
22
  * or more contributor license agreements. Licensed under the Elastic License
@@ -42,6 +42,7 @@ var EuiDataGridHeaderCellWrapper = exports.EuiDataGridHeaderCellWrapper = functi
42
42
  isDragging = _ref.isDragging,
43
43
  _onKeyDown = _ref.onKeyDown,
44
44
  ariaLabel = _ref['aria-label'],
45
+ ariaLabelledby = _ref['aria-labelledby'],
45
46
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
46
47
  var classes = (0, _classnames.default)('euiDataGridHeaderCell', className);
47
48
  var styles = (0, _services.useEuiMemoizedStyles)(_data_grid_header_cell_wrapper.euiDataGridHeaderCellWrapperStyles);
@@ -107,7 +108,8 @@ var EuiDataGridHeaderCellWrapper = exports.EuiDataGridHeaderCellWrapper = functi
107
108
  style: width != null ? {
108
109
  width: "".concat(width, "px")
109
110
  } : {},
110
- "aria-label": renderFocusTrap ? ariaLabel : undefined
111
+ "aria-label": renderFocusTrap ? ariaLabel : undefined,
112
+ "aria-labelledby": renderFocusTrap ? ariaLabelledby : undefined
111
113
  }, rest), (0, _react2.jsx)(_focus_utils.HandleInteractiveChildren, {
112
114
  cellEl: isDragging ? null : headerEl,
113
115
  renderFocusTrap: isDragging ? false : renderFocusTrap,
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.useDataGridColumnSelector = void 0;
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
  var _classnames = _interopRequireDefault(require("classnames"));
@@ -45,31 +45,48 @@ var useDataGridColumnSelector = exports.useDataGridColumnSelector = function use
45
45
  var id = _ref.id;
46
46
  return id;
47
47
  });
48
- var availableSet = new Set(availableColumnIds);
49
- // Filter visibleColumns to only include existing columns
48
+ // remove duplicate columns to ensure unique columns
49
+ var availableColumnIdsSet = new Set(availableColumnIds);
50
+ if (process.env.NODE_ENV === 'development') {
51
+ if (availableColumnIds.length > availableColumnIdsSet.size) {
52
+ var duplicateIds = [];
53
+ var _iterator = _createForOfIteratorHelper(availableColumnIds),
54
+ _step;
55
+ try {
56
+ var _loop = function _loop() {
57
+ var id = _step.value;
58
+ if (!duplicateIds.includes(id) && availableColumnIds.filter(function (_id) {
59
+ return _id === id;
60
+ }).length > 1) {
61
+ duplicateIds.push(id);
62
+ }
63
+ };
64
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
65
+ _loop();
66
+ }
67
+ } catch (err) {
68
+ _iterator.e(err);
69
+ } finally {
70
+ _iterator.f();
71
+ }
72
+ console.warn("\u26A0\uFE0F EuiDataGrid: Duplicate column IDs detected and removed: ".concat(duplicateIds.join(', '), "."), '\n Column IDs must be unique. Only the first occurrence of each duplicate will be used.');
73
+ }
74
+ }
50
75
  var validVisibleColumns = visibleColumns.filter(function (id) {
51
- return availableSet.has(id);
76
+ return availableColumnIdsSet.has(id);
52
77
  });
53
78
  var visibleSet = new Set(validVisibleColumns);
54
79
  var result = [];
55
80
  var visibleIndex = 0;
56
- var _iterator = _createForOfIteratorHelper(availableColumnIds),
57
- _step;
58
- try {
59
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
60
- var columnId = _step.value;
61
- if (visibleSet.has(columnId)) {
62
- // Replace with next visible column in order
81
+ for (var _i = 0, _arr = (0, _toConsumableArray2.default)(availableColumnIdsSet); _i < _arr.length; _i++) {
82
+ var columnId = _arr[_i];
83
+ if (visibleSet.has(columnId)) {
84
+ if (visibleIndex < validVisibleColumns.length) {
63
85
  result.push(validVisibleColumns[visibleIndex++]);
64
- } else {
65
- // Keep hidden column in original position
66
- result.push(columnId);
67
86
  }
87
+ } else {
88
+ result.push(columnId);
68
89
  }
69
- } catch (err) {
70
- _iterator.e(err);
71
- } finally {
72
- _iterator.f();
73
90
  }
74
91
  return result;
75
92
  // doesn't depend on visibleColumns on purpose to keep it an initial state
@@ -134,7 +151,7 @@ var useDataGridColumnSelector = exports.useDataGridColumnSelector = function use
134
151
  anchorPosition: "downLeft",
135
152
  panelPaddingSize: "none",
136
153
  button: (0, _react2.jsx)(_data_grid_toolbar_control.EuiDataGridToolbarControl, {
137
- badgeContent: numberOfHiddenFields > 0 ? "".concat(orderedVisibleColumns.length, "/").concat(availableColumns.length) : availableColumns.length,
154
+ badgeContent: numberOfHiddenFields > 0 ? "".concat(orderedVisibleColumns.length, "/").concat(sortedColumns.length) : sortedColumns.length,
138
155
  iconType: "tableDensityNormal",
139
156
  "data-test-subj": "dataGridColumnSelectorButton",
140
157
  onClick: function onClick() {
@@ -164,7 +164,11 @@ var EuiDataGrid = exports.EuiDataGrid = /*#__PURE__*/(0, _react.memo)( /*#__PURE
164
164
  */
165
165
  var displayValues = (0, _react.useMemo)(function () {
166
166
  return columns.reduce(function (acc, column) {
167
- return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2.default)({}, column.id, column.displayAsText || column.id));
167
+ // prevent duplicate values
168
+ if (!acc[column.id]) {
169
+ return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2.default)({}, column.id, column.displayAsText || column.id));
170
+ }
171
+ return acc;
168
172
  }, {});
169
173
  }, [columns]);
170
174
  var _useDataGridDisplaySe = (0, _controls.useDataGridDisplaySelector)((0, _controls.checkOrDefaultToolBarDisplayOptions)(toolbarVisibility, 'showDisplaySelector'), gridStyleWithDefaults, _rowHeightsOptions),
@@ -95,13 +95,14 @@ var EuiDataGridInMemoryRenderer = exports.EuiDataGridInMemoryRenderer = function
95
95
  var cells = [];
96
96
  var _loop = function _loop(i) {
97
97
  cells.push(columns.map(function (column, j) {
98
+ var key = "".concat(i, "-").concat(j, "-").concat(column.id);
98
99
  var skipThisColumn = inMemory.skipColumns && inMemory.skipColumns.indexOf(column.id) !== -1;
99
100
  if (skipThisColumn) {
100
101
  return null;
101
102
  }
102
103
  var isExpandable = column.isExpandable !== undefined ? column.isExpandable : true;
103
104
  return (0, _react3.jsx)("div", {
104
- key: "".concat(i, "-").concat(column.id),
105
+ key: key,
105
106
  "data-dg-row": i,
106
107
  "data-dg-column": column.id
107
108
  }, (0, _react3.jsx)(CellElement, {
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.EuiAbsoluteTab = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var _moment = _interopRequireDefault(require("moment"));
@@ -17,6 +18,7 @@ var _flex = require("../../../flex");
17
18
  var _button = require("../../../button");
18
19
  var _code = require("../../../code");
19
20
  var _date_picker = require("../../date_picker");
21
+ var _timezone_display = require("./timezone_display");
20
22
  var _absolute_tab = require("./absolute_tab.styles");
21
23
  var _react2 = require("@emotion/react");
22
24
  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); }
@@ -43,7 +45,9 @@ var EuiAbsoluteTab = exports.EuiAbsoluteTab = function EuiAbsoluteTab(_ref) {
43
45
  utcOffset = _ref.utcOffset,
44
46
  minDate = _ref.minDate,
45
47
  maxDate = _ref.maxDate,
46
- labelPrefix = _ref.labelPrefix;
48
+ labelPrefix = _ref.labelPrefix,
49
+ _ref$timeZoneDisplayP = _ref.timeZoneDisplayProps,
50
+ timeZoneDisplayProps = _ref$timeZoneDisplayP === void 0 ? {} : _ref$timeZoneDisplayP;
47
51
  var styles = (0, _services.useEuiMemoizedStyles)(_absolute_tab.euiAbsoluteTabDateFormStyles);
48
52
  var _useState = (0, _react.useState)(function () {
49
53
  var parsedValue = _datemath.default.parse(value, {
@@ -62,6 +66,7 @@ var EuiAbsoluteTab = exports.EuiAbsoluteTab = function EuiAbsoluteTab(_ref) {
62
66
  setHasUnparsedText(false);
63
67
  setIsTextInvalid(false);
64
68
  }, [dateFormat]);
69
+ var timeZomeDescriptionId = (0, _services.useGeneratedHtmlId)();
65
70
  var submitButtonLabel = (0, _i18n.useEuiI18n)('euiAbsoluteTab.dateFormatButtonLabel', 'Parse date');
66
71
  var dateFormatError = (0, _i18n.useEuiI18n)('euiAbsoluteTab.dateFormatError', 'Allowed formats: {dateFormat}, ISO 8601, RFC 2822, or Unix timestamp.', {
67
72
  dateFormat: (0, _react2.jsx)(_code.EuiCode, null, dateFormat)
@@ -152,7 +157,8 @@ var EuiAbsoluteTab = exports.EuiAbsoluteTab = function EuiAbsoluteTab(_ref) {
152
157
  css: styles.euiAbsoluteTabDateForm__row,
153
158
  isInvalid: isTextInvalid,
154
159
  error: isTextInvalid ? dateFormatError : undefined,
155
- helpText: hasUnparsedText && !isTextInvalid ? dateFormatError : undefined
160
+ helpText: hasUnparsedText && !isTextInvalid ? dateFormatError : undefined,
161
+ describedByIds: [timeZomeDescriptionId]
156
162
  }, (0, _react2.jsx)(_form.EuiFieldText, {
157
163
  compressed: true,
158
164
  isInvalid: isTextInvalid,
@@ -176,5 +182,7 @@ var EuiAbsoluteTab = exports.EuiAbsoluteTab = function EuiAbsoluteTab(_ref) {
176
182
  "aria-label": submitButtonLabel,
177
183
  title: submitButtonLabel,
178
184
  "data-test-subj": "parseAbsoluteDateFormat"
179
- })));
185
+ })), (0, _react2.jsx)(_timezone_display.EuiTimeZoneDisplay, (0, _extends2.default)({
186
+ id: timeZomeDescriptionId
187
+ }, timeZoneDisplayProps)));
180
188
  };
@@ -16,7 +16,7 @@ var _pretty_duration = require("../pretty_duration");
16
16
  var _date_popover_content = require("./date_popover_content");
17
17
  var _date_popover_button = require("./date_popover_button.styles");
18
18
  var _react2 = require("@emotion/react");
19
- var _excluded = ["position", "isDisabled", "isInvalid", "needsUpdating", "value", "buttonProps", "canRoundRelativeUnits", "roundUp", "onChange", "locale", "dateFormat", "utcOffset", "minDate", "maxDate", "timeFormat", "isOpen", "onPopoverToggle", "onPopoverClose", "compressed", "timeOptions"];
19
+ var _excluded = ["position", "isDisabled", "isInvalid", "needsUpdating", "value", "buttonProps", "canRoundRelativeUnits", "roundUp", "onChange", "locale", "dateFormat", "utcOffset", "minDate", "maxDate", "timeFormat", "isOpen", "onPopoverToggle", "onPopoverClose", "compressed", "timeOptions", "timeZoneDisplayProps"];
20
20
  /*
21
21
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
22
22
  * or more contributor license agreements. Licensed under the Elastic License
@@ -46,6 +46,8 @@ var EuiDatePopoverButton = exports.EuiDatePopoverButton = function EuiDatePopove
46
46
  onPopoverClose = props.onPopoverClose,
47
47
  compressed = props.compressed,
48
48
  timeOptions = props.timeOptions,
49
+ _props$timeZoneDispla = props.timeZoneDisplayProps,
50
+ timeZoneDisplayProps = _props$timeZoneDispla === void 0 ? {} : _props$timeZoneDispla,
49
51
  rest = (0, _objectWithoutProperties2.default)(props, _excluded);
50
52
  var classes = (0, _classnames.default)(['euiDatePopoverButton', "euiDatePopoverButton--".concat(position), {
51
53
  'euiDatePopoverButton--compressed': compressed,
@@ -104,7 +106,8 @@ var EuiDatePopoverButton = exports.EuiDatePopoverButton = function EuiDatePopove
104
106
  utcOffset: utcOffset,
105
107
  timeOptions: timeOptions,
106
108
  minDate: minDate,
107
- maxDate: maxDate
109
+ maxDate: maxDate,
110
+ timeZoneDisplayProps: timeZoneDisplayProps
108
111
  }));
109
112
  };
110
113
  EuiDatePopoverButton.displayName = 'EuiDatePopoverButton';
@@ -39,7 +39,9 @@ var EuiDatePopoverContent = exports.EuiDatePopoverContent = function EuiDatePopo
39
39
  utcOffset = _ref.utcOffset,
40
40
  timeOptions = _ref.timeOptions,
41
41
  minDate = _ref.minDate,
42
- maxDate = _ref.maxDate;
42
+ maxDate = _ref.maxDate,
43
+ _ref$timeZoneDisplayP = _ref.timeZoneDisplayProps,
44
+ timeZoneDisplayProps = _ref$timeZoneDisplayP === void 0 ? {} : _ref$timeZoneDisplayP;
43
45
  var styles = (0, _services.useEuiMemoizedStyles)(_date_popover_content.euiDatePopoverContentStyles);
44
46
  var onTabClick = function onTabClick(selectedTab) {
45
47
  switch (selectedTab.id) {
@@ -70,7 +72,8 @@ var EuiDatePopoverContent = exports.EuiDatePopoverContent = function EuiDatePopo
70
72
  labelPrefix: labelPrefix,
71
73
  utcOffset: utcOffset,
72
74
  minDate: minDate,
73
- maxDate: maxDate
75
+ maxDate: maxDate,
76
+ timeZoneDisplayProps: timeZoneDisplayProps
74
77
  }),
75
78
  'data-test-subj': 'superDatePickerAbsoluteTab',
76
79
  'aria-label': "".concat(labelPrefix, ": ").concat(absoluteLabel)
@@ -84,7 +87,8 @@ var EuiDatePopoverContent = exports.EuiDatePopoverContent = function EuiDatePopo
84
87
  onChange: onChange,
85
88
  roundUp: roundUp,
86
89
  labelPrefix: labelPrefix,
87
- timeOptions: timeOptions
90
+ timeOptions: timeOptions,
91
+ timeZoneDisplayProps: timeZoneDisplayProps
88
92
  }),
89
93
  'data-test-subj': 'superDatePickerRelativeTab',
90
94
  'aria-label': "".concat(labelPrefix, ": ").concat(relativeLabel)
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.EuiRelativeTab = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var _datemath = _interopRequireDefault(require("@elastic/datemath"));
@@ -19,6 +20,7 @@ var _popover = require("../../../popover");
19
20
  var _spacer = require("../../../spacer");
20
21
  var _date_modes = require("../date_modes");
21
22
  var _relative_utils = require("../relative_utils");
23
+ var _timezone_display = require("./timezone_display");
22
24
  var _react2 = require("@emotion/react");
23
25
  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); }
24
26
  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; }
@@ -39,7 +41,9 @@ var EuiRelativeTab = exports.EuiRelativeTab = function EuiRelativeTab(_ref) {
39
41
  value = _ref.value,
40
42
  onChange = _ref.onChange,
41
43
  roundUp = _ref.roundUp,
42
- labelPrefix = _ref.labelPrefix;
44
+ labelPrefix = _ref.labelPrefix,
45
+ _ref$timeZoneDisplayP = _ref.timeZoneDisplayProps,
46
+ timeZoneDisplayProps = _ref$timeZoneDisplayP === void 0 ? {} : _ref$timeZoneDisplayP;
43
47
  var initialRelativeParts = (0, _react.useRef)((0, _relative_utils.parseRelativeParts)(value));
44
48
  var roundUnit = initialRelativeParts.current.roundUnit;
45
49
  var _useState = (0, _react.useState)(initialRelativeParts.current.unit),
@@ -87,6 +91,7 @@ var EuiRelativeTab = exports.EuiRelativeTab = function EuiRelativeTab(_ref) {
87
91
  return parsedValue.locale(locale || 'en').format(dateFormat);
88
92
  }, [isInvalid, value, roundUp, locale, dateFormat]);
89
93
  var relativeDateInputNumberDescriptionId = (0, _services.useGeneratedHtmlId)();
94
+ var timeZomeDescriptionId = (0, _services.useGeneratedHtmlId)();
90
95
  var numberAriaLabel = (0, _i18n.useEuiI18n)('euiRelativeTab.numberInputLabel', 'Time span amount');
91
96
  var numberInputError = (0, _i18n.useEuiI18n)('euiRelativeTab.numberInputError', 'Must be >= 0');
92
97
  var dateInputError = (0, _i18n.useEuiI18n)('euiRelativeTab.dateInputError', 'Must be a valid range');
@@ -120,6 +125,7 @@ var EuiRelativeTab = exports.EuiRelativeTab = function EuiRelativeTab(_ref) {
120
125
  compressed: true,
121
126
  value: formattedValue,
122
127
  readOnly: true,
128
+ "aria-describedby": timeZomeDescriptionId,
123
129
  prepend: (0, _react2.jsx)(_form.EuiFormLabel, null, labelPrefix)
124
130
  }), (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", {
125
131
  id: relativeDateInputNumberDescriptionId
@@ -129,7 +135,9 @@ var EuiRelativeTab = exports.EuiRelativeTab = function EuiRelativeTab(_ref) {
129
135
  values: {
130
136
  unit: unit
131
137
  }
132
- })))), (0, _react2.jsx)(_popover.EuiPopoverFooter, {
138
+ })))), (0, _react2.jsx)(_timezone_display.EuiTimeZoneDisplay, (0, _extends2.default)({
139
+ id: timeZomeDescriptionId
140
+ }, timeZoneDisplayProps)), (0, _react2.jsx)(_popover.EuiPopoverFooter, {
133
141
  paddingSize: "s"
134
142
  }, (0, _react2.jsx)(_form.EuiSwitch, {
135
143
  "data-test-subj": "superDatePickerRelativeDateRoundSwitch",