@elastic/eui 109.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 (356) hide show
  1. package/es/components/accessibility/skip_link/skip_link.js +10 -1
  2. package/es/components/bottom_bar/bottom_bar.js +12 -2
  3. package/es/components/button/button.js +20 -25
  4. package/es/components/button/button_display/_button_display.js +32 -30
  5. package/es/components/button/button_display/_button_display.styles.js +4 -4
  6. package/es/components/button/button_empty/button_empty.js +32 -14
  7. package/es/components/button/button_group/button_group.js +49 -31
  8. package/es/components/button/button_group/button_group_button.js +14 -2
  9. package/es/components/button/button_group/button_group_button.styles.js +12 -8
  10. package/es/components/button/button_icon/button_icon.js +30 -6
  11. package/es/components/card/card.js +20 -25
  12. package/es/components/card/card_select/card_select.js +20 -25
  13. package/es/components/code/code_block_virtualized.js +9 -7
  14. package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +13 -1
  15. package/es/components/datagrid/body/cell/data_grid_cell.js +35 -12
  16. package/es/components/datagrid/body/data_grid_body.js +23 -6
  17. package/es/components/datagrid/body/data_grid_body_custom.js +23 -6
  18. package/es/components/datagrid/body/data_grid_body_virtualized.js +23 -6
  19. package/es/components/datagrid/body/header/data_grid_header_cell.js +23 -6
  20. package/es/components/datagrid/controls/column_selector.js +36 -19
  21. package/es/components/datagrid/controls/column_sorting.js +23 -6
  22. package/es/components/datagrid/controls/data_grid_toolbar_control.js +13 -7
  23. package/es/components/datagrid/data_grid.js +5 -1
  24. package/es/components/datagrid/utils/in_memory.js +25 -7
  25. package/es/components/date_picker/auto_refresh/auto_refresh.js +11 -2
  26. package/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +31 -5
  27. package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +24 -3
  28. package/es/components/date_picker/super_date_picker/date_popover/date_popover_content.js +26 -4
  29. package/es/components/date_picker/super_date_picker/date_popover/relative_tab.js +29 -3
  30. package/es/components/date_picker/super_date_picker/date_popover/timezone_display.js +98 -0
  31. package/es/components/date_picker/super_date_picker/date_popover/timezone_display.styles.js +19 -0
  32. package/es/components/date_picker/super_date_picker/pretty_duration.js +1 -8
  33. package/es/components/date_picker/super_date_picker/relative_utils.js +8 -0
  34. package/es/components/date_picker/super_date_picker/super_date_picker.js +118 -26
  35. package/es/components/date_picker/super_date_picker/time_window_buttons.js +185 -0
  36. package/es/components/facet/facet_button.js +9 -19
  37. package/es/components/filter_group/filter_button.js +14 -1
  38. package/es/components/flyout/flyout.js +27 -10
  39. package/es/components/form/form_control_button/form_control_button.js +13 -7
  40. package/es/components/header/header_links/header_link.js +13 -7
  41. package/es/components/header/header_section/header_section_item_button.js +13 -7
  42. package/es/components/icon/assets/boxes_vertical.js +1 -1
  43. package/es/components/icon/assets/checkInCircleFilled.js +1 -2
  44. package/es/components/icon/assets/errorFilled.js +1 -2
  45. package/es/components/icon/assets/warningFilled.js +1 -2
  46. package/es/components/icon/icon_map.js +3 -6
  47. package/es/components/list_group/list_group.js +13 -1
  48. package/es/components/list_group/list_group_item.js +13 -1
  49. package/es/components/list_group/list_group_item_extra_action.js +13 -1
  50. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +15 -2
  51. package/es/components/overlay_mask/overlay_mask.styles.js +1 -1
  52. package/es/components/pagination/pagination_button.js +13 -7
  53. package/es/components/popover/popover.js +22 -16
  54. package/es/components/provider/component_defaults/component_defaults.js +22 -2
  55. package/es/components/table/table_row.styles.js +1 -1
  56. package/es/components/tool_tip/tool_tip.js +24 -24
  57. package/es/global_styling/index.js +2 -1
  58. package/es/global_styling/mixins/_button.js +1 -1
  59. package/es/global_styling/utility/selectors.js +9 -0
  60. package/es/services/focus_trap/focus_trap_pub_sub.js +74 -0
  61. package/es/services/focus_trap/index.js +9 -0
  62. package/es/services/hooks/index.js +2 -1
  63. package/es/services/hooks/useEuiDisabledElement.js +195 -0
  64. package/es/services/index.js +1 -0
  65. package/es/services/popover/reposition_on_scroll.js +61 -0
  66. package/es/test/cypress/index.d.ts +12 -0
  67. package/es/test/cypress/index.js +9 -0
  68. package/es/test/cypress/matchers.d.ts +20 -0
  69. package/es/test/cypress/matchers.js +54 -0
  70. package/es/test/cypress/test_reposition_on_scroll.js +66 -0
  71. package/es/test/enzyme/enzyme_matchers.d.ts +36 -0
  72. package/es/test/enzyme/enzyme_matchers.js +43 -0
  73. package/es/test/enzyme/index.d.ts +14 -0
  74. package/es/test/enzyme/index.js +10 -0
  75. package/es/test/rtl/index.d.ts +9 -1
  76. package/es/test/rtl/index.js +2 -1
  77. package/es/test/rtl/matchers.d.ts +36 -0
  78. package/es/test/rtl/matchers.js +82 -0
  79. package/es/utils/element_can_be_disabled.js +16 -0
  80. package/es/utils/index.js +2 -1
  81. package/eui.d.ts +588 -180
  82. package/i18ntokens.json +1357 -1231
  83. package/lib/components/accessibility/skip_link/skip_link.js +10 -1
  84. package/lib/components/bottom_bar/bottom_bar.js +11 -1
  85. package/lib/components/button/button.js +21 -26
  86. package/lib/components/button/button_display/_button_display.js +31 -29
  87. package/lib/components/button/button_display/_button_display.styles.js +4 -4
  88. package/lib/components/button/button_empty/button_empty.js +31 -13
  89. package/lib/components/button/button_group/button_group.js +49 -31
  90. package/lib/components/button/button_group/button_group_button.js +14 -2
  91. package/lib/components/button/button_group/button_group_button.styles.js +10 -6
  92. package/lib/components/button/button_icon/button_icon.js +29 -5
  93. package/lib/components/card/card.js +21 -26
  94. package/lib/components/card/card_select/card_select.js +21 -26
  95. package/lib/components/code/code_block_virtualized.js +9 -7
  96. package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +13 -1
  97. package/lib/components/datagrid/body/cell/data_grid_cell.js +35 -12
  98. package/lib/components/datagrid/body/data_grid_body.js +23 -6
  99. package/lib/components/datagrid/body/data_grid_body_custom.js +23 -6
  100. package/lib/components/datagrid/body/data_grid_body_virtualized.js +23 -6
  101. package/lib/components/datagrid/body/header/data_grid_header_cell.js +23 -6
  102. package/lib/components/datagrid/controls/column_selector.js +36 -19
  103. package/lib/components/datagrid/controls/column_sorting.js +23 -6
  104. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +13 -7
  105. package/lib/components/datagrid/data_grid.js +5 -1
  106. package/lib/components/datagrid/utils/in_memory.js +25 -7
  107. package/lib/components/date_picker/auto_refresh/auto_refresh.js +12 -3
  108. package/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +30 -4
  109. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +24 -3
  110. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_content.js +26 -4
  111. package/lib/components/date_picker/super_date_picker/date_popover/relative_tab.js +29 -3
  112. package/lib/components/date_picker/super_date_picker/date_popover/timezone_display.js +104 -0
  113. package/lib/components/date_picker/super_date_picker/date_popover/timezone_display.styles.js +25 -0
  114. package/lib/components/date_picker/super_date_picker/pretty_duration.js +2 -9
  115. package/lib/components/date_picker/super_date_picker/relative_utils.js +9 -0
  116. package/lib/components/date_picker/super_date_picker/super_date_picker.js +118 -26
  117. package/lib/components/date_picker/super_date_picker/time_window_buttons.js +193 -0
  118. package/lib/components/facet/facet_button.js +9 -19
  119. package/lib/components/filter_group/filter_button.js +14 -1
  120. package/lib/components/flyout/flyout.js +26 -9
  121. package/lib/components/form/form_control_button/form_control_button.js +13 -7
  122. package/lib/components/header/header_links/header_link.js +13 -7
  123. package/lib/components/header/header_section/header_section_item_button.js +13 -7
  124. package/lib/components/icon/assets/boxes_vertical.js +1 -1
  125. package/lib/components/icon/assets/checkInCircleFilled.js +1 -2
  126. package/lib/components/icon/assets/errorFilled.js +1 -2
  127. package/lib/components/icon/assets/warningFilled.js +1 -2
  128. package/lib/components/icon/icon_map.js +3 -6
  129. package/lib/components/icon/svgs/boxes_vertical.svg +1 -1
  130. package/lib/components/icon/svgs/checkInCircleFilled.svg +1 -1
  131. package/lib/components/icon/svgs/errorFilled.svg +1 -1
  132. package/lib/components/icon/svgs/warningFilled.svg +1 -1
  133. package/lib/components/list_group/list_group.js +13 -1
  134. package/lib/components/list_group/list_group_item.js +13 -1
  135. package/lib/components/list_group/list_group_item_extra_action.js +13 -1
  136. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +15 -2
  137. package/lib/components/overlay_mask/overlay_mask.styles.js +1 -1
  138. package/lib/components/pagination/pagination_button.js +13 -7
  139. package/lib/components/popover/popover.js +21 -15
  140. package/lib/components/provider/component_defaults/component_defaults.js +22 -2
  141. package/lib/components/table/table_row.styles.js +1 -1
  142. package/lib/components/tool_tip/tool_tip.js +24 -24
  143. package/lib/global_styling/index.js +16 -1
  144. package/lib/global_styling/mixins/_button.js +1 -1
  145. package/lib/global_styling/utility/selectors.js +15 -0
  146. package/lib/services/focus_trap/focus_trap_pub_sub.js +80 -0
  147. package/lib/services/focus_trap/index.js +12 -0
  148. package/lib/services/hooks/index.js +18 -1
  149. package/lib/services/hooks/useEuiDisabledElement.js +199 -0
  150. package/lib/services/index.js +8 -0
  151. package/lib/services/popover/reposition_on_scroll.js +67 -0
  152. package/lib/test/cypress/index.d.ts +12 -0
  153. package/lib/test/cypress/index.js +18 -0
  154. package/lib/test/cypress/matchers.d.ts +20 -0
  155. package/lib/test/cypress/matchers.js +61 -0
  156. package/lib/test/cypress/test_reposition_on_scroll.js +69 -0
  157. package/lib/test/enzyme/enzyme_matchers.d.ts +36 -0
  158. package/lib/test/enzyme/enzyme_matchers.js +49 -0
  159. package/lib/test/enzyme/index.d.ts +14 -0
  160. package/lib/test/enzyme/index.js +24 -0
  161. package/lib/test/rtl/index.d.ts +9 -1
  162. package/lib/test/rtl/index.js +24 -2
  163. package/lib/test/rtl/matchers.d.ts +36 -0
  164. package/lib/test/rtl/matchers.js +86 -0
  165. package/lib/utils/element_can_be_disabled.js +22 -0
  166. package/lib/utils/index.js +14 -1
  167. package/optimize/es/components/bottom_bar/bottom_bar.js +12 -2
  168. package/optimize/es/components/button/button_display/_button_display.js +24 -12
  169. package/optimize/es/components/button/button_display/_button_display.styles.js +4 -4
  170. package/optimize/es/components/button/button_empty/button_empty.js +18 -6
  171. package/optimize/es/components/button/button_group/button_group.js +10 -5
  172. package/optimize/es/components/button/button_group/button_group_button.js +1 -1
  173. package/optimize/es/components/button/button_group/button_group_button.styles.js +12 -8
  174. package/optimize/es/components/button/button_icon/button_icon.js +17 -5
  175. package/optimize/es/components/code/code_block_virtualized.js +9 -7
  176. package/optimize/es/components/datagrid/controls/column_selector.js +36 -19
  177. package/optimize/es/components/datagrid/data_grid.js +5 -1
  178. package/optimize/es/components/datagrid/utils/in_memory.js +2 -1
  179. package/optimize/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +12 -4
  180. package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +5 -2
  181. package/optimize/es/components/date_picker/super_date_picker/date_popover/date_popover_content.js +7 -3
  182. package/optimize/es/components/date_picker/super_date_picker/date_popover/relative_tab.js +10 -2
  183. package/optimize/es/components/date_picker/super_date_picker/date_popover/timezone_display.js +97 -0
  184. package/optimize/es/components/date_picker/super_date_picker/date_popover/timezone_display.styles.js +19 -0
  185. package/optimize/es/components/date_picker/super_date_picker/pretty_duration.js +1 -8
  186. package/optimize/es/components/date_picker/super_date_picker/relative_utils.js +8 -0
  187. package/optimize/es/components/date_picker/super_date_picker/super_date_picker.js +49 -25
  188. package/optimize/es/components/date_picker/super_date_picker/time_window_buttons.js +185 -0
  189. package/optimize/es/components/flyout/flyout.js +27 -10
  190. package/optimize/es/components/icon/assets/boxes_vertical.js +1 -1
  191. package/optimize/es/components/icon/assets/checkInCircleFilled.js +1 -2
  192. package/optimize/es/components/icon/assets/errorFilled.js +1 -2
  193. package/optimize/es/components/icon/assets/warningFilled.js +1 -2
  194. package/optimize/es/components/icon/icon_map.js +3 -6
  195. package/optimize/es/components/overlay_mask/overlay_mask.styles.js +1 -1
  196. package/optimize/es/components/popover/popover.js +22 -16
  197. package/optimize/es/components/table/table_row.styles.js +1 -1
  198. package/optimize/es/components/tool_tip/tool_tip.js +24 -24
  199. package/optimize/es/global_styling/index.js +2 -1
  200. package/optimize/es/global_styling/mixins/_button.js +1 -1
  201. package/optimize/es/global_styling/utility/selectors.js +9 -0
  202. package/optimize/es/services/focus_trap/focus_trap_pub_sub.js +74 -0
  203. package/optimize/es/services/focus_trap/index.js +9 -0
  204. package/optimize/es/services/hooks/index.js +2 -1
  205. package/optimize/es/services/hooks/useEuiDisabledElement.js +192 -0
  206. package/optimize/es/services/index.js +1 -0
  207. package/optimize/es/services/popover/reposition_on_scroll.js +61 -0
  208. package/optimize/es/test/cypress/index.d.ts +12 -0
  209. package/optimize/es/test/cypress/index.js +9 -0
  210. package/optimize/es/test/cypress/matchers.d.ts +20 -0
  211. package/optimize/es/test/cypress/matchers.js +54 -0
  212. package/optimize/es/test/cypress/test_reposition_on_scroll.js +63 -0
  213. package/optimize/es/test/enzyme/enzyme_matchers.d.ts +36 -0
  214. package/optimize/es/test/enzyme/enzyme_matchers.js +43 -0
  215. package/optimize/es/test/enzyme/index.d.ts +14 -0
  216. package/optimize/es/test/enzyme/index.js +10 -0
  217. package/optimize/es/test/rtl/index.d.ts +9 -1
  218. package/optimize/es/test/rtl/index.js +2 -1
  219. package/optimize/es/test/rtl/matchers.d.ts +36 -0
  220. package/optimize/es/test/rtl/matchers.js +82 -0
  221. package/optimize/es/utils/element_can_be_disabled.js +16 -0
  222. package/optimize/es/utils/index.js +2 -1
  223. package/optimize/lib/components/bottom_bar/bottom_bar.js +11 -1
  224. package/optimize/lib/components/button/button_display/_button_display.js +23 -11
  225. package/optimize/lib/components/button/button_display/_button_display.styles.js +4 -4
  226. package/optimize/lib/components/button/button_empty/button_empty.js +17 -5
  227. package/optimize/lib/components/button/button_group/button_group.js +10 -5
  228. package/optimize/lib/components/button/button_group/button_group_button.js +1 -1
  229. package/optimize/lib/components/button/button_group/button_group_button.styles.js +10 -6
  230. package/optimize/lib/components/button/button_icon/button_icon.js +16 -4
  231. package/optimize/lib/components/code/code_block_virtualized.js +9 -7
  232. package/optimize/lib/components/datagrid/controls/column_selector.js +36 -19
  233. package/optimize/lib/components/datagrid/data_grid.js +5 -1
  234. package/optimize/lib/components/datagrid/utils/in_memory.js +2 -1
  235. package/optimize/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +11 -3
  236. package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +5 -2
  237. package/optimize/lib/components/date_picker/super_date_picker/date_popover/date_popover_content.js +7 -3
  238. package/optimize/lib/components/date_picker/super_date_picker/date_popover/relative_tab.js +10 -2
  239. package/optimize/lib/components/date_picker/super_date_picker/date_popover/timezone_display.js +103 -0
  240. package/optimize/lib/components/date_picker/super_date_picker/date_popover/timezone_display.styles.js +25 -0
  241. package/optimize/lib/components/date_picker/super_date_picker/pretty_duration.js +2 -9
  242. package/optimize/lib/components/date_picker/super_date_picker/relative_utils.js +9 -0
  243. package/optimize/lib/components/date_picker/super_date_picker/super_date_picker.js +49 -25
  244. package/optimize/lib/components/date_picker/super_date_picker/time_window_buttons.js +193 -0
  245. package/optimize/lib/components/flyout/flyout.js +26 -9
  246. package/optimize/lib/components/icon/assets/boxes_vertical.js +1 -1
  247. package/optimize/lib/components/icon/assets/checkInCircleFilled.js +1 -2
  248. package/optimize/lib/components/icon/assets/errorFilled.js +1 -2
  249. package/optimize/lib/components/icon/assets/warningFilled.js +1 -2
  250. package/optimize/lib/components/icon/icon_map.js +3 -6
  251. package/optimize/lib/components/icon/svgs/boxes_vertical.svg +1 -1
  252. package/optimize/lib/components/icon/svgs/checkInCircleFilled.svg +1 -1
  253. package/optimize/lib/components/icon/svgs/errorFilled.svg +1 -1
  254. package/optimize/lib/components/icon/svgs/warningFilled.svg +1 -1
  255. package/optimize/lib/components/overlay_mask/overlay_mask.styles.js +1 -1
  256. package/optimize/lib/components/popover/popover.js +21 -15
  257. package/optimize/lib/components/table/table_row.styles.js +1 -1
  258. package/optimize/lib/components/tool_tip/tool_tip.js +24 -24
  259. package/optimize/lib/global_styling/index.js +16 -1
  260. package/optimize/lib/global_styling/mixins/_button.js +1 -1
  261. package/optimize/lib/global_styling/utility/selectors.js +15 -0
  262. package/optimize/lib/services/focus_trap/focus_trap_pub_sub.js +80 -0
  263. package/optimize/lib/services/focus_trap/index.js +12 -0
  264. package/optimize/lib/services/hooks/index.js +18 -1
  265. package/optimize/lib/services/hooks/useEuiDisabledElement.js +197 -0
  266. package/optimize/lib/services/index.js +8 -0
  267. package/optimize/lib/services/popover/reposition_on_scroll.js +67 -0
  268. package/optimize/lib/test/cypress/index.d.ts +12 -0
  269. package/optimize/lib/test/cypress/index.js +18 -0
  270. package/optimize/lib/test/cypress/matchers.d.ts +20 -0
  271. package/optimize/lib/test/cypress/matchers.js +61 -0
  272. package/optimize/lib/test/cypress/test_reposition_on_scroll.js +70 -0
  273. package/optimize/lib/test/enzyme/enzyme_matchers.d.ts +36 -0
  274. package/optimize/lib/test/enzyme/enzyme_matchers.js +50 -0
  275. package/optimize/lib/test/enzyme/index.d.ts +14 -0
  276. package/optimize/lib/test/enzyme/index.js +24 -0
  277. package/optimize/lib/test/rtl/index.d.ts +9 -1
  278. package/optimize/lib/test/rtl/index.js +24 -2
  279. package/optimize/lib/test/rtl/matchers.d.ts +36 -0
  280. package/optimize/lib/test/rtl/matchers.js +86 -0
  281. package/optimize/lib/utils/element_can_be_disabled.js +22 -0
  282. package/optimize/lib/utils/index.js +14 -1
  283. package/package.json +3 -2
  284. package/test-env/components/accessibility/skip_link/skip_link.js +10 -1
  285. package/test-env/components/bottom_bar/bottom_bar.js +11 -1
  286. package/test-env/components/button/button.js +21 -26
  287. package/test-env/components/button/button_display/_button_display.js +31 -29
  288. package/test-env/components/button/button_display/_button_display.styles.js +4 -4
  289. package/test-env/components/button/button_empty/button_empty.js +31 -13
  290. package/test-env/components/button/button_group/button_group.js +49 -31
  291. package/test-env/components/button/button_group/button_group_button.js +14 -2
  292. package/test-env/components/button/button_group/button_group_button.styles.js +10 -6
  293. package/test-env/components/button/button_icon/button_icon.js +29 -5
  294. package/test-env/components/card/card.js +21 -26
  295. package/test-env/components/card/card_select/card_select.js +21 -26
  296. package/test-env/components/code/code_block_virtualized.js +9 -7
  297. package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +13 -1
  298. package/test-env/components/datagrid/body/cell/data_grid_cell.js +35 -12
  299. package/test-env/components/datagrid/body/data_grid_body.js +23 -6
  300. package/test-env/components/datagrid/body/data_grid_body_custom.js +23 -6
  301. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +23 -6
  302. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +23 -6
  303. package/test-env/components/datagrid/controls/column_selector.js +36 -19
  304. package/test-env/components/datagrid/controls/column_sorting.js +23 -6
  305. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +13 -7
  306. package/test-env/components/datagrid/data_grid.js +5 -1
  307. package/test-env/components/datagrid/utils/in_memory.js +25 -7
  308. package/test-env/components/date_picker/auto_refresh/auto_refresh.js +12 -3
  309. package/test-env/components/date_picker/super_date_picker/date_popover/absolute_tab.js +30 -4
  310. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.js +24 -3
  311. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_content.js +26 -4
  312. package/test-env/components/date_picker/super_date_picker/date_popover/relative_tab.js +29 -3
  313. package/test-env/components/date_picker/super_date_picker/date_popover/timezone_display.js +103 -0
  314. package/test-env/components/date_picker/super_date_picker/date_popover/timezone_display.styles.js +25 -0
  315. package/test-env/components/date_picker/super_date_picker/pretty_duration.js +2 -9
  316. package/test-env/components/date_picker/super_date_picker/relative_utils.js +9 -0
  317. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +118 -26
  318. package/test-env/components/date_picker/super_date_picker/time_window_buttons.js +193 -0
  319. package/test-env/components/facet/facet_button.js +9 -19
  320. package/test-env/components/filter_group/filter_button.js +14 -1
  321. package/test-env/components/form/form_control_button/form_control_button.js +13 -7
  322. package/test-env/components/header/header_links/header_link.js +13 -7
  323. package/test-env/components/header/header_section/header_section_item_button.js +13 -7
  324. package/test-env/components/icon/assets/boxes_vertical.js +1 -1
  325. package/test-env/components/icon/assets/checkInCircleFilled.js +1 -2
  326. package/test-env/components/icon/assets/errorFilled.js +1 -2
  327. package/test-env/components/icon/assets/warningFilled.js +1 -2
  328. package/test-env/components/icon/icon_map.js +3 -6
  329. package/test-env/components/list_group/list_group.js +13 -1
  330. package/test-env/components/list_group/list_group_item.js +13 -1
  331. package/test-env/components/list_group/list_group_item_extra_action.js +13 -1
  332. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +15 -2
  333. package/test-env/components/overlay_mask/overlay_mask.styles.js +1 -1
  334. package/test-env/components/pagination/pagination_button.js +13 -7
  335. package/test-env/components/popover/popover.js +21 -15
  336. package/test-env/components/provider/component_defaults/component_defaults.js +22 -2
  337. package/test-env/components/table/table_row.styles.js +1 -1
  338. package/test-env/components/tool_tip/tool_tip.js +24 -24
  339. package/test-env/global_styling/index.js +16 -1
  340. package/test-env/global_styling/mixins/_button.js +1 -1
  341. package/test-env/global_styling/utility/selectors.js +15 -0
  342. package/test-env/services/focus_trap/focus_trap_pub_sub.js +80 -0
  343. package/test-env/services/focus_trap/index.js +12 -0
  344. package/test-env/services/hooks/index.js +18 -1
  345. package/test-env/services/hooks/useEuiDisabledElement.js +197 -0
  346. package/test-env/services/index.js +8 -0
  347. package/test-env/services/popover/reposition_on_scroll.js +67 -0
  348. package/test-env/test/cypress/index.js +18 -0
  349. package/test-env/test/cypress/matchers.js +61 -0
  350. package/test-env/test/cypress/test_reposition_on_scroll.js +70 -0
  351. package/test-env/test/enzyme/enzyme_matchers.js +50 -0
  352. package/test-env/test/enzyme/index.js +24 -0
  353. package/test-env/test/rtl/index.js +24 -2
  354. package/test-env/test/rtl/matchers.js +86 -0
  355. package/test-env/utils/element_can_be_disabled.js +22 -0
  356. package/test-env/utils/index.js +14 -1
@@ -103,13 +103,14 @@ var EuiDataGridInMemoryRenderer = exports.EuiDataGridInMemoryRenderer = function
103
103
  var cells = [];
104
104
  var _loop = function _loop(i) {
105
105
  cells.push(columns.map(function (column, j) {
106
+ var key = "".concat(i, "-").concat(j, "-").concat(column.id);
106
107
  var skipThisColumn = inMemory.skipColumns && inMemory.skipColumns.indexOf(column.id) !== -1;
107
108
  if (skipThisColumn) {
108
109
  return null;
109
110
  }
110
111
  var isExpandable = column.isExpandable !== undefined ? column.isExpandable : true;
111
112
  return (0, _react3.jsx)("div", {
112
- key: "".concat(i, "-").concat(column.id),
113
+ key: key,
113
114
  "data-dg-row": i,
114
115
  "data-dg-column": column.id
115
116
  }, (0, _react3.jsx)(CellElement, {
@@ -318,7 +319,6 @@ EuiDataGridInMemoryRenderer.propTypes = {
318
319
  color: _propTypes.default.any,
319
320
  "aria-label": _propTypes.default.string,
320
321
  "aria-labelledby": _propTypes.default.string,
321
- isDisabled: _propTypes.default.bool,
322
322
  /**
323
323
  * Overall size of button.
324
324
  * Matches the sizes of other EuiButtons
@@ -348,6 +348,19 @@ EuiDataGridInMemoryRenderer.propTypes = {
348
348
  className: _propTypes.default.string,
349
349
  "data-test-subj": _propTypes.default.string,
350
350
  css: _propTypes.default.any,
351
+ /**
352
+ * Controls the disabled behavior via the native `disabled` attribute.
353
+ */
354
+ isDisabled: _propTypes.default.bool,
355
+ /**
356
+ * NOTE: Beta feature, may be changed or removed in the future
357
+ *
358
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
359
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
360
+ *
361
+ * Use e.g. when a disabled button should have a tooltip.
362
+ */
363
+ hasAriaDisabled: _propTypes.default.bool,
351
364
  buttonRef: _propTypes.default.any
352
365
  }),
353
366
  /**
@@ -401,7 +414,6 @@ EuiDataGridInMemoryRenderer.propTypes = {
401
414
  color: _propTypes.default.any,
402
415
  "aria-label": _propTypes.default.string,
403
416
  "aria-labelledby": _propTypes.default.string,
404
- isDisabled: _propTypes.default.bool,
405
417
  size: _propTypes.default.any,
406
418
  iconSize: _propTypes.default.any,
407
419
  isSelected: _propTypes.default.bool,
@@ -410,6 +422,8 @@ EuiDataGridInMemoryRenderer.propTypes = {
410
422
  className: _propTypes.default.string,
411
423
  "data-test-subj": _propTypes.default.string,
412
424
  css: _propTypes.default.any,
425
+ isDisabled: _propTypes.default.bool,
426
+ hasAriaDisabled: _propTypes.default.bool,
413
427
  buttonRef: _propTypes.default.any
414
428
  }),
415
429
  onClick: _propTypes.default.func,
@@ -444,7 +458,6 @@ EuiDataGridInMemoryRenderer.propTypes = {
444
458
  color: _propTypes.default.any,
445
459
  "aria-label": _propTypes.default.string,
446
460
  "aria-labelledby": _propTypes.default.string,
447
- isDisabled: _propTypes.default.bool,
448
461
  size: _propTypes.default.any,
449
462
  iconSize: _propTypes.default.any,
450
463
  isSelected: _propTypes.default.bool,
@@ -453,6 +466,8 @@ EuiDataGridInMemoryRenderer.propTypes = {
453
466
  className: _propTypes.default.string,
454
467
  "data-test-subj": _propTypes.default.string,
455
468
  css: _propTypes.default.any,
469
+ isDisabled: _propTypes.default.bool,
470
+ hasAriaDisabled: _propTypes.default.bool,
456
471
  buttonRef: _propTypes.default.any
457
472
  }),
458
473
  onClick: _propTypes.default.func,
@@ -487,7 +502,6 @@ EuiDataGridInMemoryRenderer.propTypes = {
487
502
  color: _propTypes.default.any,
488
503
  "aria-label": _propTypes.default.string,
489
504
  "aria-labelledby": _propTypes.default.string,
490
- isDisabled: _propTypes.default.bool,
491
505
  size: _propTypes.default.any,
492
506
  iconSize: _propTypes.default.any,
493
507
  isSelected: _propTypes.default.bool,
@@ -496,6 +510,8 @@ EuiDataGridInMemoryRenderer.propTypes = {
496
510
  className: _propTypes.default.string,
497
511
  "data-test-subj": _propTypes.default.string,
498
512
  css: _propTypes.default.any,
513
+ isDisabled: _propTypes.default.bool,
514
+ hasAriaDisabled: _propTypes.default.bool,
499
515
  buttonRef: _propTypes.default.any
500
516
  }),
501
517
  onClick: _propTypes.default.func,
@@ -530,7 +546,6 @@ EuiDataGridInMemoryRenderer.propTypes = {
530
546
  color: _propTypes.default.any,
531
547
  "aria-label": _propTypes.default.string,
532
548
  "aria-labelledby": _propTypes.default.string,
533
- isDisabled: _propTypes.default.bool,
534
549
  size: _propTypes.default.any,
535
550
  iconSize: _propTypes.default.any,
536
551
  isSelected: _propTypes.default.bool,
@@ -539,6 +554,8 @@ EuiDataGridInMemoryRenderer.propTypes = {
539
554
  className: _propTypes.default.string,
540
555
  "data-test-subj": _propTypes.default.string,
541
556
  css: _propTypes.default.any,
557
+ isDisabled: _propTypes.default.bool,
558
+ hasAriaDisabled: _propTypes.default.bool,
542
559
  buttonRef: _propTypes.default.any
543
560
  }),
544
561
  onClick: _propTypes.default.func,
@@ -573,7 +590,6 @@ EuiDataGridInMemoryRenderer.propTypes = {
573
590
  color: _propTypes.default.any,
574
591
  "aria-label": _propTypes.default.string,
575
592
  "aria-labelledby": _propTypes.default.string,
576
- isDisabled: _propTypes.default.bool,
577
593
  size: _propTypes.default.any,
578
594
  iconSize: _propTypes.default.any,
579
595
  isSelected: _propTypes.default.bool,
@@ -582,6 +598,8 @@ EuiDataGridInMemoryRenderer.propTypes = {
582
598
  className: _propTypes.default.string,
583
599
  "data-test-subj": _propTypes.default.string,
584
600
  css: _propTypes.default.any,
601
+ isDisabled: _propTypes.default.bool,
602
+ hasAriaDisabled: _propTypes.default.bool,
585
603
  buttonRef: _propTypes.default.any
586
604
  }),
587
605
  onClick: _propTypes.default.func,
@@ -186,9 +186,9 @@ EuiAutoRefreshButton.propTypes = {
186
186
  intervalUnits: _propTypes.default.any,
187
187
  onRefreshChange: _propTypes.default.func.isRequired,
188
188
  /**
189
- * `disabled` is also allowed
189
+ * Controls the disabled behavior via the native `disabled` attribute.
190
190
  */
191
- isDisabled: _propTypes.default.bool,
191
+ isDisabled: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.bool])]),
192
192
  /**
193
193
  * Reduces the time unit to a single letter
194
194
  */
@@ -242,5 +242,14 @@ EuiAutoRefreshButton.propTypes = {
242
242
  className: _propTypes.default.string,
243
243
  "aria-label": _propTypes.default.string,
244
244
  "data-test-subj": _propTypes.default.string,
245
- css: _propTypes.default.any
245
+ css: _propTypes.default.any,
246
+ /**
247
+ * NOTE: Beta feature, may be changed or removed in the future
248
+ *
249
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
250
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
251
+ *
252
+ * Use e.g. when a disabled button should have a tooltip.
253
+ */
254
+ hasAriaDisabled: _propTypes.default.bool
246
255
  };
@@ -16,11 +16,13 @@ var _flex = require("../../../flex");
16
16
  var _button = require("../../../button");
17
17
  var _code = require("../../../code");
18
18
  var _date_picker = require("../../date_picker");
19
+ var _timezone_display = require("./timezone_display");
19
20
  var _absolute_tab = require("./absolute_tab.styles");
20
21
  var _react2 = require("@emotion/react");
21
22
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
23
  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); }
23
24
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
24
26
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
25
27
  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."); }
26
28
  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; } }
@@ -46,7 +48,9 @@ var EuiAbsoluteTab = exports.EuiAbsoluteTab = function EuiAbsoluteTab(_ref) {
46
48
  utcOffset = _ref.utcOffset,
47
49
  minDate = _ref.minDate,
48
50
  maxDate = _ref.maxDate,
49
- labelPrefix = _ref.labelPrefix;
51
+ labelPrefix = _ref.labelPrefix,
52
+ _ref$timeZoneDisplayP = _ref.timeZoneDisplayProps,
53
+ timeZoneDisplayProps = _ref$timeZoneDisplayP === void 0 ? {} : _ref$timeZoneDisplayP;
50
54
  var styles = (0, _services.useEuiMemoizedStyles)(_absolute_tab.euiAbsoluteTabDateFormStyles);
51
55
  var _useState = (0, _react.useState)(function () {
52
56
  var parsedValue = _datemath.default.parse(value, {
@@ -65,6 +69,7 @@ var EuiAbsoluteTab = exports.EuiAbsoluteTab = function EuiAbsoluteTab(_ref) {
65
69
  setHasUnparsedText(false);
66
70
  setIsTextInvalid(false);
67
71
  }, [dateFormat]);
72
+ var timeZomeDescriptionId = (0, _services.useGeneratedHtmlId)();
68
73
  var submitButtonLabel = (0, _i18n.useEuiI18n)('euiAbsoluteTab.dateFormatButtonLabel', 'Parse date');
69
74
  var dateFormatError = (0, _i18n.useEuiI18n)('euiAbsoluteTab.dateFormatError', 'Allowed formats: {dateFormat}, ISO 8601, RFC 2822, or Unix timestamp.', {
70
75
  dateFormat: (0, _react2.jsx)(_code.EuiCode, null, dateFormat)
@@ -155,7 +160,8 @@ var EuiAbsoluteTab = exports.EuiAbsoluteTab = function EuiAbsoluteTab(_ref) {
155
160
  css: styles.euiAbsoluteTabDateForm__row,
156
161
  isInvalid: isTextInvalid,
157
162
  error: isTextInvalid ? dateFormatError : undefined,
158
- helpText: hasUnparsedText && !isTextInvalid ? dateFormatError : undefined
163
+ helpText: hasUnparsedText && !isTextInvalid ? dateFormatError : undefined,
164
+ describedByIds: [timeZomeDescriptionId]
159
165
  }, (0, _react2.jsx)(_form.EuiFieldText, {
160
166
  compressed: true,
161
167
  isInvalid: isTextInvalid,
@@ -179,7 +185,9 @@ var EuiAbsoluteTab = exports.EuiAbsoluteTab = function EuiAbsoluteTab(_ref) {
179
185
  "aria-label": submitButtonLabel,
180
186
  title: submitButtonLabel,
181
187
  "data-test-subj": "parseAbsoluteDateFormat"
182
- })));
188
+ })), (0, _react2.jsx)(_timezone_display.EuiTimeZoneDisplay, _extends({
189
+ id: timeZomeDescriptionId
190
+ }, timeZoneDisplayProps)));
183
191
  };
184
192
  EuiAbsoluteTab.propTypes = {
185
193
  dateFormat: _propTypes.default.string.isRequired,
@@ -191,5 +199,23 @@ EuiAbsoluteTab.propTypes = {
191
199
  labelPrefix: _propTypes.default.string.isRequired,
192
200
  utcOffset: _propTypes.default.number,
193
201
  minDate: _propTypes.default.any,
194
- maxDate: _propTypes.default.any
202
+ maxDate: _propTypes.default.any,
203
+ timeZoneDisplayProps: _propTypes.default.shape({
204
+ /**
205
+ * A valid time zone name, from the IANA database, e.g. "America/Los_Angeles".
206
+ *
207
+ * @link https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
208
+ */
209
+ timeZone: _propTypes.default.string,
210
+ /**
211
+ * Render prop function to add additional content to the time zone display.
212
+ * Useful for e.g. adding links to documentation or setting pages.
213
+ */
214
+ customRender: _propTypes.default.func,
215
+ /**
216
+ * Reference date to be used while resolving the UTC offset.
217
+ * Only useful for edge cases involving daylight saving time.
218
+ */
219
+ date: _propTypes.default.any
220
+ })
195
221
  };
@@ -14,7 +14,7 @@ var _pretty_duration = require("../pretty_duration");
14
14
  var _date_popover_content = require("./date_popover_content");
15
15
  var _date_popover_button = require("./date_popover_button.styles");
16
16
  var _react2 = require("@emotion/react");
17
- var _excluded = ["position", "isDisabled", "isInvalid", "needsUpdating", "value", "buttonProps", "canRoundRelativeUnits", "roundUp", "onChange", "locale", "dateFormat", "utcOffset", "minDate", "maxDate", "timeFormat", "isOpen", "onPopoverToggle", "onPopoverClose", "compressed", "timeOptions"];
17
+ var _excluded = ["position", "isDisabled", "isInvalid", "needsUpdating", "value", "buttonProps", "canRoundRelativeUnits", "roundUp", "onChange", "locale", "dateFormat", "utcOffset", "minDate", "maxDate", "timeFormat", "isOpen", "onPopoverToggle", "onPopoverClose", "compressed", "timeOptions", "timeZoneDisplayProps"];
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
@@ -48,6 +48,8 @@ var EuiDatePopoverButton = exports.EuiDatePopoverButton = function EuiDatePopove
48
48
  onPopoverClose = props.onPopoverClose,
49
49
  compressed = props.compressed,
50
50
  timeOptions = props.timeOptions,
51
+ _props$timeZoneDispla = props.timeZoneDisplayProps,
52
+ timeZoneDisplayProps = _props$timeZoneDispla === void 0 ? {} : _props$timeZoneDispla,
51
53
  rest = _objectWithoutProperties(props, _excluded);
52
54
  var classes = (0, _classnames.default)(['euiDatePopoverButton', "euiDatePopoverButton--".concat(position), {
53
55
  'euiDatePopoverButton--compressed': compressed,
@@ -106,7 +108,8 @@ var EuiDatePopoverButton = exports.EuiDatePopoverButton = function EuiDatePopove
106
108
  utcOffset: utcOffset,
107
109
  timeOptions: timeOptions,
108
110
  minDate: minDate,
109
- maxDate: maxDate
111
+ maxDate: maxDate,
112
+ timeZoneDisplayProps: timeZoneDisplayProps
110
113
  }));
111
114
  };
112
115
  EuiDatePopoverButton.propTypes = {
@@ -149,6 +152,24 @@ EuiDatePopoverButton.propTypes = {
149
152
  label: _propTypes.default.string,
150
153
  start: _propTypes.default.oneOfType([_propTypes.default.oneOf(["now"]), _propTypes.default.string.isRequired]).isRequired
151
154
  }).isRequired).isRequired
152
- }).isRequired
155
+ }).isRequired,
156
+ timeZoneDisplayProps: _propTypes.default.shape({
157
+ /**
158
+ * A valid time zone name, from the IANA database, e.g. "America/Los_Angeles".
159
+ *
160
+ * @link https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
161
+ */
162
+ timeZone: _propTypes.default.string,
163
+ /**
164
+ * Render prop function to add additional content to the time zone display.
165
+ * Useful for e.g. adding links to documentation or setting pages.
166
+ */
167
+ customRender: _propTypes.default.func,
168
+ /**
169
+ * Reference date to be used while resolving the UTC offset.
170
+ * Only useful for edge cases involving daylight saving time.
171
+ */
172
+ date: _propTypes.default.any
173
+ })
153
174
  };
154
175
  EuiDatePopoverButton.displayName = 'EuiDatePopoverButton';
@@ -40,7 +40,9 @@ var EuiDatePopoverContent = exports.EuiDatePopoverContent = function EuiDatePopo
40
40
  utcOffset = _ref.utcOffset,
41
41
  timeOptions = _ref.timeOptions,
42
42
  minDate = _ref.minDate,
43
- maxDate = _ref.maxDate;
43
+ maxDate = _ref.maxDate,
44
+ _ref$timeZoneDisplayP = _ref.timeZoneDisplayProps,
45
+ timeZoneDisplayProps = _ref$timeZoneDisplayP === void 0 ? {} : _ref$timeZoneDisplayP;
44
46
  var styles = (0, _services.useEuiMemoizedStyles)(_date_popover_content.euiDatePopoverContentStyles);
45
47
  var onTabClick = function onTabClick(selectedTab) {
46
48
  switch (selectedTab.id) {
@@ -71,7 +73,8 @@ var EuiDatePopoverContent = exports.EuiDatePopoverContent = function EuiDatePopo
71
73
  labelPrefix: labelPrefix,
72
74
  utcOffset: utcOffset,
73
75
  minDate: minDate,
74
- maxDate: maxDate
76
+ maxDate: maxDate,
77
+ timeZoneDisplayProps: timeZoneDisplayProps
75
78
  }),
76
79
  'data-test-subj': 'superDatePickerAbsoluteTab',
77
80
  'aria-label': "".concat(labelPrefix, ": ").concat(absoluteLabel)
@@ -85,7 +88,8 @@ var EuiDatePopoverContent = exports.EuiDatePopoverContent = function EuiDatePopo
85
88
  onChange: onChange,
86
89
  roundUp: roundUp,
87
90
  labelPrefix: labelPrefix,
88
- timeOptions: timeOptions
91
+ timeOptions: timeOptions,
92
+ timeZoneDisplayProps: timeZoneDisplayProps
89
93
  }),
90
94
  'data-test-subj': 'superDatePickerRelativeTab',
91
95
  'aria-label': "".concat(labelPrefix, ": ").concat(relativeLabel)
@@ -157,6 +161,24 @@ EuiDatePopoverContent.propTypes = {
157
161
  label: _propTypes.default.string,
158
162
  start: _propTypes.default.oneOfType([_propTypes.default.oneOf(["now"]), _propTypes.default.string.isRequired]).isRequired
159
163
  }).isRequired).isRequired
160
- }).isRequired
164
+ }).isRequired,
165
+ timeZoneDisplayProps: _propTypes.default.shape({
166
+ /**
167
+ * A valid time zone name, from the IANA database, e.g. "America/Los_Angeles".
168
+ *
169
+ * @link https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
170
+ */
171
+ timeZone: _propTypes.default.string,
172
+ /**
173
+ * Render prop function to add additional content to the time zone display.
174
+ * Useful for e.g. adding links to documentation or setting pages.
175
+ */
176
+ customRender: _propTypes.default.func,
177
+ /**
178
+ * Reference date to be used while resolving the UTC offset.
179
+ * Only useful for edge cases involving daylight saving time.
180
+ */
181
+ date: _propTypes.default.any
182
+ })
161
183
  };
162
184
  EuiDatePopoverContent.displayName = 'EuiDatePopoverContent';
@@ -18,10 +18,12 @@ var _popover = require("../../../popover");
18
18
  var _spacer = require("../../../spacer");
19
19
  var _date_modes = require("../date_modes");
20
20
  var _relative_utils = require("../relative_utils");
21
+ var _timezone_display = require("./timezone_display");
21
22
  var _react2 = require("@emotion/react");
22
23
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
23
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); }
24
25
  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; }
26
+ 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); }
25
27
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
26
28
  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."); }
27
29
  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; } }
@@ -43,7 +45,9 @@ var EuiRelativeTab = exports.EuiRelativeTab = function EuiRelativeTab(_ref) {
43
45
  value = _ref.value,
44
46
  onChange = _ref.onChange,
45
47
  roundUp = _ref.roundUp,
46
- labelPrefix = _ref.labelPrefix;
48
+ labelPrefix = _ref.labelPrefix,
49
+ _ref$timeZoneDisplayP = _ref.timeZoneDisplayProps,
50
+ timeZoneDisplayProps = _ref$timeZoneDisplayP === void 0 ? {} : _ref$timeZoneDisplayP;
47
51
  var initialRelativeParts = (0, _react.useRef)((0, _relative_utils.parseRelativeParts)(value));
48
52
  var roundUnit = initialRelativeParts.current.roundUnit;
49
53
  var _useState = (0, _react.useState)(initialRelativeParts.current.unit),
@@ -91,6 +95,7 @@ var EuiRelativeTab = exports.EuiRelativeTab = function EuiRelativeTab(_ref) {
91
95
  return parsedValue.locale(locale || 'en').format(dateFormat);
92
96
  }, [isInvalid, value, roundUp, locale, dateFormat]);
93
97
  var relativeDateInputNumberDescriptionId = (0, _services.useGeneratedHtmlId)();
98
+ var timeZomeDescriptionId = (0, _services.useGeneratedHtmlId)();
94
99
  var numberAriaLabel = (0, _i18n.useEuiI18n)('euiRelativeTab.numberInputLabel', 'Time span amount');
95
100
  var numberInputError = (0, _i18n.useEuiI18n)('euiRelativeTab.numberInputError', 'Must be >= 0');
96
101
  var dateInputError = (0, _i18n.useEuiI18n)('euiRelativeTab.dateInputError', 'Must be a valid range');
@@ -124,6 +129,7 @@ var EuiRelativeTab = exports.EuiRelativeTab = function EuiRelativeTab(_ref) {
124
129
  compressed: true,
125
130
  value: formattedValue,
126
131
  readOnly: true,
132
+ "aria-describedby": timeZomeDescriptionId,
127
133
  prepend: (0, _react2.jsx)(_form.EuiFormLabel, null, labelPrefix)
128
134
  }), (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", {
129
135
  id: relativeDateInputNumberDescriptionId
@@ -133,7 +139,9 @@ var EuiRelativeTab = exports.EuiRelativeTab = function EuiRelativeTab(_ref) {
133
139
  values: {
134
140
  unit: unit
135
141
  }
136
- })))), (0, _react2.jsx)(_popover.EuiPopoverFooter, {
142
+ })))), (0, _react2.jsx)(_timezone_display.EuiTimeZoneDisplay, _extends({
143
+ id: timeZomeDescriptionId
144
+ }, timeZoneDisplayProps)), (0, _react2.jsx)(_popover.EuiPopoverFooter, {
137
145
  paddingSize: "s"
138
146
  }, (0, _react2.jsx)(_form.EuiSwitch, {
139
147
  "data-test-subj": "superDatePickerRelativeDateRoundSwitch",
@@ -163,5 +171,23 @@ EuiRelativeTab.propTypes = {
163
171
  label: _propTypes.default.string,
164
172
  start: _propTypes.default.oneOfType([_propTypes.default.oneOf(["now"]), _propTypes.default.string.isRequired]).isRequired
165
173
  }).isRequired).isRequired
166
- }).isRequired
174
+ }).isRequired,
175
+ timeZoneDisplayProps: _propTypes.default.shape({
176
+ /**
177
+ * A valid time zone name, from the IANA database, e.g. "America/Los_Angeles".
178
+ *
179
+ * @link https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
180
+ */
181
+ timeZone: _propTypes.default.string,
182
+ /**
183
+ * Render prop function to add additional content to the time zone display.
184
+ * Useful for e.g. adding links to documentation or setting pages.
185
+ */
186
+ customRender: _propTypes.default.func,
187
+ /**
188
+ * Reference date to be used while resolving the UTC offset.
189
+ * Only useful for edge cases involving daylight saving time.
190
+ */
191
+ date: _propTypes.default.any
192
+ })
167
193
  };
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EuiTimeZoneDisplay = void 0;
7
+ exports.useEuiUTCOffsetDisplay = useEuiUTCOffsetDisplay;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _timezone_display = require("./timezone_display.styles");
10
+ var _services = require("../../../../services");
11
+ var _flex = require("../../../flex");
12
+ var _icon = require("../../../icon");
13
+ var _text = require("../../../text");
14
+ var _react2 = require("@emotion/react");
15
+ var _excluded = ["timeZone", "customRender", "date"];
16
+ /*
17
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
18
+ * or more contributor license agreements. Licensed under the Elastic License
19
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
20
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
21
+ * Side Public License, v 1.
22
+ */
23
+ /**
24
+ * Available elements to render passed to the
25
+ * `customRender` render function.
26
+ */
27
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
28
+ 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); }
29
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
30
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
31
+ /**
32
+ * Display time zone information.
33
+ */
34
+ var EuiTimeZoneDisplay = exports.EuiTimeZoneDisplay = function EuiTimeZoneDisplay(_ref) {
35
+ var timeZone = _ref.timeZone,
36
+ customRender = _ref.customRender,
37
+ date = _ref.date,
38
+ rest = _objectWithoutProperties(_ref, _excluded);
39
+ var color = 'subdued';
40
+ var styles = (0, _services.useEuiMemoizedStyles)(_timezone_display.euiTimeZoneDisplayStyles);
41
+ var referenceDate = date ? date.toDate() : undefined;
42
+ var _useEuiUTCOffsetDispl = useEuiUTCOffsetDisplay(timeZone !== null && timeZone !== void 0 ? timeZone : 'Browser', referenceDate),
43
+ utc = _useEuiUTCOffsetDispl.utc,
44
+ name = _useEuiUTCOffsetDispl.name,
45
+ isInvalid = _useEuiUTCOffsetDispl.isInvalid;
46
+ if (!timeZone || isInvalid) return null;
47
+ var label = !name ? utc : "".concat(utc, " (").concat(name, ")");
48
+ var nameDisplay = (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_icon.EuiIcon, {
49
+ type: "globe",
50
+ color: color
51
+ }), (0, _react2.jsx)(_text.EuiText, {
52
+ component: "span",
53
+ color: color,
54
+ size: "s"
55
+ }, label));
56
+ return (0, _react2.jsx)(_flex.EuiFlexGroup, _extends({
57
+ css: styles.euiTimeZoneDisplay,
58
+ alignItems: "center",
59
+ gutterSize: "xs",
60
+ "data-test-subj": "euiTimeZoneDisplay",
61
+ "aria-label": label
62
+ }, rest), typeof customRender === 'function' ? customRender({
63
+ nameDisplay: nameDisplay
64
+ }) : nameDisplay);
65
+ };
66
+
67
+ /**
68
+ * Get the UTC offset display in hours e.g. "UTC+2" from time zone name.
69
+ *
70
+ * @param timeZoneName IANA time zone name
71
+ * @param [date] Reference date to get offset with Intl.DateTimeFormat
72
+ */
73
+ function useEuiUTCOffsetDisplay(timeZoneName, date) {
74
+ try {
75
+ var _formattedParts$find;
76
+ if (timeZoneName === 'UTC') {
77
+ return {
78
+ utc: 'UTC',
79
+ name: '',
80
+ isInvalid: false
81
+ };
82
+ }
83
+ var ianaName = timeZoneName === 'Browser' ? new Intl.DateTimeFormat().resolvedOptions().timeZone : timeZoneName;
84
+ var formatter = new Intl.DateTimeFormat(undefined, {
85
+ timeZone: ianaName,
86
+ timeZoneName: 'shortOffset'
87
+ });
88
+ var formattedParts = formatter.formatToParts(date !== null && date !== void 0 ? date : new Date());
89
+ var timeZoneNamePart = ((_formattedParts$find = formattedParts.find(function (part) {
90
+ return part.type === 'timeZoneName';
91
+ })) === null || _formattedParts$find === void 0 ? void 0 : _formattedParts$find.value) || '';
92
+ return {
93
+ utc: timeZoneNamePart.replace('GMT', 'UTC'),
94
+ name: ianaName,
95
+ isInvalid: false
96
+ };
97
+ } catch (err) {
98
+ return {
99
+ utc: '',
100
+ name: timeZoneName,
101
+ isInvalid: true
102
+ };
103
+ }
104
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiTimeZoneDisplayStyles = void 0;
7
+ var _react = require("@emotion/react");
8
+ var _global_styling = require("../../../../global_styling");
9
+ /*
10
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
11
+ * or more contributor license agreements. Licensed under the Elastic License
12
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
13
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
14
+ * Side Public License, v 1.
15
+ */
16
+
17
+ var euiTimeZoneDisplayStyles = exports.euiTimeZoneDisplayStyles = function euiTimeZoneDisplayStyles(euiThemeContext) {
18
+ var euiTheme = euiThemeContext.euiTheme;
19
+
20
+ // This padding should probably not be part of this component to make it really reusable
21
+
22
+ return {
23
+ euiTimeZoneDisplay: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-horizontal', euiTheme.size.s), " ", (0, _global_styling.logicalCSS)('padding-bottom', euiTheme.size.s), ";;label:euiTimeZoneDisplay;")
24
+ };
25
+ };
@@ -224,7 +224,7 @@ var usePrettyDuration = exports.usePrettyDuration = function usePrettyDuration(_
224
224
  */
225
225
  var relativeDuration = 0;
226
226
  var relativeParts = {};
227
- if (isRelativeToNow(timeFrom, timeTo)) {
227
+ if ((0, _relative_utils.isRelativeToNow)(timeFrom, timeTo)) {
228
228
  if ((0, _date_modes.getDateMode)(timeTo) === _date_modes.DATE_MODES.NOW) {
229
229
  relativeParts = (0, _relative_utils.parseRelativeParts)(timeFrom);
230
230
  } else {
@@ -281,16 +281,9 @@ var hasRangeMatch = function hasRangeMatch(timeFrom, timeTo, ranges) {
281
281
  return timeFrom === start && timeTo === end;
282
282
  });
283
283
  };
284
- var isRelativeToNow = function isRelativeToNow(timeFrom, timeTo) {
285
- var fromDateMode = (0, _date_modes.getDateMode)(timeFrom);
286
- var toDateMode = (0, _date_modes.getDateMode)(timeTo);
287
- var isLast = fromDateMode === _date_modes.DATE_MODES.RELATIVE && toDateMode === _date_modes.DATE_MODES.NOW;
288
- var isNext = fromDateMode === _date_modes.DATE_MODES.NOW && toDateMode === _date_modes.DATE_MODES.RELATIVE;
289
- return isLast || isNext;
290
- };
291
284
  var showPrettyDuration = exports.showPrettyDuration = function showPrettyDuration(timeFrom, timeTo, quickRanges) {
292
285
  if (hasRangeMatch(timeFrom, timeTo, quickRanges)) {
293
286
  return true;
294
287
  }
295
- return isRelativeToNow(timeFrom, timeTo);
288
+ return (0, _relative_utils.isRelativeToNow)(timeFrom, timeTo);
296
289
  };
@@ -3,12 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.isRelativeToNow = void 0;
6
7
  exports.parseRelativeParts = parseRelativeParts;
7
8
  exports.toRelativeStringFromParts = exports.relativeUnitsFromLargestToSmallest = void 0;
8
9
  var _datemath = _interopRequireDefault(require("@elastic/datemath"));
9
10
  var _moment = _interopRequireDefault(require("moment"));
10
11
  var _objects = require("../../../services/objects");
11
12
  var _predicate = require("../../../services/predicate");
13
+ var _date_modes = require("./date_modes");
12
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
15
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
14
16
  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; }
@@ -71,4 +73,11 @@ var toRelativeStringFromParts = exports.toRelativeStringFromParts = function toR
71
73
  var operator = matches && matches[2] ? matches[2] : '-';
72
74
  var round = isRounded ? "".concat(ROUND_DELIMETER).concat(unit) : '';
73
75
  return "now".concat(operator).concat(count).concat(unit).concat(round);
76
+ };
77
+ var isRelativeToNow = exports.isRelativeToNow = function isRelativeToNow(timeFrom, timeTo) {
78
+ var fromDateMode = (0, _date_modes.getDateMode)(timeFrom);
79
+ var toDateMode = (0, _date_modes.getDateMode)(timeTo);
80
+ var isLast = fromDateMode === _date_modes.DATE_MODES.RELATIVE && toDateMode === _date_modes.DATE_MODES.NOW;
81
+ var isNext = fromDateMode === _date_modes.DATE_MODES.NOW && toDateMode === _date_modes.DATE_MODES.RELATIVE;
82
+ return isLast || isNext;
74
83
  };