@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
@@ -375,7 +375,6 @@ EuiDataGridBodyCustomRender.propTypes = {
375
375
  color: _propTypes.default.any,
376
376
  "aria-label": _propTypes.default.string,
377
377
  "aria-labelledby": _propTypes.default.string,
378
- isDisabled: _propTypes.default.bool,
379
378
  /**
380
379
  * Overall size of button.
381
380
  * Matches the sizes of other EuiButtons
@@ -405,6 +404,19 @@ EuiDataGridBodyCustomRender.propTypes = {
405
404
  className: _propTypes.default.string,
406
405
  "data-test-subj": _propTypes.default.string,
407
406
  css: _propTypes.default.any,
407
+ /**
408
+ * Controls the disabled behavior via the native `disabled` attribute.
409
+ */
410
+ isDisabled: _propTypes.default.bool,
411
+ /**
412
+ * NOTE: Beta feature, may be changed or removed in the future
413
+ *
414
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
415
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
416
+ *
417
+ * Use e.g. when a disabled button should have a tooltip.
418
+ */
419
+ hasAriaDisabled: _propTypes.default.bool,
408
420
  buttonRef: _propTypes.default.any
409
421
  }),
410
422
  /**
@@ -458,7 +470,6 @@ EuiDataGridBodyCustomRender.propTypes = {
458
470
  color: _propTypes.default.any,
459
471
  "aria-label": _propTypes.default.string,
460
472
  "aria-labelledby": _propTypes.default.string,
461
- isDisabled: _propTypes.default.bool,
462
473
  size: _propTypes.default.any,
463
474
  iconSize: _propTypes.default.any,
464
475
  isSelected: _propTypes.default.bool,
@@ -467,6 +478,8 @@ EuiDataGridBodyCustomRender.propTypes = {
467
478
  className: _propTypes.default.string,
468
479
  "data-test-subj": _propTypes.default.string,
469
480
  css: _propTypes.default.any,
481
+ isDisabled: _propTypes.default.bool,
482
+ hasAriaDisabled: _propTypes.default.bool,
470
483
  buttonRef: _propTypes.default.any
471
484
  }),
472
485
  onClick: _propTypes.default.func,
@@ -501,7 +514,6 @@ EuiDataGridBodyCustomRender.propTypes = {
501
514
  color: _propTypes.default.any,
502
515
  "aria-label": _propTypes.default.string,
503
516
  "aria-labelledby": _propTypes.default.string,
504
- isDisabled: _propTypes.default.bool,
505
517
  size: _propTypes.default.any,
506
518
  iconSize: _propTypes.default.any,
507
519
  isSelected: _propTypes.default.bool,
@@ -510,6 +522,8 @@ EuiDataGridBodyCustomRender.propTypes = {
510
522
  className: _propTypes.default.string,
511
523
  "data-test-subj": _propTypes.default.string,
512
524
  css: _propTypes.default.any,
525
+ isDisabled: _propTypes.default.bool,
526
+ hasAriaDisabled: _propTypes.default.bool,
513
527
  buttonRef: _propTypes.default.any
514
528
  }),
515
529
  onClick: _propTypes.default.func,
@@ -544,7 +558,6 @@ EuiDataGridBodyCustomRender.propTypes = {
544
558
  color: _propTypes.default.any,
545
559
  "aria-label": _propTypes.default.string,
546
560
  "aria-labelledby": _propTypes.default.string,
547
- isDisabled: _propTypes.default.bool,
548
561
  size: _propTypes.default.any,
549
562
  iconSize: _propTypes.default.any,
550
563
  isSelected: _propTypes.default.bool,
@@ -553,6 +566,8 @@ EuiDataGridBodyCustomRender.propTypes = {
553
566
  className: _propTypes.default.string,
554
567
  "data-test-subj": _propTypes.default.string,
555
568
  css: _propTypes.default.any,
569
+ isDisabled: _propTypes.default.bool,
570
+ hasAriaDisabled: _propTypes.default.bool,
556
571
  buttonRef: _propTypes.default.any
557
572
  }),
558
573
  onClick: _propTypes.default.func,
@@ -587,7 +602,6 @@ EuiDataGridBodyCustomRender.propTypes = {
587
602
  color: _propTypes.default.any,
588
603
  "aria-label": _propTypes.default.string,
589
604
  "aria-labelledby": _propTypes.default.string,
590
- isDisabled: _propTypes.default.bool,
591
605
  size: _propTypes.default.any,
592
606
  iconSize: _propTypes.default.any,
593
607
  isSelected: _propTypes.default.bool,
@@ -596,6 +610,8 @@ EuiDataGridBodyCustomRender.propTypes = {
596
610
  className: _propTypes.default.string,
597
611
  "data-test-subj": _propTypes.default.string,
598
612
  css: _propTypes.default.any,
613
+ isDisabled: _propTypes.default.bool,
614
+ hasAriaDisabled: _propTypes.default.bool,
599
615
  buttonRef: _propTypes.default.any
600
616
  }),
601
617
  onClick: _propTypes.default.func,
@@ -630,7 +646,6 @@ EuiDataGridBodyCustomRender.propTypes = {
630
646
  color: _propTypes.default.any,
631
647
  "aria-label": _propTypes.default.string,
632
648
  "aria-labelledby": _propTypes.default.string,
633
- isDisabled: _propTypes.default.bool,
634
649
  size: _propTypes.default.any,
635
650
  iconSize: _propTypes.default.any,
636
651
  isSelected: _propTypes.default.bool,
@@ -639,6 +654,8 @@ EuiDataGridBodyCustomRender.propTypes = {
639
654
  className: _propTypes.default.string,
640
655
  "data-test-subj": _propTypes.default.string,
641
656
  css: _propTypes.default.any,
657
+ isDisabled: _propTypes.default.bool,
658
+ hasAriaDisabled: _propTypes.default.bool,
642
659
  buttonRef: _propTypes.default.any
643
660
  }),
644
661
  onClick: _propTypes.default.func,
@@ -550,7 +550,6 @@ EuiDataGridBodyVirtualized.propTypes = {
550
550
  color: _propTypes.default.any,
551
551
  "aria-label": _propTypes.default.string,
552
552
  "aria-labelledby": _propTypes.default.string,
553
- isDisabled: _propTypes.default.bool,
554
553
  /**
555
554
  * Overall size of button.
556
555
  * Matches the sizes of other EuiButtons
@@ -580,6 +579,19 @@ EuiDataGridBodyVirtualized.propTypes = {
580
579
  className: _propTypes.default.string,
581
580
  "data-test-subj": _propTypes.default.string,
582
581
  css: _propTypes.default.any,
582
+ /**
583
+ * Controls the disabled behavior via the native `disabled` attribute.
584
+ */
585
+ isDisabled: _propTypes.default.bool,
586
+ /**
587
+ * NOTE: Beta feature, may be changed or removed in the future
588
+ *
589
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
590
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
591
+ *
592
+ * Use e.g. when a disabled button should have a tooltip.
593
+ */
594
+ hasAriaDisabled: _propTypes.default.bool,
583
595
  buttonRef: _propTypes.default.any
584
596
  }),
585
597
  /**
@@ -633,7 +645,6 @@ EuiDataGridBodyVirtualized.propTypes = {
633
645
  color: _propTypes.default.any,
634
646
  "aria-label": _propTypes.default.string,
635
647
  "aria-labelledby": _propTypes.default.string,
636
- isDisabled: _propTypes.default.bool,
637
648
  size: _propTypes.default.any,
638
649
  iconSize: _propTypes.default.any,
639
650
  isSelected: _propTypes.default.bool,
@@ -642,6 +653,8 @@ EuiDataGridBodyVirtualized.propTypes = {
642
653
  className: _propTypes.default.string,
643
654
  "data-test-subj": _propTypes.default.string,
644
655
  css: _propTypes.default.any,
656
+ isDisabled: _propTypes.default.bool,
657
+ hasAriaDisabled: _propTypes.default.bool,
645
658
  buttonRef: _propTypes.default.any
646
659
  }),
647
660
  onClick: _propTypes.default.func,
@@ -676,7 +689,6 @@ EuiDataGridBodyVirtualized.propTypes = {
676
689
  color: _propTypes.default.any,
677
690
  "aria-label": _propTypes.default.string,
678
691
  "aria-labelledby": _propTypes.default.string,
679
- isDisabled: _propTypes.default.bool,
680
692
  size: _propTypes.default.any,
681
693
  iconSize: _propTypes.default.any,
682
694
  isSelected: _propTypes.default.bool,
@@ -685,6 +697,8 @@ EuiDataGridBodyVirtualized.propTypes = {
685
697
  className: _propTypes.default.string,
686
698
  "data-test-subj": _propTypes.default.string,
687
699
  css: _propTypes.default.any,
700
+ isDisabled: _propTypes.default.bool,
701
+ hasAriaDisabled: _propTypes.default.bool,
688
702
  buttonRef: _propTypes.default.any
689
703
  }),
690
704
  onClick: _propTypes.default.func,
@@ -719,7 +733,6 @@ EuiDataGridBodyVirtualized.propTypes = {
719
733
  color: _propTypes.default.any,
720
734
  "aria-label": _propTypes.default.string,
721
735
  "aria-labelledby": _propTypes.default.string,
722
- isDisabled: _propTypes.default.bool,
723
736
  size: _propTypes.default.any,
724
737
  iconSize: _propTypes.default.any,
725
738
  isSelected: _propTypes.default.bool,
@@ -728,6 +741,8 @@ EuiDataGridBodyVirtualized.propTypes = {
728
741
  className: _propTypes.default.string,
729
742
  "data-test-subj": _propTypes.default.string,
730
743
  css: _propTypes.default.any,
744
+ isDisabled: _propTypes.default.bool,
745
+ hasAriaDisabled: _propTypes.default.bool,
731
746
  buttonRef: _propTypes.default.any
732
747
  }),
733
748
  onClick: _propTypes.default.func,
@@ -762,7 +777,6 @@ EuiDataGridBodyVirtualized.propTypes = {
762
777
  color: _propTypes.default.any,
763
778
  "aria-label": _propTypes.default.string,
764
779
  "aria-labelledby": _propTypes.default.string,
765
- isDisabled: _propTypes.default.bool,
766
780
  size: _propTypes.default.any,
767
781
  iconSize: _propTypes.default.any,
768
782
  isSelected: _propTypes.default.bool,
@@ -771,6 +785,8 @@ EuiDataGridBodyVirtualized.propTypes = {
771
785
  className: _propTypes.default.string,
772
786
  "data-test-subj": _propTypes.default.string,
773
787
  css: _propTypes.default.any,
788
+ isDisabled: _propTypes.default.bool,
789
+ hasAriaDisabled: _propTypes.default.bool,
774
790
  buttonRef: _propTypes.default.any
775
791
  }),
776
792
  onClick: _propTypes.default.func,
@@ -805,7 +821,6 @@ EuiDataGridBodyVirtualized.propTypes = {
805
821
  color: _propTypes.default.any,
806
822
  "aria-label": _propTypes.default.string,
807
823
  "aria-labelledby": _propTypes.default.string,
808
- isDisabled: _propTypes.default.bool,
809
824
  size: _propTypes.default.any,
810
825
  iconSize: _propTypes.default.any,
811
826
  isSelected: _propTypes.default.bool,
@@ -814,6 +829,8 @@ EuiDataGridBodyVirtualized.propTypes = {
814
829
  className: _propTypes.default.string,
815
830
  "data-test-subj": _propTypes.default.string,
816
831
  css: _propTypes.default.any,
832
+ isDisabled: _propTypes.default.bool,
833
+ hasAriaDisabled: _propTypes.default.bool,
817
834
  buttonRef: _propTypes.default.any
818
835
  }),
819
836
  onClick: _propTypes.default.func,
@@ -255,7 +255,6 @@ EuiDataGridHeaderCell.propTypes = {
255
255
  color: _propTypes.default.any,
256
256
  "aria-label": _propTypes.default.string,
257
257
  "aria-labelledby": _propTypes.default.string,
258
- isDisabled: _propTypes.default.bool,
259
258
  /**
260
259
  * Overall size of button.
261
260
  * Matches the sizes of other EuiButtons
@@ -285,6 +284,19 @@ EuiDataGridHeaderCell.propTypes = {
285
284
  className: _propTypes.default.string,
286
285
  "data-test-subj": _propTypes.default.string,
287
286
  css: _propTypes.default.any,
287
+ /**
288
+ * Controls the disabled behavior via the native `disabled` attribute.
289
+ */
290
+ isDisabled: _propTypes.default.bool,
291
+ /**
292
+ * NOTE: Beta feature, may be changed or removed in the future
293
+ *
294
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
295
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
296
+ *
297
+ * Use e.g. when a disabled button should have a tooltip.
298
+ */
299
+ hasAriaDisabled: _propTypes.default.bool,
288
300
  buttonRef: _propTypes.default.any
289
301
  }),
290
302
  /**
@@ -338,7 +350,6 @@ EuiDataGridHeaderCell.propTypes = {
338
350
  color: _propTypes.default.any,
339
351
  "aria-label": _propTypes.default.string,
340
352
  "aria-labelledby": _propTypes.default.string,
341
- isDisabled: _propTypes.default.bool,
342
353
  size: _propTypes.default.any,
343
354
  iconSize: _propTypes.default.any,
344
355
  isSelected: _propTypes.default.bool,
@@ -347,6 +358,8 @@ EuiDataGridHeaderCell.propTypes = {
347
358
  className: _propTypes.default.string,
348
359
  "data-test-subj": _propTypes.default.string,
349
360
  css: _propTypes.default.any,
361
+ isDisabled: _propTypes.default.bool,
362
+ hasAriaDisabled: _propTypes.default.bool,
350
363
  buttonRef: _propTypes.default.any
351
364
  }),
352
365
  onClick: _propTypes.default.func,
@@ -381,7 +394,6 @@ EuiDataGridHeaderCell.propTypes = {
381
394
  color: _propTypes.default.any,
382
395
  "aria-label": _propTypes.default.string,
383
396
  "aria-labelledby": _propTypes.default.string,
384
- isDisabled: _propTypes.default.bool,
385
397
  size: _propTypes.default.any,
386
398
  iconSize: _propTypes.default.any,
387
399
  isSelected: _propTypes.default.bool,
@@ -390,6 +402,8 @@ EuiDataGridHeaderCell.propTypes = {
390
402
  className: _propTypes.default.string,
391
403
  "data-test-subj": _propTypes.default.string,
392
404
  css: _propTypes.default.any,
405
+ isDisabled: _propTypes.default.bool,
406
+ hasAriaDisabled: _propTypes.default.bool,
393
407
  buttonRef: _propTypes.default.any
394
408
  }),
395
409
  onClick: _propTypes.default.func,
@@ -424,7 +438,6 @@ EuiDataGridHeaderCell.propTypes = {
424
438
  color: _propTypes.default.any,
425
439
  "aria-label": _propTypes.default.string,
426
440
  "aria-labelledby": _propTypes.default.string,
427
- isDisabled: _propTypes.default.bool,
428
441
  size: _propTypes.default.any,
429
442
  iconSize: _propTypes.default.any,
430
443
  isSelected: _propTypes.default.bool,
@@ -433,6 +446,8 @@ EuiDataGridHeaderCell.propTypes = {
433
446
  className: _propTypes.default.string,
434
447
  "data-test-subj": _propTypes.default.string,
435
448
  css: _propTypes.default.any,
449
+ isDisabled: _propTypes.default.bool,
450
+ hasAriaDisabled: _propTypes.default.bool,
436
451
  buttonRef: _propTypes.default.any
437
452
  }),
438
453
  onClick: _propTypes.default.func,
@@ -467,7 +482,6 @@ EuiDataGridHeaderCell.propTypes = {
467
482
  color: _propTypes.default.any,
468
483
  "aria-label": _propTypes.default.string,
469
484
  "aria-labelledby": _propTypes.default.string,
470
- isDisabled: _propTypes.default.bool,
471
485
  size: _propTypes.default.any,
472
486
  iconSize: _propTypes.default.any,
473
487
  isSelected: _propTypes.default.bool,
@@ -476,6 +490,8 @@ EuiDataGridHeaderCell.propTypes = {
476
490
  className: _propTypes.default.string,
477
491
  "data-test-subj": _propTypes.default.string,
478
492
  css: _propTypes.default.any,
493
+ isDisabled: _propTypes.default.bool,
494
+ hasAriaDisabled: _propTypes.default.bool,
479
495
  buttonRef: _propTypes.default.any
480
496
  }),
481
497
  onClick: _propTypes.default.func,
@@ -510,7 +526,6 @@ EuiDataGridHeaderCell.propTypes = {
510
526
  color: _propTypes.default.any,
511
527
  "aria-label": _propTypes.default.string,
512
528
  "aria-labelledby": _propTypes.default.string,
513
- isDisabled: _propTypes.default.bool,
514
529
  size: _propTypes.default.any,
515
530
  iconSize: _propTypes.default.any,
516
531
  isSelected: _propTypes.default.bool,
@@ -519,6 +534,8 @@ EuiDataGridHeaderCell.propTypes = {
519
534
  className: _propTypes.default.string,
520
535
  "data-test-subj": _propTypes.default.string,
521
536
  css: _propTypes.default.any,
537
+ isDisabled: _propTypes.default.bool,
538
+ hasAriaDisabled: _propTypes.default.bool,
522
539
  buttonRef: _propTypes.default.any
523
540
  }),
524
541
  onClick: _propTypes.default.func,
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.useDataGridColumnSelector = void 0;
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
  var _classnames = _interopRequireDefault(require("classnames"));
@@ -45,31 +45,48 @@ var useDataGridColumnSelector = exports.useDataGridColumnSelector = function use
45
45
  var id = _ref.id;
46
46
  return id;
47
47
  });
48
- var availableSet = new Set(availableColumnIds);
49
- // Filter visibleColumns to only include existing columns
48
+ // remove duplicate columns to ensure unique columns
49
+ var availableColumnIdsSet = new Set(availableColumnIds);
50
+ if (process.env.NODE_ENV === 'development') {
51
+ if (availableColumnIds.length > availableColumnIdsSet.size) {
52
+ var duplicateIds = [];
53
+ var _iterator = _createForOfIteratorHelper(availableColumnIds),
54
+ _step;
55
+ try {
56
+ var _loop = function _loop() {
57
+ var id = _step.value;
58
+ if (!duplicateIds.includes(id) && availableColumnIds.filter(function (_id) {
59
+ return _id === id;
60
+ }).length > 1) {
61
+ duplicateIds.push(id);
62
+ }
63
+ };
64
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
65
+ _loop();
66
+ }
67
+ } catch (err) {
68
+ _iterator.e(err);
69
+ } finally {
70
+ _iterator.f();
71
+ }
72
+ console.warn("\u26A0\uFE0F EuiDataGrid: Duplicate column IDs detected and removed: ".concat(duplicateIds.join(', '), "."), '\n Column IDs must be unique. Only the first occurrence of each duplicate will be used.');
73
+ }
74
+ }
50
75
  var validVisibleColumns = visibleColumns.filter(function (id) {
51
- return availableSet.has(id);
76
+ return availableColumnIdsSet.has(id);
52
77
  });
53
78
  var visibleSet = new Set(validVisibleColumns);
54
79
  var result = [];
55
80
  var visibleIndex = 0;
56
- var _iterator = _createForOfIteratorHelper(availableColumnIds),
57
- _step;
58
- try {
59
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
60
- var columnId = _step.value;
61
- if (visibleSet.has(columnId)) {
62
- // Replace with next visible column in order
81
+ for (var _i = 0, _arr = (0, _toConsumableArray2.default)(availableColumnIdsSet); _i < _arr.length; _i++) {
82
+ var columnId = _arr[_i];
83
+ if (visibleSet.has(columnId)) {
84
+ if (visibleIndex < validVisibleColumns.length) {
63
85
  result.push(validVisibleColumns[visibleIndex++]);
64
- } else {
65
- // Keep hidden column in original position
66
- result.push(columnId);
67
86
  }
87
+ } else {
88
+ result.push(columnId);
68
89
  }
69
- } catch (err) {
70
- _iterator.e(err);
71
- } finally {
72
- _iterator.f();
73
90
  }
74
91
  return result;
75
92
  // doesn't depend on visibleColumns on purpose to keep it an initial state
@@ -134,7 +151,7 @@ var useDataGridColumnSelector = exports.useDataGridColumnSelector = function use
134
151
  anchorPosition: "downLeft",
135
152
  panelPaddingSize: "none",
136
153
  button: (0, _react2.jsx)(_data_grid_toolbar_control.EuiDataGridToolbarControl, {
137
- badgeContent: numberOfHiddenFields > 0 ? "".concat(orderedVisibleColumns.length, "/").concat(availableColumns.length) : availableColumns.length,
154
+ badgeContent: numberOfHiddenFields > 0 ? "".concat(orderedVisibleColumns.length, "/").concat(sortedColumns.length) : sortedColumns.length,
138
155
  iconType: "tableDensityNormal",
139
156
  "data-test-subj": "dataGridColumnSelectorButton",
140
157
  onClick: function onClick() {
@@ -383,7 +383,6 @@ DataGridSortingControl.propTypes = {
383
383
  color: _propTypes.default.any,
384
384
  "aria-label": _propTypes.default.string,
385
385
  "aria-labelledby": _propTypes.default.string,
386
- isDisabled: _propTypes.default.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.default.string,
414
413
  "data-test-subj": _propTypes.default.string,
415
414
  css: _propTypes.default.any,
415
+ /**
416
+ * Controls the disabled behavior via the native `disabled` attribute.
417
+ */
418
+ isDisabled: _propTypes.default.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.default.bool,
416
428
  buttonRef: _propTypes.default.any
417
429
  }),
418
430
  /**
@@ -466,7 +478,6 @@ DataGridSortingControl.propTypes = {
466
478
  color: _propTypes.default.any,
467
479
  "aria-label": _propTypes.default.string,
468
480
  "aria-labelledby": _propTypes.default.string,
469
- isDisabled: _propTypes.default.bool,
470
481
  size: _propTypes.default.any,
471
482
  iconSize: _propTypes.default.any,
472
483
  isSelected: _propTypes.default.bool,
@@ -475,6 +486,8 @@ DataGridSortingControl.propTypes = {
475
486
  className: _propTypes.default.string,
476
487
  "data-test-subj": _propTypes.default.string,
477
488
  css: _propTypes.default.any,
489
+ isDisabled: _propTypes.default.bool,
490
+ hasAriaDisabled: _propTypes.default.bool,
478
491
  buttonRef: _propTypes.default.any
479
492
  }),
480
493
  onClick: _propTypes.default.func,
@@ -509,7 +522,6 @@ DataGridSortingControl.propTypes = {
509
522
  color: _propTypes.default.any,
510
523
  "aria-label": _propTypes.default.string,
511
524
  "aria-labelledby": _propTypes.default.string,
512
- isDisabled: _propTypes.default.bool,
513
525
  size: _propTypes.default.any,
514
526
  iconSize: _propTypes.default.any,
515
527
  isSelected: _propTypes.default.bool,
@@ -518,6 +530,8 @@ DataGridSortingControl.propTypes = {
518
530
  className: _propTypes.default.string,
519
531
  "data-test-subj": _propTypes.default.string,
520
532
  css: _propTypes.default.any,
533
+ isDisabled: _propTypes.default.bool,
534
+ hasAriaDisabled: _propTypes.default.bool,
521
535
  buttonRef: _propTypes.default.any
522
536
  }),
523
537
  onClick: _propTypes.default.func,
@@ -552,7 +566,6 @@ DataGridSortingControl.propTypes = {
552
566
  color: _propTypes.default.any,
553
567
  "aria-label": _propTypes.default.string,
554
568
  "aria-labelledby": _propTypes.default.string,
555
- isDisabled: _propTypes.default.bool,
556
569
  size: _propTypes.default.any,
557
570
  iconSize: _propTypes.default.any,
558
571
  isSelected: _propTypes.default.bool,
@@ -561,6 +574,8 @@ DataGridSortingControl.propTypes = {
561
574
  className: _propTypes.default.string,
562
575
  "data-test-subj": _propTypes.default.string,
563
576
  css: _propTypes.default.any,
577
+ isDisabled: _propTypes.default.bool,
578
+ hasAriaDisabled: _propTypes.default.bool,
564
579
  buttonRef: _propTypes.default.any
565
580
  }),
566
581
  onClick: _propTypes.default.func,
@@ -595,7 +610,6 @@ DataGridSortingControl.propTypes = {
595
610
  color: _propTypes.default.any,
596
611
  "aria-label": _propTypes.default.string,
597
612
  "aria-labelledby": _propTypes.default.string,
598
- isDisabled: _propTypes.default.bool,
599
613
  size: _propTypes.default.any,
600
614
  iconSize: _propTypes.default.any,
601
615
  isSelected: _propTypes.default.bool,
@@ -604,6 +618,8 @@ DataGridSortingControl.propTypes = {
604
618
  className: _propTypes.default.string,
605
619
  "data-test-subj": _propTypes.default.string,
606
620
  css: _propTypes.default.any,
621
+ isDisabled: _propTypes.default.bool,
622
+ hasAriaDisabled: _propTypes.default.bool,
607
623
  buttonRef: _propTypes.default.any
608
624
  }),
609
625
  onClick: _propTypes.default.func,
@@ -638,7 +654,6 @@ DataGridSortingControl.propTypes = {
638
654
  color: _propTypes.default.any,
639
655
  "aria-label": _propTypes.default.string,
640
656
  "aria-labelledby": _propTypes.default.string,
641
- isDisabled: _propTypes.default.bool,
642
657
  size: _propTypes.default.any,
643
658
  iconSize: _propTypes.default.any,
644
659
  isSelected: _propTypes.default.bool,
@@ -647,6 +662,8 @@ DataGridSortingControl.propTypes = {
647
662
  className: _propTypes.default.string,
648
663
  "data-test-subj": _propTypes.default.string,
649
664
  css: _propTypes.default.any,
665
+ isDisabled: _propTypes.default.bool,
666
+ hasAriaDisabled: _propTypes.default.bool,
650
667
  buttonRef: _propTypes.default.any
651
668
  }),
652
669
  onClick: _propTypes.default.func,
@@ -77,13 +77,6 @@ EuiDataGridToolbarControl.propTypes = {
77
77
  * Ensure the text of the button sits flush to the left, right, or both sides of its container
78
78
  */
79
79
  flush: _propTypes.default.any,
80
- /**
81
- * `disabled` is also allowed
82
- */
83
- /**
84
- * `disabled` is also allowed
85
- */
86
- isDisabled: _propTypes.default.bool,
87
80
  /**
88
81
  * Force disables the button and changes the icon to a loading spinner
89
82
  */
@@ -138,10 +131,23 @@ EuiDataGridToolbarControl.propTypes = {
138
131
  "data-text": _propTypes.default.string
139
132
  }).isRequired, _propTypes.default.oneOf([false])]),
140
133
  iconSize: _propTypes.default.any,
134
+ /**
135
+ * Controls the disabled behavior via the native `disabled` attribute.
136
+ */
137
+ isDisabled: _propTypes.default.bool,
141
138
  className: _propTypes.default.string,
142
139
  "aria-label": _propTypes.default.string,
143
140
  "data-test-subj": _propTypes.default.string,
144
141
  css: _propTypes.default.any,
142
+ /**
143
+ * NOTE: Beta feature, may be changed or removed in the future
144
+ *
145
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
146
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
147
+ *
148
+ * Use e.g. when a disabled button should have a tooltip.
149
+ */
150
+ hasAriaDisabled: _propTypes.default.bool,
145
151
  badgeContent: _propTypes.default.oneOfType([_propTypes.default.number.isRequired, _propTypes.default.string.isRequired])
146
152
  };
147
153
  var betterScreenReaderSlashes = function betterScreenReaderSlashes(badgeContent) {
@@ -164,7 +164,11 @@ var EuiDataGrid = exports.EuiDataGrid = /*#__PURE__*/(0, _react.memo)( /*#__PURE
164
164
  */
165
165
  var displayValues = (0, _react.useMemo)(function () {
166
166
  return columns.reduce(function (acc, column) {
167
- return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2.default)({}, column.id, column.displayAsText || column.id));
167
+ // prevent duplicate values
168
+ if (!acc[column.id]) {
169
+ return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2.default)({}, column.id, column.displayAsText || column.id));
170
+ }
171
+ return acc;
168
172
  }, {});
169
173
  }, [columns]);
170
174
  var _useDataGridDisplaySe = (0, _controls.useDataGridDisplaySelector)((0, _controls.checkOrDefaultToolBarDisplayOptions)(toolbarVisibility, 'showDisplaySelector'), gridStyleWithDefaults, _rowHeightsOptions),