@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
@@ -383,7 +383,6 @@ DataGridSortingControl.propTypes = {
383
383
  color: PropTypes.any,
384
384
  "aria-label": PropTypes.string,
385
385
  "aria-labelledby": PropTypes.string,
386
- isDisabled: PropTypes.bool,
387
386
  /**
388
387
  * Overall size of button.
389
388
  * Matches the sizes of other EuiButtons
@@ -413,6 +412,19 @@ DataGridSortingControl.propTypes = {
413
412
  className: PropTypes.string,
414
413
  "data-test-subj": PropTypes.string,
415
414
  css: PropTypes.any,
415
+ /**
416
+ * Controls the disabled behavior via the native `disabled` attribute.
417
+ */
418
+ isDisabled: PropTypes.bool,
419
+ /**
420
+ * NOTE: Beta feature, may be changed or removed in the future
421
+ *
422
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
423
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
424
+ *
425
+ * Use e.g. when a disabled button should have a tooltip.
426
+ */
427
+ hasAriaDisabled: PropTypes.bool,
416
428
  buttonRef: PropTypes.any
417
429
  }),
418
430
  /**
@@ -466,7 +478,6 @@ DataGridSortingControl.propTypes = {
466
478
  color: PropTypes.any,
467
479
  "aria-label": PropTypes.string,
468
480
  "aria-labelledby": PropTypes.string,
469
- isDisabled: PropTypes.bool,
470
481
  size: PropTypes.any,
471
482
  iconSize: PropTypes.any,
472
483
  isSelected: PropTypes.bool,
@@ -475,6 +486,8 @@ DataGridSortingControl.propTypes = {
475
486
  className: PropTypes.string,
476
487
  "data-test-subj": PropTypes.string,
477
488
  css: PropTypes.any,
489
+ isDisabled: PropTypes.bool,
490
+ hasAriaDisabled: PropTypes.bool,
478
491
  buttonRef: PropTypes.any
479
492
  }),
480
493
  onClick: PropTypes.func,
@@ -509,7 +522,6 @@ DataGridSortingControl.propTypes = {
509
522
  color: PropTypes.any,
510
523
  "aria-label": PropTypes.string,
511
524
  "aria-labelledby": PropTypes.string,
512
- isDisabled: PropTypes.bool,
513
525
  size: PropTypes.any,
514
526
  iconSize: PropTypes.any,
515
527
  isSelected: PropTypes.bool,
@@ -518,6 +530,8 @@ DataGridSortingControl.propTypes = {
518
530
  className: PropTypes.string,
519
531
  "data-test-subj": PropTypes.string,
520
532
  css: PropTypes.any,
533
+ isDisabled: PropTypes.bool,
534
+ hasAriaDisabled: PropTypes.bool,
521
535
  buttonRef: PropTypes.any
522
536
  }),
523
537
  onClick: PropTypes.func,
@@ -552,7 +566,6 @@ DataGridSortingControl.propTypes = {
552
566
  color: PropTypes.any,
553
567
  "aria-label": PropTypes.string,
554
568
  "aria-labelledby": PropTypes.string,
555
- isDisabled: PropTypes.bool,
556
569
  size: PropTypes.any,
557
570
  iconSize: PropTypes.any,
558
571
  isSelected: PropTypes.bool,
@@ -561,6 +574,8 @@ DataGridSortingControl.propTypes = {
561
574
  className: PropTypes.string,
562
575
  "data-test-subj": PropTypes.string,
563
576
  css: PropTypes.any,
577
+ isDisabled: PropTypes.bool,
578
+ hasAriaDisabled: PropTypes.bool,
564
579
  buttonRef: PropTypes.any
565
580
  }),
566
581
  onClick: PropTypes.func,
@@ -595,7 +610,6 @@ DataGridSortingControl.propTypes = {
595
610
  color: PropTypes.any,
596
611
  "aria-label": PropTypes.string,
597
612
  "aria-labelledby": PropTypes.string,
598
- isDisabled: PropTypes.bool,
599
613
  size: PropTypes.any,
600
614
  iconSize: PropTypes.any,
601
615
  isSelected: PropTypes.bool,
@@ -604,6 +618,8 @@ DataGridSortingControl.propTypes = {
604
618
  className: PropTypes.string,
605
619
  "data-test-subj": PropTypes.string,
606
620
  css: PropTypes.any,
621
+ isDisabled: PropTypes.bool,
622
+ hasAriaDisabled: PropTypes.bool,
607
623
  buttonRef: PropTypes.any
608
624
  }),
609
625
  onClick: PropTypes.func,
@@ -638,7 +654,6 @@ DataGridSortingControl.propTypes = {
638
654
  color: PropTypes.any,
639
655
  "aria-label": PropTypes.string,
640
656
  "aria-labelledby": PropTypes.string,
641
- isDisabled: PropTypes.bool,
642
657
  size: PropTypes.any,
643
658
  iconSize: PropTypes.any,
644
659
  isSelected: PropTypes.bool,
@@ -647,6 +662,8 @@ DataGridSortingControl.propTypes = {
647
662
  className: PropTypes.string,
648
663
  "data-test-subj": PropTypes.string,
649
664
  css: PropTypes.any,
665
+ isDisabled: PropTypes.bool,
666
+ hasAriaDisabled: PropTypes.bool,
650
667
  buttonRef: PropTypes.any
651
668
  }),
652
669
  onClick: PropTypes.func,
@@ -74,13 +74,6 @@ EuiDataGridToolbarControl.propTypes = {
74
74
  * Ensure the text of the button sits flush to the left, right, or both sides of its container
75
75
  */
76
76
  flush: PropTypes.any,
77
- /**
78
- * `disabled` is also allowed
79
- */
80
- /**
81
- * `disabled` is also allowed
82
- */
83
- isDisabled: PropTypes.bool,
84
77
  /**
85
78
  * Force disables the button and changes the icon to a loading spinner
86
79
  */
@@ -135,10 +128,23 @@ EuiDataGridToolbarControl.propTypes = {
135
128
  "data-text": PropTypes.string
136
129
  }).isRequired, PropTypes.oneOf([false])]),
137
130
  iconSize: PropTypes.any,
131
+ /**
132
+ * Controls the disabled behavior via the native `disabled` attribute.
133
+ */
134
+ isDisabled: PropTypes.bool,
138
135
  className: PropTypes.string,
139
136
  "aria-label": PropTypes.string,
140
137
  "data-test-subj": PropTypes.string,
141
138
  css: PropTypes.any,
139
+ /**
140
+ * NOTE: Beta feature, may be changed or removed in the future
141
+ *
142
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
143
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
144
+ *
145
+ * Use e.g. when a disabled button should have a tooltip.
146
+ */
147
+ hasAriaDisabled: PropTypes.bool,
142
148
  badgeContent: PropTypes.oneOfType([PropTypes.number.isRequired, PropTypes.string.isRequired])
143
149
  };
144
150
  var betterScreenReaderSlashes = function betterScreenReaderSlashes(badgeContent) {
@@ -168,7 +168,11 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
168
168
  */
169
169
  var displayValues = useMemo(function () {
170
170
  return columns.reduce(function (acc, column) {
171
- return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, column.id, column.displayAsText || column.id));
171
+ // prevent duplicate values
172
+ if (!acc[column.id]) {
173
+ return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, column.id, column.displayAsText || column.id));
174
+ }
175
+ return acc;
172
176
  }, {});
173
177
  }, [columns]);
174
178
  var _useDataGridDisplaySe = useDataGridDisplaySelector(checkOrDefaultToolBarDisplayOptions(toolbarVisibility, 'showDisplaySelector'), gridStyleWithDefaults, _rowHeightsOptions),
@@ -96,13 +96,14 @@ export var EuiDataGridInMemoryRenderer = function EuiDataGridInMemoryRenderer(_r
96
96
  var cells = [];
97
97
  var _loop = function _loop(i) {
98
98
  cells.push(columns.map(function (column, j) {
99
+ var key = "".concat(i, "-").concat(j, "-").concat(column.id);
99
100
  var skipThisColumn = inMemory.skipColumns && inMemory.skipColumns.indexOf(column.id) !== -1;
100
101
  if (skipThisColumn) {
101
102
  return null;
102
103
  }
103
104
  var isExpandable = column.isExpandable !== undefined ? column.isExpandable : true;
104
105
  return ___EmotionJSX("div", {
105
- key: "".concat(i, "-").concat(column.id),
106
+ key: key,
106
107
  "data-dg-row": i,
107
108
  "data-dg-column": column.id
108
109
  }, ___EmotionJSX(CellElement, {
@@ -311,7 +312,6 @@ EuiDataGridInMemoryRenderer.propTypes = {
311
312
  color: PropTypes.any,
312
313
  "aria-label": PropTypes.string,
313
314
  "aria-labelledby": PropTypes.string,
314
- isDisabled: PropTypes.bool,
315
315
  /**
316
316
  * Overall size of button.
317
317
  * Matches the sizes of other EuiButtons
@@ -341,6 +341,19 @@ EuiDataGridInMemoryRenderer.propTypes = {
341
341
  className: PropTypes.string,
342
342
  "data-test-subj": PropTypes.string,
343
343
  css: PropTypes.any,
344
+ /**
345
+ * Controls the disabled behavior via the native `disabled` attribute.
346
+ */
347
+ isDisabled: PropTypes.bool,
348
+ /**
349
+ * NOTE: Beta feature, may be changed or removed in the future
350
+ *
351
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
352
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
353
+ *
354
+ * Use e.g. when a disabled button should have a tooltip.
355
+ */
356
+ hasAriaDisabled: PropTypes.bool,
344
357
  buttonRef: PropTypes.any
345
358
  }),
346
359
  /**
@@ -394,7 +407,6 @@ EuiDataGridInMemoryRenderer.propTypes = {
394
407
  color: PropTypes.any,
395
408
  "aria-label": PropTypes.string,
396
409
  "aria-labelledby": PropTypes.string,
397
- isDisabled: PropTypes.bool,
398
410
  size: PropTypes.any,
399
411
  iconSize: PropTypes.any,
400
412
  isSelected: PropTypes.bool,
@@ -403,6 +415,8 @@ EuiDataGridInMemoryRenderer.propTypes = {
403
415
  className: PropTypes.string,
404
416
  "data-test-subj": PropTypes.string,
405
417
  css: PropTypes.any,
418
+ isDisabled: PropTypes.bool,
419
+ hasAriaDisabled: PropTypes.bool,
406
420
  buttonRef: PropTypes.any
407
421
  }),
408
422
  onClick: PropTypes.func,
@@ -437,7 +451,6 @@ EuiDataGridInMemoryRenderer.propTypes = {
437
451
  color: PropTypes.any,
438
452
  "aria-label": PropTypes.string,
439
453
  "aria-labelledby": PropTypes.string,
440
- isDisabled: PropTypes.bool,
441
454
  size: PropTypes.any,
442
455
  iconSize: PropTypes.any,
443
456
  isSelected: PropTypes.bool,
@@ -446,6 +459,8 @@ EuiDataGridInMemoryRenderer.propTypes = {
446
459
  className: PropTypes.string,
447
460
  "data-test-subj": PropTypes.string,
448
461
  css: PropTypes.any,
462
+ isDisabled: PropTypes.bool,
463
+ hasAriaDisabled: PropTypes.bool,
449
464
  buttonRef: PropTypes.any
450
465
  }),
451
466
  onClick: PropTypes.func,
@@ -480,7 +495,6 @@ EuiDataGridInMemoryRenderer.propTypes = {
480
495
  color: PropTypes.any,
481
496
  "aria-label": PropTypes.string,
482
497
  "aria-labelledby": PropTypes.string,
483
- isDisabled: PropTypes.bool,
484
498
  size: PropTypes.any,
485
499
  iconSize: PropTypes.any,
486
500
  isSelected: PropTypes.bool,
@@ -489,6 +503,8 @@ EuiDataGridInMemoryRenderer.propTypes = {
489
503
  className: PropTypes.string,
490
504
  "data-test-subj": PropTypes.string,
491
505
  css: PropTypes.any,
506
+ isDisabled: PropTypes.bool,
507
+ hasAriaDisabled: PropTypes.bool,
492
508
  buttonRef: PropTypes.any
493
509
  }),
494
510
  onClick: PropTypes.func,
@@ -523,7 +539,6 @@ EuiDataGridInMemoryRenderer.propTypes = {
523
539
  color: PropTypes.any,
524
540
  "aria-label": PropTypes.string,
525
541
  "aria-labelledby": PropTypes.string,
526
- isDisabled: PropTypes.bool,
527
542
  size: PropTypes.any,
528
543
  iconSize: PropTypes.any,
529
544
  isSelected: PropTypes.bool,
@@ -532,6 +547,8 @@ EuiDataGridInMemoryRenderer.propTypes = {
532
547
  className: PropTypes.string,
533
548
  "data-test-subj": PropTypes.string,
534
549
  css: PropTypes.any,
550
+ isDisabled: PropTypes.bool,
551
+ hasAriaDisabled: PropTypes.bool,
535
552
  buttonRef: PropTypes.any
536
553
  }),
537
554
  onClick: PropTypes.func,
@@ -566,7 +583,6 @@ EuiDataGridInMemoryRenderer.propTypes = {
566
583
  color: PropTypes.any,
567
584
  "aria-label": PropTypes.string,
568
585
  "aria-labelledby": PropTypes.string,
569
- isDisabled: PropTypes.bool,
570
586
  size: PropTypes.any,
571
587
  iconSize: PropTypes.any,
572
588
  isSelected: PropTypes.bool,
@@ -575,6 +591,8 @@ EuiDataGridInMemoryRenderer.propTypes = {
575
591
  className: PropTypes.string,
576
592
  "data-test-subj": PropTypes.string,
577
593
  css: PropTypes.any,
594
+ isDisabled: PropTypes.bool,
595
+ hasAriaDisabled: PropTypes.bool,
578
596
  buttonRef: PropTypes.any
579
597
  }),
580
598
  onClick: PropTypes.func,
@@ -177,7 +177,7 @@ EuiAutoRefreshButton.propTypes = {
177
177
  intervalUnits: PropTypes.any,
178
178
  onRefreshChange: PropTypes.func.isRequired,
179
179
  /**
180
- * `disabled` is also allowed
180
+ * Controls the disabled behavior via the native `disabled` attribute.
181
181
  */
182
182
  isDisabled: PropTypes.bool,
183
183
  /**
@@ -233,5 +233,14 @@ EuiAutoRefreshButton.propTypes = {
233
233
  className: PropTypes.string,
234
234
  "aria-label": PropTypes.string,
235
235
  "data-test-subj": PropTypes.string,
236
- css: PropTypes.any
236
+ css: PropTypes.any,
237
+ /**
238
+ * NOTE: Beta feature, may be changed or removed in the future
239
+ *
240
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
241
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
242
+ *
243
+ * Use e.g. when a disabled button should have a tooltip.
244
+ */
245
+ hasAriaDisabled: PropTypes.bool
237
246
  };
@@ -1,3 +1,4 @@
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
1
2
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
3
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
4
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
@@ -16,13 +17,14 @@ import React, { useState, useEffect, useCallback } from 'react';
16
17
  import PropTypes from "prop-types";
17
18
  import moment from 'moment';
18
19
  import dateMath from '@elastic/datemath';
19
- import { useUpdateEffect, useEuiMemoizedStyles } from '../../../../services';
20
+ import { useUpdateEffect, useEuiMemoizedStyles, useGeneratedHtmlId } from '../../../../services';
20
21
  import { useEuiI18n } from '../../../i18n';
21
22
  import { EuiFormRow, EuiFieldText, EuiFormLabel } from '../../../form';
22
23
  import { EuiFlexGroup } from '../../../flex';
23
24
  import { EuiButtonIcon } from '../../../button';
24
25
  import { EuiCode } from '../../../code';
25
26
  import { EuiDatePicker } from '../../date_picker';
27
+ import { EuiTimeZoneDisplay } from './timezone_display';
26
28
  import { euiAbsoluteTabDateFormStyles } from './absolute_tab.styles';
27
29
 
28
30
  // Allow users to paste in and have the datepicker parse multiple common date formats,
@@ -40,7 +42,9 @@ export var EuiAbsoluteTab = function EuiAbsoluteTab(_ref) {
40
42
  utcOffset = _ref.utcOffset,
41
43
  minDate = _ref.minDate,
42
44
  maxDate = _ref.maxDate,
43
- labelPrefix = _ref.labelPrefix;
45
+ labelPrefix = _ref.labelPrefix,
46
+ _ref$timeZoneDisplayP = _ref.timeZoneDisplayProps,
47
+ timeZoneDisplayProps = _ref$timeZoneDisplayP === void 0 ? {} : _ref$timeZoneDisplayP;
44
48
  var styles = useEuiMemoizedStyles(euiAbsoluteTabDateFormStyles);
45
49
  var _useState = useState(function () {
46
50
  var parsedValue = dateMath.parse(value, {
@@ -59,6 +63,7 @@ export var EuiAbsoluteTab = function EuiAbsoluteTab(_ref) {
59
63
  setHasUnparsedText(false);
60
64
  setIsTextInvalid(false);
61
65
  }, [dateFormat]);
66
+ var timeZomeDescriptionId = useGeneratedHtmlId();
62
67
  var submitButtonLabel = useEuiI18n('euiAbsoluteTab.dateFormatButtonLabel', 'Parse date');
63
68
  var dateFormatError = useEuiI18n('euiAbsoluteTab.dateFormatError', 'Allowed formats: {dateFormat}, ISO 8601, RFC 2822, or Unix timestamp.', {
64
69
  dateFormat: ___EmotionJSX(EuiCode, null, dateFormat)
@@ -149,7 +154,8 @@ export var EuiAbsoluteTab = function EuiAbsoluteTab(_ref) {
149
154
  css: styles.euiAbsoluteTabDateForm__row,
150
155
  isInvalid: isTextInvalid,
151
156
  error: isTextInvalid ? dateFormatError : undefined,
152
- helpText: hasUnparsedText && !isTextInvalid ? dateFormatError : undefined
157
+ helpText: hasUnparsedText && !isTextInvalid ? dateFormatError : undefined,
158
+ describedByIds: [timeZomeDescriptionId]
153
159
  }, ___EmotionJSX(EuiFieldText, {
154
160
  compressed: true,
155
161
  isInvalid: isTextInvalid,
@@ -173,7 +179,9 @@ export var EuiAbsoluteTab = function EuiAbsoluteTab(_ref) {
173
179
  "aria-label": submitButtonLabel,
174
180
  title: submitButtonLabel,
175
181
  "data-test-subj": "parseAbsoluteDateFormat"
176
- })));
182
+ })), ___EmotionJSX(EuiTimeZoneDisplay, _extends({
183
+ id: timeZomeDescriptionId
184
+ }, timeZoneDisplayProps)));
177
185
  };
178
186
  EuiAbsoluteTab.propTypes = {
179
187
  dateFormat: PropTypes.string.isRequired,
@@ -185,5 +193,23 @@ EuiAbsoluteTab.propTypes = {
185
193
  labelPrefix: PropTypes.string.isRequired,
186
194
  utcOffset: PropTypes.number,
187
195
  minDate: PropTypes.any,
188
- maxDate: PropTypes.any
196
+ maxDate: PropTypes.any,
197
+ timeZoneDisplayProps: PropTypes.shape({
198
+ /**
199
+ * A valid time zone name, from the IANA database, e.g. "America/Los_Angeles".
200
+ *
201
+ * @link https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
202
+ */
203
+ timeZone: PropTypes.string,
204
+ /**
205
+ * Render prop function to add additional content to the time zone display.
206
+ * Useful for e.g. adding links to documentation or setting pages.
207
+ */
208
+ customRender: PropTypes.func,
209
+ /**
210
+ * Reference date to be used while resolving the UTC offset.
211
+ * Only useful for edge cases involving daylight saving time.
212
+ */
213
+ date: PropTypes.any
214
+ })
189
215
  };
@@ -1,4 +1,4 @@
1
- var _excluded = ["position", "isDisabled", "isInvalid", "needsUpdating", "value", "buttonProps", "canRoundRelativeUnits", "roundUp", "onChange", "locale", "dateFormat", "utcOffset", "minDate", "maxDate", "timeFormat", "isOpen", "onPopoverToggle", "onPopoverClose", "compressed", "timeOptions"];
1
+ var _excluded = ["position", "isDisabled", "isInvalid", "needsUpdating", "value", "buttonProps", "canRoundRelativeUnits", "roundUp", "onChange", "locale", "dateFormat", "utcOffset", "minDate", "maxDate", "timeFormat", "isOpen", "onPopoverToggle", "onPopoverClose", "compressed", "timeOptions", "timeZoneDisplayProps"];
2
2
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3
3
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
4
4
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
@@ -43,6 +43,8 @@ export var EuiDatePopoverButton = function EuiDatePopoverButton(props) {
43
43
  onPopoverClose = props.onPopoverClose,
44
44
  compressed = props.compressed,
45
45
  timeOptions = props.timeOptions,
46
+ _props$timeZoneDispla = props.timeZoneDisplayProps,
47
+ timeZoneDisplayProps = _props$timeZoneDispla === void 0 ? {} : _props$timeZoneDispla,
46
48
  rest = _objectWithoutProperties(props, _excluded);
47
49
  var classes = classNames(['euiDatePopoverButton', "euiDatePopoverButton--".concat(position), {
48
50
  'euiDatePopoverButton--compressed': compressed,
@@ -101,7 +103,8 @@ export var EuiDatePopoverButton = function EuiDatePopoverButton(props) {
101
103
  utcOffset: utcOffset,
102
104
  timeOptions: timeOptions,
103
105
  minDate: minDate,
104
- maxDate: maxDate
106
+ maxDate: maxDate,
107
+ timeZoneDisplayProps: timeZoneDisplayProps
105
108
  }));
106
109
  };
107
110
  EuiDatePopoverButton.propTypes = {
@@ -144,6 +147,24 @@ EuiDatePopoverButton.propTypes = {
144
147
  label: PropTypes.string,
145
148
  start: PropTypes.oneOfType([PropTypes.oneOf(["now"]), PropTypes.string.isRequired]).isRequired
146
149
  }).isRequired).isRequired
147
- }).isRequired
150
+ }).isRequired,
151
+ timeZoneDisplayProps: PropTypes.shape({
152
+ /**
153
+ * A valid time zone name, from the IANA database, e.g. "America/Los_Angeles".
154
+ *
155
+ * @link https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
156
+ */
157
+ timeZone: PropTypes.string,
158
+ /**
159
+ * Render prop function to add additional content to the time zone display.
160
+ * Useful for e.g. adding links to documentation or setting pages.
161
+ */
162
+ customRender: PropTypes.func,
163
+ /**
164
+ * Reference date to be used while resolving the UTC offset.
165
+ * Only useful for edge cases involving daylight saving time.
166
+ */
167
+ date: PropTypes.any
168
+ })
148
169
  };
149
170
  EuiDatePopoverButton.displayName = 'EuiDatePopoverButton';
@@ -33,7 +33,9 @@ export var EuiDatePopoverContent = function EuiDatePopoverContent(_ref) {
33
33
  utcOffset = _ref.utcOffset,
34
34
  timeOptions = _ref.timeOptions,
35
35
  minDate = _ref.minDate,
36
- maxDate = _ref.maxDate;
36
+ maxDate = _ref.maxDate,
37
+ _ref$timeZoneDisplayP = _ref.timeZoneDisplayProps,
38
+ timeZoneDisplayProps = _ref$timeZoneDisplayP === void 0 ? {} : _ref$timeZoneDisplayP;
37
39
  var styles = useEuiMemoizedStyles(euiDatePopoverContentStyles);
38
40
  var onTabClick = function onTabClick(selectedTab) {
39
41
  switch (selectedTab.id) {
@@ -64,7 +66,8 @@ export var EuiDatePopoverContent = function EuiDatePopoverContent(_ref) {
64
66
  labelPrefix: labelPrefix,
65
67
  utcOffset: utcOffset,
66
68
  minDate: minDate,
67
- maxDate: maxDate
69
+ maxDate: maxDate,
70
+ timeZoneDisplayProps: timeZoneDisplayProps
68
71
  }),
69
72
  'data-test-subj': 'superDatePickerAbsoluteTab',
70
73
  'aria-label': "".concat(labelPrefix, ": ").concat(absoluteLabel)
@@ -78,7 +81,8 @@ export var EuiDatePopoverContent = function EuiDatePopoverContent(_ref) {
78
81
  onChange: onChange,
79
82
  roundUp: roundUp,
80
83
  labelPrefix: labelPrefix,
81
- timeOptions: timeOptions
84
+ timeOptions: timeOptions,
85
+ timeZoneDisplayProps: timeZoneDisplayProps
82
86
  }),
83
87
  'data-test-subj': 'superDatePickerRelativeTab',
84
88
  'aria-label': "".concat(labelPrefix, ": ").concat(relativeLabel)
@@ -150,6 +154,24 @@ EuiDatePopoverContent.propTypes = {
150
154
  label: PropTypes.string,
151
155
  start: PropTypes.oneOfType([PropTypes.oneOf(["now"]), PropTypes.string.isRequired]).isRequired
152
156
  }).isRequired).isRequired
153
- }).isRequired
157
+ }).isRequired,
158
+ timeZoneDisplayProps: PropTypes.shape({
159
+ /**
160
+ * A valid time zone name, from the IANA database, e.g. "America/Los_Angeles".
161
+ *
162
+ * @link https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
163
+ */
164
+ timeZone: PropTypes.string,
165
+ /**
166
+ * Render prop function to add additional content to the time zone display.
167
+ * Useful for e.g. adding links to documentation or setting pages.
168
+ */
169
+ customRender: PropTypes.func,
170
+ /**
171
+ * Reference date to be used while resolving the UTC offset.
172
+ * Only useful for edge cases involving daylight saving time.
173
+ */
174
+ date: PropTypes.any
175
+ })
154
176
  };
155
177
  EuiDatePopoverContent.displayName = 'EuiDatePopoverContent';
@@ -1,3 +1,4 @@
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
1
2
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
3
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
4
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
@@ -25,6 +26,7 @@ import { EuiPopoverFooter } from '../../../popover';
25
26
  import { EuiSpacer } from '../../../spacer';
26
27
  import { INVALID_DATE } from '../date_modes';
27
28
  import { parseRelativeParts, toRelativeStringFromParts } from '../relative_utils';
29
+ import { EuiTimeZoneDisplay } from './timezone_display';
28
30
  import { jsx as ___EmotionJSX } from "@emotion/react";
29
31
  export var EuiRelativeTab = function EuiRelativeTab(_ref) {
30
32
  var _ref$timeOptions = _ref.timeOptions,
@@ -35,7 +37,9 @@ export var EuiRelativeTab = function EuiRelativeTab(_ref) {
35
37
  value = _ref.value,
36
38
  onChange = _ref.onChange,
37
39
  roundUp = _ref.roundUp,
38
- labelPrefix = _ref.labelPrefix;
40
+ labelPrefix = _ref.labelPrefix,
41
+ _ref$timeZoneDisplayP = _ref.timeZoneDisplayProps,
42
+ timeZoneDisplayProps = _ref$timeZoneDisplayP === void 0 ? {} : _ref$timeZoneDisplayP;
39
43
  var initialRelativeParts = useRef(parseRelativeParts(value));
40
44
  var roundUnit = initialRelativeParts.current.roundUnit;
41
45
  var _useState = useState(initialRelativeParts.current.unit),
@@ -83,6 +87,7 @@ export var EuiRelativeTab = function EuiRelativeTab(_ref) {
83
87
  return parsedValue.locale(locale || 'en').format(dateFormat);
84
88
  }, [isInvalid, value, roundUp, locale, dateFormat]);
85
89
  var relativeDateInputNumberDescriptionId = useGeneratedHtmlId();
90
+ var timeZomeDescriptionId = useGeneratedHtmlId();
86
91
  var numberAriaLabel = useEuiI18n('euiRelativeTab.numberInputLabel', 'Time span amount');
87
92
  var numberInputError = useEuiI18n('euiRelativeTab.numberInputError', 'Must be >= 0');
88
93
  var dateInputError = useEuiI18n('euiRelativeTab.dateInputError', 'Must be a valid range');
@@ -116,6 +121,7 @@ export var EuiRelativeTab = function EuiRelativeTab(_ref) {
116
121
  compressed: true,
117
122
  value: formattedValue,
118
123
  readOnly: true,
124
+ "aria-describedby": timeZomeDescriptionId,
119
125
  prepend: ___EmotionJSX(EuiFormLabel, null, labelPrefix)
120
126
  }), ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("p", {
121
127
  id: relativeDateInputNumberDescriptionId
@@ -125,7 +131,9 @@ export var EuiRelativeTab = function EuiRelativeTab(_ref) {
125
131
  values: {
126
132
  unit: unit
127
133
  }
128
- })))), ___EmotionJSX(EuiPopoverFooter, {
134
+ })))), ___EmotionJSX(EuiTimeZoneDisplay, _extends({
135
+ id: timeZomeDescriptionId
136
+ }, timeZoneDisplayProps)), ___EmotionJSX(EuiPopoverFooter, {
129
137
  paddingSize: "s"
130
138
  }, ___EmotionJSX(EuiSwitch, {
131
139
  "data-test-subj": "superDatePickerRelativeDateRoundSwitch",
@@ -155,5 +163,23 @@ EuiRelativeTab.propTypes = {
155
163
  label: PropTypes.string,
156
164
  start: PropTypes.oneOfType([PropTypes.oneOf(["now"]), PropTypes.string.isRequired]).isRequired
157
165
  }).isRequired).isRequired
158
- }).isRequired
166
+ }).isRequired,
167
+ timeZoneDisplayProps: PropTypes.shape({
168
+ /**
169
+ * A valid time zone name, from the IANA database, e.g. "America/Los_Angeles".
170
+ *
171
+ * @link https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
172
+ */
173
+ timeZone: PropTypes.string,
174
+ /**
175
+ * Render prop function to add additional content to the time zone display.
176
+ * Useful for e.g. adding links to documentation or setting pages.
177
+ */
178
+ customRender: PropTypes.func,
179
+ /**
180
+ * Reference date to be used while resolving the UTC offset.
181
+ * Only useful for edge cases involving daylight saving time.
182
+ */
183
+ date: PropTypes.any
184
+ })
159
185
  };