@elastic/eui 90.0.0 → 91.1.0

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 (552) hide show
  1. package/dist/eui_charts_theme.js +1 -15
  2. package/dist/eui_charts_theme.js.map +1 -1
  3. package/dist/eui_theme_dark.css +302 -203
  4. package/dist/eui_theme_dark.min.css +1 -1
  5. package/dist/eui_theme_light.css +302 -203
  6. package/dist/eui_theme_light.min.css +1 -1
  7. package/es/components/accordion/accordion.a11y.js +1 -3
  8. package/es/components/accordion/accordion.js +13 -2
  9. package/es/components/accordion/accordion_children/accordion_children.js +4 -3
  10. package/es/components/basic_table/action_types.js +5 -0
  11. package/es/components/basic_table/basic_table.a11y.js +1 -2
  12. package/es/components/basic_table/basic_table.js +8 -8
  13. package/es/components/basic_table/collapsed_item_actions.js +120 -249
  14. package/es/components/basic_table/custom_item_action.js +9 -95
  15. package/es/components/basic_table/default_item_action.js +23 -14
  16. package/es/components/basic_table/in_memory_table.a11y.js +13 -11
  17. package/es/components/basic_table/in_memory_table.js +8 -8
  18. package/es/components/breadcrumbs/breadcrumb.js +16 -12
  19. package/es/components/breadcrumbs/breadcrumb.styles.js +5 -0
  20. package/es/components/breadcrumbs/breadcrumbs.js +5 -5
  21. package/es/components/button/button_display/_button_display.js +6 -4
  22. package/es/components/button/button_display/_button_display_content.js +8 -4
  23. package/es/components/button/button_empty/button_empty.js +9 -7
  24. package/es/components/button/button_group/button_group.js +13 -13
  25. package/es/components/button/button_group/button_group_button.js +13 -54
  26. package/es/components/button/button_group/button_group_button.styles.js +2 -12
  27. package/es/components/card/card.a11y.js +5 -18
  28. package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +8 -0
  29. package/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +2 -2
  30. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  31. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  32. package/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +9 -104
  33. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +20 -58
  34. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +89 -37
  35. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +67 -81
  36. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +1 -19
  37. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +7 -102
  38. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  39. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +11 -90
  40. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +150 -130
  41. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +0 -10
  42. package/es/components/combo_box/combo_box.js +8 -6
  43. package/es/components/combo_box/combo_box_input/combo_box_input.js +107 -65
  44. package/es/components/combo_box/combo_box_input/combo_box_pill.js +8 -18
  45. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +6 -6
  46. package/es/components/combo_box/utils.js +23 -0
  47. package/es/components/context_menu/context_menu_item.js +16 -8
  48. package/es/components/context_menu/context_menu_item.styles.js +1 -1
  49. package/es/components/control_bar/control_bar.js +5 -5
  50. package/es/components/datagrid/body/data_grid_body.js +16 -6
  51. package/es/components/datagrid/body/data_grid_body_custom.js +16 -6
  52. package/es/components/datagrid/body/data_grid_body_virtualized.js +16 -6
  53. package/es/components/datagrid/body/data_grid_cell.js +67 -44
  54. package/es/components/datagrid/body/data_grid_cell_actions.js +12 -12
  55. package/es/components/datagrid/body/data_grid_cell_popover.js +43 -10
  56. package/es/components/datagrid/body/header/data_grid_header_cell.js +66 -35
  57. package/es/components/datagrid/body/header/data_grid_header_row.js +16 -6
  58. package/es/components/datagrid/controls/column_selector.js +24 -45
  59. package/es/components/datagrid/controls/column_sorting.js +23 -37
  60. package/es/components/datagrid/controls/data_grid_toolbar_control.js +154 -0
  61. package/es/components/datagrid/controls/display_selector.js +21 -17
  62. package/es/components/datagrid/controls/fullscreen_selector.js +2 -6
  63. package/es/components/datagrid/controls/index.js +2 -1
  64. package/es/components/datagrid/data_grid.js +3 -864
  65. package/es/components/datagrid/index.js +1 -1
  66. package/es/components/datagrid/utils/in_memory.js +16 -6
  67. package/es/components/datagrid/utils/row_heights.js +1 -1
  68. package/es/components/date_picker/auto_refresh/auto_refresh.js +6 -4
  69. package/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +92 -26
  70. package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +1 -1
  71. package/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +1 -2
  72. package/es/components/date_picker/super_date_picker/super_date_picker.js +19 -0
  73. package/es/components/date_picker/super_date_picker/super_update_button.js +1 -1
  74. package/es/components/error_boundary/error_boundary.a11y.js +1 -1
  75. package/es/components/expression/expression.a11y.js +2 -4
  76. package/es/components/facet/facet_button.js +6 -4
  77. package/es/components/filter_group/filter_button.js +2 -2
  78. package/es/components/filter_group/filter_group.styles.js +1 -1
  79. package/es/components/focus_trap/focus_trap.a11y.js +3 -3
  80. package/es/components/form/range/range.a11y.js +5 -10
  81. package/es/components/form/super_select/super_select.js +3 -2
  82. package/es/components/form/super_select/super_select_control.js +13 -20
  83. package/es/components/header/header.a11y.js +1 -1
  84. package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +5 -5
  85. package/es/components/header/header_links/header_link.js +7 -5
  86. package/es/components/header/header_links/header_links.js +5 -5
  87. package/es/components/header/header_section/header_section_item_button.js +7 -5
  88. package/es/components/i18n/i18n.js +1 -0
  89. package/es/components/image/image.a11y.js +1 -2
  90. package/es/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  91. package/es/components/link/external_link_icon.js +51 -0
  92. package/es/components/link/link.js +6 -20
  93. package/es/components/link/link.styles.js +2 -5
  94. package/es/components/list_group/list_group.js +6 -1
  95. package/es/components/list_group/list_group_item.js +14 -4
  96. package/es/components/list_group/list_group_item.styles.js +2 -1
  97. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +12 -2
  98. package/es/components/notification/notification_event.a11y.js +1 -2
  99. package/es/components/notification/notification_event.js +7 -5
  100. package/es/components/page/page_header/page_header_content.js +5 -5
  101. package/es/components/pagination/pagination_button.js +7 -5
  102. package/es/components/popover/input_popover.js +1 -1
  103. package/es/components/popover/popover.js +19 -28
  104. package/es/components/popover/popover_arrow/_popover_arrow.styles.js +2 -4
  105. package/es/components/popover/popover_panel/_popover_panel.js +2 -6
  106. package/es/components/popover/popover_panel/_popover_panel.styles.js +6 -1
  107. package/es/components/resizable_container/resizable_container.a11y.js +4 -8
  108. package/es/components/search_bar/search_bar.a11y.js +3 -6
  109. package/es/components/selectable/selectable.js +16 -1
  110. package/es/components/selectable/selectable_list/selectable_list.js +227 -78
  111. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +29 -12
  112. package/es/components/text/text.styles.js +2 -2
  113. package/es/components/text_truncate/text_truncate.js +33 -10
  114. package/es/components/toast/global_toast_list.js +11 -1
  115. package/es/components/tour/tour_step.js +5 -5
  116. package/es/global_styling/mixins/_states.js +4 -1
  117. package/es/services/color/eui_palettes.js +0 -6
  118. package/es/services/color/index.js +1 -1
  119. package/es/services/hooks/useCombinedRefs.js +16 -9
  120. package/es/services/index.js +1 -2
  121. package/es/test/rtl/component_helpers.d.ts +2 -0
  122. package/es/test/rtl/component_helpers.js +40 -1
  123. package/eui.d.ts +562 -218
  124. package/i18ntokens.json +329 -347
  125. package/lib/components/accordion/accordion.a11y.js +1 -3
  126. package/lib/components/accordion/accordion.js +13 -2
  127. package/lib/components/accordion/accordion_children/accordion_children.js +4 -3
  128. package/lib/components/basic_table/action_types.js +8 -2
  129. package/lib/components/basic_table/basic_table.a11y.js +1 -2
  130. package/lib/components/basic_table/basic_table.js +8 -8
  131. package/lib/components/basic_table/collapsed_item_actions.js +128 -257
  132. package/lib/components/basic_table/custom_item_action.js +18 -104
  133. package/lib/components/basic_table/default_item_action.js +23 -14
  134. package/lib/components/basic_table/in_memory_table.a11y.js +13 -11
  135. package/lib/components/basic_table/in_memory_table.js +8 -8
  136. package/lib/components/breadcrumbs/breadcrumb.js +16 -12
  137. package/lib/components/breadcrumbs/breadcrumb.styles.js +5 -0
  138. package/lib/components/button/button_display/_button_display.js +6 -4
  139. package/lib/components/button/button_display/_button_display_content.js +8 -4
  140. package/lib/components/button/button_empty/button_empty.js +9 -7
  141. package/lib/components/button/button_group/button_group.js +12 -12
  142. package/lib/components/button/button_group/button_group_button.js +13 -54
  143. package/lib/components/button/button_group/button_group_button.styles.js +2 -12
  144. package/lib/components/card/card.a11y.js +5 -18
  145. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +8 -0
  146. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +1 -1
  147. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  148. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  149. package/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +8 -103
  150. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +20 -58
  151. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +89 -37
  152. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +66 -80
  153. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +11 -28
  154. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +7 -104
  155. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  156. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +10 -89
  157. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +150 -130
  158. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +0 -10
  159. package/lib/components/combo_box/combo_box.js +8 -6
  160. package/lib/components/combo_box/combo_box_input/combo_box_input.js +107 -65
  161. package/lib/components/combo_box/combo_box_input/combo_box_pill.js +8 -18
  162. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +6 -6
  163. package/lib/components/combo_box/utils.js +31 -0
  164. package/lib/components/context_menu/context_menu_item.js +16 -8
  165. package/lib/components/context_menu/context_menu_item.styles.js +1 -1
  166. package/lib/components/datagrid/body/data_grid_body.js +16 -6
  167. package/lib/components/datagrid/body/data_grid_body_custom.js +16 -6
  168. package/lib/components/datagrid/body/data_grid_body_virtualized.js +16 -6
  169. package/lib/components/datagrid/body/data_grid_cell.js +67 -44
  170. package/lib/components/datagrid/body/data_grid_cell_actions.js +12 -13
  171. package/lib/components/datagrid/body/data_grid_cell_popover.js +43 -10
  172. package/lib/components/datagrid/body/header/data_grid_header_cell.js +66 -35
  173. package/lib/components/datagrid/body/header/data_grid_header_row.js +16 -6
  174. package/lib/components/datagrid/controls/column_selector.js +24 -45
  175. package/lib/components/datagrid/controls/column_sorting.js +22 -37
  176. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +159 -0
  177. package/lib/components/datagrid/controls/display_selector.js +21 -17
  178. package/lib/components/datagrid/controls/fullscreen_selector.js +2 -7
  179. package/lib/components/datagrid/controls/index.js +8 -1
  180. package/lib/components/datagrid/data_grid.js +2 -863
  181. package/lib/components/datagrid/index.js +8 -1
  182. package/lib/components/datagrid/utils/in_memory.js +16 -6
  183. package/lib/components/datagrid/utils/row_heights.js +1 -1
  184. package/lib/components/date_picker/auto_refresh/auto_refresh.js +6 -4
  185. package/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +91 -26
  186. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +1 -1
  187. package/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +1 -2
  188. package/lib/components/date_picker/super_date_picker/super_date_picker.js +19 -0
  189. package/lib/components/date_picker/super_date_picker/super_update_button.js +1 -1
  190. package/lib/components/error_boundary/error_boundary.a11y.js +1 -1
  191. package/lib/components/expression/expression.a11y.js +2 -4
  192. package/lib/components/facet/facet_button.js +6 -4
  193. package/lib/components/filter_group/filter_button.js +2 -2
  194. package/lib/components/filter_group/filter_group.styles.js +1 -1
  195. package/lib/components/focus_trap/focus_trap.a11y.js +3 -3
  196. package/lib/components/form/range/range.a11y.js +5 -10
  197. package/lib/components/form/super_select/super_select.js +3 -2
  198. package/lib/components/form/super_select/super_select_control.js +12 -19
  199. package/lib/components/header/header.a11y.js +1 -1
  200. package/lib/components/header/header_links/header_link.js +7 -5
  201. package/lib/components/header/header_section/header_section_item_button.js +7 -5
  202. package/lib/components/i18n/i18n.js +1 -0
  203. package/lib/components/image/image.a11y.js +1 -2
  204. package/lib/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  205. package/lib/components/link/external_link_icon.js +57 -0
  206. package/lib/components/link/link.js +6 -20
  207. package/lib/components/link/link.styles.js +1 -4
  208. package/lib/components/list_group/list_group.js +6 -1
  209. package/lib/components/list_group/list_group_item.js +14 -4
  210. package/lib/components/list_group/list_group_item.styles.js +2 -1
  211. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +12 -2
  212. package/lib/components/notification/notification_event.a11y.js +1 -2
  213. package/lib/components/notification/notification_event.js +7 -5
  214. package/lib/components/popover/input_popover.js +1 -1
  215. package/lib/components/popover/popover.js +33 -36
  216. package/lib/components/popover/popover_arrow/_popover_arrow.styles.js +1 -3
  217. package/lib/components/popover/popover_panel/_popover_panel.js +2 -1
  218. package/lib/components/popover/popover_panel/_popover_panel.styles.js +6 -1
  219. package/lib/components/resizable_container/resizable_container.a11y.js +4 -8
  220. package/lib/components/search_bar/search_bar.a11y.js +3 -6
  221. package/lib/components/selectable/selectable.js +16 -1
  222. package/lib/components/selectable/selectable_list/selectable_list.js +227 -78
  223. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +28 -11
  224. package/lib/components/text/text.styles.js +2 -2
  225. package/lib/components/text_truncate/text_truncate.js +32 -9
  226. package/lib/components/toast/global_toast_list.js +11 -1
  227. package/lib/global_styling/mixins/_states.js +4 -1
  228. package/lib/services/color/eui_palettes.js +1 -8
  229. package/lib/services/color/index.js +0 -7
  230. package/lib/services/hooks/useCombinedRefs.js +19 -10
  231. package/lib/services/index.js +0 -15
  232. package/lib/test/rtl/component_helpers.d.ts +2 -0
  233. package/lib/test/rtl/component_helpers.js +41 -3
  234. package/optimize/es/components/accordion/accordion.a11y.js +1 -3
  235. package/optimize/es/components/accordion/accordion.js +5 -2
  236. package/optimize/es/components/accordion/accordion_children/accordion_children.js +4 -3
  237. package/optimize/es/components/basic_table/action_types.js +5 -0
  238. package/optimize/es/components/basic_table/basic_table.a11y.js +1 -2
  239. package/optimize/es/components/basic_table/collapsed_item_actions.js +116 -169
  240. package/optimize/es/components/basic_table/custom_item_action.js +10 -83
  241. package/optimize/es/components/basic_table/default_item_action.js +23 -14
  242. package/optimize/es/components/basic_table/in_memory_table.a11y.js +13 -11
  243. package/optimize/es/components/breadcrumbs/breadcrumb.js +11 -7
  244. package/optimize/es/components/breadcrumbs/breadcrumb.styles.js +5 -0
  245. package/optimize/es/components/button/button_display/_button_display_content.js +3 -1
  246. package/optimize/es/components/button/button_empty/button_empty.js +2 -2
  247. package/optimize/es/components/button/button_group/button_group.js +7 -8
  248. package/optimize/es/components/button/button_group/button_group_button.js +6 -38
  249. package/optimize/es/components/button/button_group/button_group_button.styles.js +2 -12
  250. package/optimize/es/components/card/card.a11y.js +5 -18
  251. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +2 -2
  252. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  253. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  254. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +8 -3
  255. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -3
  256. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +10 -5
  257. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +8 -36
  258. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +1 -19
  259. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -23
  260. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  261. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +10 -10
  262. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +9 -5
  263. package/optimize/es/components/combo_box/combo_box.js +7 -5
  264. package/optimize/es/components/combo_box/combo_box_input/combo_box_input.js +107 -65
  265. package/optimize/es/components/combo_box/combo_box_input/combo_box_pill.js +8 -17
  266. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +6 -6
  267. package/optimize/es/components/combo_box/utils.js +23 -0
  268. package/optimize/es/components/context_menu/context_menu_item.js +9 -6
  269. package/optimize/es/components/context_menu/context_menu_item.styles.js +1 -1
  270. package/optimize/es/components/datagrid/body/data_grid_cell.js +38 -30
  271. package/optimize/es/components/datagrid/body/data_grid_cell_actions.js +12 -12
  272. package/optimize/es/components/datagrid/body/data_grid_cell_popover.js +43 -10
  273. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +50 -29
  274. package/optimize/es/components/datagrid/controls/column_selector.js +24 -45
  275. package/optimize/es/components/datagrid/controls/column_sorting.js +23 -37
  276. package/optimize/es/components/datagrid/controls/data_grid_toolbar_control.js +70 -0
  277. package/optimize/es/components/datagrid/controls/display_selector.js +21 -17
  278. package/optimize/es/components/datagrid/controls/fullscreen_selector.js +2 -6
  279. package/optimize/es/components/datagrid/controls/index.js +2 -1
  280. package/optimize/es/components/datagrid/data_grid.js +3 -3
  281. package/optimize/es/components/datagrid/index.js +1 -1
  282. package/optimize/es/components/datagrid/utils/row_heights.js +1 -1
  283. package/optimize/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +87 -26
  284. package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +1 -2
  285. package/optimize/es/components/date_picker/super_date_picker/super_update_button.js +1 -1
  286. package/optimize/es/components/error_boundary/error_boundary.a11y.js +1 -1
  287. package/optimize/es/components/expression/expression.a11y.js +2 -4
  288. package/optimize/es/components/filter_group/filter_button.js +2 -2
  289. package/optimize/es/components/filter_group/filter_group.styles.js +1 -1
  290. package/optimize/es/components/focus_trap/focus_trap.a11y.js +3 -3
  291. package/optimize/es/components/form/range/range.a11y.js +5 -10
  292. package/optimize/es/components/form/super_select/super_select.js +3 -2
  293. package/optimize/es/components/form/super_select/super_select_control.js +13 -20
  294. package/optimize/es/components/header/header.a11y.js +1 -1
  295. package/optimize/es/components/i18n/i18n.js +1 -0
  296. package/optimize/es/components/image/image.a11y.js +1 -2
  297. package/optimize/es/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  298. package/optimize/es/components/link/external_link_icon.js +41 -0
  299. package/optimize/es/components/link/link.js +6 -20
  300. package/optimize/es/components/link/link.styles.js +2 -5
  301. package/optimize/es/components/list_group/list_group_item.js +8 -3
  302. package/optimize/es/components/list_group/list_group_item.styles.js +2 -1
  303. package/optimize/es/components/notification/notification_event.a11y.js +1 -2
  304. package/optimize/es/components/popover/input_popover.js +1 -1
  305. package/optimize/es/components/popover/popover.js +14 -23
  306. package/optimize/es/components/popover/popover_arrow/_popover_arrow.styles.js +2 -4
  307. package/optimize/es/components/popover/popover_panel/_popover_panel.js +2 -1
  308. package/optimize/es/components/popover/popover_panel/_popover_panel.styles.js +6 -1
  309. package/optimize/es/components/resizable_container/resizable_container.a11y.js +4 -8
  310. package/optimize/es/components/search_bar/search_bar.a11y.js +3 -6
  311. package/optimize/es/components/selectable/selectable_list/selectable_list.js +199 -76
  312. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.js +13 -11
  313. package/optimize/es/components/text/text.styles.js +2 -2
  314. package/optimize/es/components/text_truncate/text_truncate.js +26 -9
  315. package/optimize/es/components/toast/global_toast_list.js +1 -1
  316. package/optimize/es/global_styling/mixins/_states.js +4 -1
  317. package/optimize/es/services/color/eui_palettes.js +0 -6
  318. package/optimize/es/services/color/index.js +1 -1
  319. package/optimize/es/services/hooks/useCombinedRefs.js +16 -9
  320. package/optimize/es/services/index.js +1 -2
  321. package/optimize/es/test/rtl/component_helpers.d.ts +2 -0
  322. package/optimize/es/test/rtl/component_helpers.js +40 -1
  323. package/optimize/lib/components/accordion/accordion.a11y.js +1 -3
  324. package/optimize/lib/components/accordion/accordion.js +5 -2
  325. package/optimize/lib/components/accordion/accordion_children/accordion_children.js +4 -3
  326. package/optimize/lib/components/basic_table/action_types.js +8 -2
  327. package/optimize/lib/components/basic_table/basic_table.a11y.js +1 -2
  328. package/optimize/lib/components/basic_table/collapsed_item_actions.js +123 -174
  329. package/optimize/lib/components/basic_table/custom_item_action.js +17 -91
  330. package/optimize/lib/components/basic_table/default_item_action.js +23 -14
  331. package/optimize/lib/components/basic_table/in_memory_table.a11y.js +13 -11
  332. package/optimize/lib/components/breadcrumbs/breadcrumb.js +11 -7
  333. package/optimize/lib/components/breadcrumbs/breadcrumb.styles.js +5 -0
  334. package/optimize/lib/components/button/button_display/_button_display_content.js +3 -1
  335. package/optimize/lib/components/button/button_empty/button_empty.js +2 -2
  336. package/optimize/lib/components/button/button_group/button_group.js +6 -7
  337. package/optimize/lib/components/button/button_group/button_group_button.js +6 -38
  338. package/optimize/lib/components/button/button_group/button_group_button.styles.js +2 -12
  339. package/optimize/lib/components/card/card.a11y.js +5 -18
  340. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +1 -1
  341. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  342. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  343. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +7 -2
  344. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -3
  345. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +10 -5
  346. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +8 -36
  347. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +11 -28
  348. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -26
  349. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  350. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +9 -9
  351. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +9 -5
  352. package/optimize/lib/components/combo_box/combo_box.js +7 -5
  353. package/optimize/lib/components/combo_box/combo_box_input/combo_box_input.js +107 -65
  354. package/optimize/lib/components/combo_box/combo_box_input/combo_box_pill.js +8 -17
  355. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +6 -6
  356. package/optimize/lib/components/combo_box/utils.js +31 -0
  357. package/optimize/lib/components/context_menu/context_menu_item.js +9 -6
  358. package/optimize/lib/components/context_menu/context_menu_item.styles.js +1 -1
  359. package/optimize/lib/components/datagrid/body/data_grid_cell.js +38 -30
  360. package/optimize/lib/components/datagrid/body/data_grid_cell_actions.js +12 -12
  361. package/optimize/lib/components/datagrid/body/data_grid_cell_popover.js +43 -10
  362. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +56 -37
  363. package/optimize/lib/components/datagrid/controls/column_selector.js +24 -45
  364. package/optimize/lib/components/datagrid/controls/column_sorting.js +22 -36
  365. package/optimize/lib/components/datagrid/controls/data_grid_toolbar_control.js +75 -0
  366. package/optimize/lib/components/datagrid/controls/display_selector.js +21 -17
  367. package/optimize/lib/components/datagrid/controls/fullscreen_selector.js +2 -6
  368. package/optimize/lib/components/datagrid/controls/index.js +8 -1
  369. package/optimize/lib/components/datagrid/data_grid.js +2 -2
  370. package/optimize/lib/components/datagrid/index.js +8 -1
  371. package/optimize/lib/components/datagrid/utils/row_heights.js +1 -1
  372. package/optimize/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +86 -26
  373. package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +1 -2
  374. package/optimize/lib/components/date_picker/super_date_picker/super_update_button.js +1 -1
  375. package/optimize/lib/components/error_boundary/error_boundary.a11y.js +1 -1
  376. package/optimize/lib/components/expression/expression.a11y.js +2 -4
  377. package/optimize/lib/components/filter_group/filter_button.js +2 -2
  378. package/optimize/lib/components/filter_group/filter_group.styles.js +1 -1
  379. package/optimize/lib/components/focus_trap/focus_trap.a11y.js +3 -3
  380. package/optimize/lib/components/form/range/range.a11y.js +5 -10
  381. package/optimize/lib/components/form/super_select/super_select.js +3 -2
  382. package/optimize/lib/components/form/super_select/super_select_control.js +12 -19
  383. package/optimize/lib/components/header/header.a11y.js +1 -1
  384. package/optimize/lib/components/i18n/i18n.js +1 -0
  385. package/optimize/lib/components/image/image.a11y.js +1 -2
  386. package/optimize/lib/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  387. package/optimize/lib/components/link/external_link_icon.js +47 -0
  388. package/optimize/lib/components/link/link.js +6 -20
  389. package/optimize/lib/components/link/link.styles.js +1 -4
  390. package/optimize/lib/components/list_group/list_group_item.js +8 -3
  391. package/optimize/lib/components/list_group/list_group_item.styles.js +2 -1
  392. package/optimize/lib/components/notification/notification_event.a11y.js +1 -2
  393. package/optimize/lib/components/popover/input_popover.js +1 -1
  394. package/optimize/lib/components/popover/popover.js +28 -36
  395. package/optimize/lib/components/popover/popover_arrow/_popover_arrow.styles.js +1 -3
  396. package/optimize/lib/components/popover/popover_panel/_popover_panel.js +2 -1
  397. package/optimize/lib/components/popover/popover_panel/_popover_panel.styles.js +6 -1
  398. package/optimize/lib/components/resizable_container/resizable_container.a11y.js +4 -8
  399. package/optimize/lib/components/search_bar/search_bar.a11y.js +3 -6
  400. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +199 -76
  401. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +12 -10
  402. package/optimize/lib/components/text/text.styles.js +2 -2
  403. package/optimize/lib/components/text_truncate/text_truncate.js +25 -8
  404. package/optimize/lib/components/toast/global_toast_list.js +1 -1
  405. package/optimize/lib/global_styling/mixins/_states.js +4 -1
  406. package/optimize/lib/services/color/eui_palettes.js +1 -8
  407. package/optimize/lib/services/color/index.js +0 -7
  408. package/optimize/lib/services/hooks/useCombinedRefs.js +19 -10
  409. package/optimize/lib/services/index.js +0 -15
  410. package/optimize/lib/test/rtl/component_helpers.d.ts +2 -0
  411. package/optimize/lib/test/rtl/component_helpers.js +41 -3
  412. package/package.json +13 -13
  413. package/src/components/combo_box/_combo_box.scss +46 -14
  414. package/src/components/combo_box/combo_box_input/_combo_box_pill.scss +0 -17
  415. package/src/components/combo_box/combo_box_input/_index.scss +0 -2
  416. package/src/components/datagrid/_data_grid_data_row.scss +139 -101
  417. package/src/components/datagrid/_mixins.scss +2 -2
  418. package/src/components/datagrid/body/header/_data_grid_header_row.scss +36 -28
  419. package/src/components/datagrid/controls/_data_grid_toolbar.scss +0 -5
  420. package/src/components/date_picker/super_date_picker/date_popover/_absolute_tab.scss +21 -0
  421. package/src/components/date_picker/super_date_picker/quick_select_popover/_quick_select_popover.scss +0 -4
  422. package/src/components/form/form_control_layout/_form_control_layout.scss +0 -1
  423. package/src/components/form/form_row/_form_row.scss +1 -1
  424. package/src/components/table/_responsive.scss +19 -0
  425. package/src/components/table/_table.scss +4 -9
  426. package/src/global_styling/variables/_typography.scss +2 -2
  427. package/test-env/components/accordion/accordion.a11y.js +1 -3
  428. package/test-env/components/accordion/accordion.js +13 -2
  429. package/test-env/components/accordion/accordion_children/accordion_children.js +4 -3
  430. package/test-env/components/auto_sizer/auto_sizer.js +10 -3
  431. package/test-env/components/basic_table/action_types.js +8 -2
  432. package/test-env/components/basic_table/basic_table.a11y.js +1 -2
  433. package/test-env/components/basic_table/basic_table.js +8 -8
  434. package/test-env/components/basic_table/collapsed_item_actions.js +124 -251
  435. package/test-env/components/basic_table/custom_item_action.js +18 -100
  436. package/test-env/components/basic_table/default_item_action.js +23 -14
  437. package/test-env/components/basic_table/in_memory_table.a11y.js +13 -11
  438. package/test-env/components/basic_table/in_memory_table.js +8 -8
  439. package/test-env/components/breadcrumbs/breadcrumb.js +16 -12
  440. package/test-env/components/breadcrumbs/breadcrumb.styles.js +5 -0
  441. package/test-env/components/button/button_display/_button_display.js +6 -4
  442. package/test-env/components/button/button_display/_button_display_content.js +8 -4
  443. package/test-env/components/button/button_empty/button_empty.js +9 -7
  444. package/test-env/components/button/button_group/button_group.js +12 -12
  445. package/test-env/components/button/button_group/button_group_button.js +13 -54
  446. package/test-env/components/button/button_group/button_group_button.styles.js +2 -12
  447. package/test-env/components/card/card.a11y.js +5 -18
  448. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +8 -0
  449. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +1 -1
  450. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.js +4 -1
  451. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +12 -9
  452. package/test-env/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +8 -103
  453. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +20 -58
  454. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +89 -37
  455. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +66 -80
  456. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +11 -28
  457. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +7 -105
  458. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +4 -4
  459. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +10 -89
  460. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +150 -130
  461. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +0 -10
  462. package/test-env/components/combo_box/combo_box.js +8 -6
  463. package/test-env/components/combo_box/combo_box_input/combo_box_input.js +107 -65
  464. package/test-env/components/combo_box/combo_box_input/combo_box_pill.js +8 -18
  465. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +6 -6
  466. package/test-env/components/combo_box/utils.js +31 -0
  467. package/test-env/components/context_menu/context_menu_item.js +16 -8
  468. package/test-env/components/context_menu/context_menu_item.styles.js +1 -1
  469. package/test-env/components/datagrid/body/data_grid_body.js +16 -6
  470. package/test-env/components/datagrid/body/data_grid_body_custom.js +16 -6
  471. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +16 -6
  472. package/test-env/components/datagrid/body/data_grid_cell.js +67 -44
  473. package/test-env/components/datagrid/body/data_grid_cell_actions.js +12 -12
  474. package/test-env/components/datagrid/body/data_grid_cell_popover.js +43 -10
  475. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +72 -43
  476. package/test-env/components/datagrid/body/header/data_grid_header_row.js +16 -6
  477. package/test-env/components/datagrid/controls/column_selector.js +24 -45
  478. package/test-env/components/datagrid/controls/column_sorting.js +22 -36
  479. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +158 -0
  480. package/test-env/components/datagrid/controls/display_selector.js +21 -17
  481. package/test-env/components/datagrid/controls/fullscreen_selector.js +2 -6
  482. package/test-env/components/datagrid/controls/index.js +8 -1
  483. package/test-env/components/datagrid/data_grid.js +2 -863
  484. package/test-env/components/datagrid/index.js +8 -1
  485. package/test-env/components/datagrid/utils/in_memory.js +16 -6
  486. package/test-env/components/datagrid/utils/row_heights.js +1 -1
  487. package/test-env/components/date_picker/auto_refresh/auto_refresh.js +6 -4
  488. package/test-env/components/date_picker/super_date_picker/date_popover/absolute_tab.js +86 -26
  489. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.js +1 -1
  490. package/test-env/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +1 -2
  491. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +19 -0
  492. package/test-env/components/date_picker/super_date_picker/super_update_button.js +1 -1
  493. package/test-env/components/error_boundary/error_boundary.a11y.js +1 -1
  494. package/test-env/components/expression/expression.a11y.js +2 -4
  495. package/test-env/components/facet/facet_button.js +6 -4
  496. package/test-env/components/filter_group/filter_button.js +2 -2
  497. package/test-env/components/filter_group/filter_group.styles.js +1 -1
  498. package/test-env/components/focus_trap/focus_trap.a11y.js +3 -3
  499. package/test-env/components/form/range/range.a11y.js +5 -10
  500. package/test-env/components/form/super_select/super_select.js +3 -2
  501. package/test-env/components/form/super_select/super_select_control.js +12 -19
  502. package/test-env/components/header/header.a11y.js +1 -1
  503. package/test-env/components/header/header_links/header_link.js +7 -5
  504. package/test-env/components/header/header_section/header_section_item_button.js +7 -5
  505. package/test-env/components/i18n/i18n.js +1 -0
  506. package/test-env/components/image/image.a11y.js +1 -2
  507. package/test-env/components/key_pad_menu/key_pad_menu.a11y.js +5 -5
  508. package/test-env/components/link/external_link_icon.js +56 -0
  509. package/test-env/components/link/link.js +6 -20
  510. package/test-env/components/link/link.styles.js +1 -4
  511. package/test-env/components/list_group/list_group.js +6 -1
  512. package/test-env/components/list_group/list_group_item.js +14 -4
  513. package/test-env/components/list_group/list_group_item.styles.js +2 -1
  514. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +12 -2
  515. package/test-env/components/notification/notification_event.a11y.js +1 -2
  516. package/test-env/components/notification/notification_event.js +7 -5
  517. package/test-env/components/popover/input_popover.js +1 -1
  518. package/test-env/components/popover/popover.js +33 -36
  519. package/test-env/components/popover/popover_arrow/_popover_arrow.styles.js +1 -3
  520. package/test-env/components/popover/popover_panel/_popover_panel.js +2 -1
  521. package/test-env/components/popover/popover_panel/_popover_panel.styles.js +6 -1
  522. package/test-env/components/resizable_container/resizable_container.a11y.js +4 -8
  523. package/test-env/components/search_bar/search_bar.a11y.js +3 -6
  524. package/test-env/components/selectable/selectable.js +16 -1
  525. package/test-env/components/selectable/selectable_list/selectable_list.js +227 -78
  526. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +28 -11
  527. package/test-env/components/text/text.styles.js +2 -2
  528. package/test-env/components/text_truncate/text_truncate.js +32 -9
  529. package/test-env/components/toast/global_toast_list.js +11 -1
  530. package/test-env/global_styling/mixins/_states.js +4 -1
  531. package/test-env/services/color/eui_palettes.js +1 -8
  532. package/test-env/services/color/index.js +0 -7
  533. package/test-env/services/hooks/useCombinedRefs.js +19 -10
  534. package/test-env/services/index.js +0 -15
  535. package/test-env/test/rtl/component_helpers.js +41 -3
  536. package/es/services/random.js +0 -94
  537. package/es/services/utils.js +0 -25
  538. package/es/test/patch_random.js +0 -18
  539. package/lib/services/random.js +0 -100
  540. package/lib/services/utils.js +0 -35
  541. package/lib/test/patch_random.js +0 -25
  542. package/optimize/es/services/random.js +0 -85
  543. package/optimize/es/services/utils.js +0 -25
  544. package/optimize/es/test/patch_random.js +0 -18
  545. package/optimize/lib/services/random.js +0 -91
  546. package/optimize/lib/services/utils.js +0 -35
  547. package/optimize/lib/test/patch_random.js +0 -25
  548. package/src/components/combo_box/combo_box_input/_combo_box_input.scss +0 -12
  549. package/src/components/combo_box/combo_box_input/_combo_box_placeholder.scss +0 -11
  550. package/test-env/services/random.js +0 -91
  551. package/test-env/services/utils.js +0 -35
  552. package/test-env/test/patch_random.js +0 -25
@@ -73,6 +73,7 @@ var convertRowHeightsOptionsToSelection = function convertRowHeightsOptionsToSel
73
73
  }
74
74
  return rowHeightButtonOptions[0];
75
75
  };
76
+ var defaultLineCountValue = String(2);
76
77
  export var useDataGridDisplaySelector = function useDataGridDisplaySelector(showDisplaySelector, initialStyles, initialRowHeightsOptions) {
77
78
  var _showDisplaySelector$, _rowHeightsOptions$de2;
78
79
  var _useState = useState(false),
@@ -100,10 +101,10 @@ export var useDataGridDisplaySelector = function useDataGridDisplaySelector(show
100
101
  }, []);
101
102
 
102
103
  // Row height logic
103
- var _useState7 = useState(2),
104
+ var _useState7 = useState(defaultLineCountValue),
104
105
  _useState8 = _slicedToArray(_useState7, 2),
105
- lineCount = _useState8[0],
106
- setLineCount = _useState8[1];
106
+ lineCountInput = _useState8[0],
107
+ setLineCountInput = _useState8[1];
107
108
  var setRowHeight = useCallback(function (option) {
108
109
  var rowHeightsOptions = {
109
110
  rowHeights: {} // Unset all row-specific heights
@@ -113,25 +114,27 @@ export var useDataGridDisplaySelector = function useDataGridDisplaySelector(show
113
114
  rowHeightsOptions.defaultHeight = 'auto';
114
115
  } else if (option === 'lineCount') {
115
116
  rowHeightsOptions.defaultHeight = {
116
- lineCount: lineCount
117
+ lineCount: Number(lineCountInput)
117
118
  };
118
119
  } else {
119
120
  rowHeightsOptions.defaultHeight = undefined;
120
121
  }
121
122
  setUserRowHeightsOptions(rowHeightsOptions);
122
- }, [lineCount]);
123
+ }, [lineCountInput]);
123
124
  var setLineCountHeight = useCallback(function (event) {
125
+ setLineCountInput(event.currentTarget.value);
124
126
  var newLineCount = Number(event.currentTarget.value);
125
- if (newLineCount < 1) return; // Don't let users set a 0 or negative line count
126
127
 
127
- setLineCount(newLineCount);
128
- setUserRowHeightsOptions({
129
- rowHeights: {},
130
- // Unset all row-specific line counts
131
- defaultHeight: {
132
- lineCount: newLineCount
133
- }
134
- });
128
+ // Don't let users set a 0 or negative line count
129
+ if (newLineCount > 0) {
130
+ setUserRowHeightsOptions({
131
+ rowHeights: {},
132
+ // Unset all row-specific line counts
133
+ defaultHeight: {
134
+ lineCount: newLineCount
135
+ }
136
+ });
137
+ }
135
138
  }, []);
136
139
 
137
140
  // Merge the developer-specified configurations with user overrides
@@ -151,8 +154,9 @@ export var useDataGridDisplaySelector = function useDataGridDisplaySelector(show
151
154
  }, [rowHeightsOptions]);
152
155
  useEffect(function () {
153
156
  var _rowHeightsOptions$de;
157
+ setLineCountInput(
154
158
  // @ts-ignore - optional chaining operator handles types & cases that aren't lineCount
155
- setLineCount((rowHeightsOptions === null || rowHeightsOptions === void 0 ? void 0 : (_rowHeightsOptions$de = rowHeightsOptions.defaultHeight) === null || _rowHeightsOptions$de === void 0 ? void 0 : _rowHeightsOptions$de.lineCount) || 2);
159
+ (rowHeightsOptions === null || rowHeightsOptions === void 0 ? void 0 : (_rowHeightsOptions$de = rowHeightsOptions.defaultHeight) === null || _rowHeightsOptions$de === void 0 ? void 0 : _rowHeightsOptions$de.lineCount) || defaultLineCountValue);
156
160
  // @ts-ignore - same as above
157
161
  }, [rowHeightsOptions === null || rowHeightsOptions === void 0 ? void 0 : (_rowHeightsOptions$de2 = rowHeightsOptions.defaultHeight) === null || _rowHeightsOptions$de2 === void 0 ? void 0 : _rowHeightsOptions$de2.lineCount]);
158
162
 
@@ -206,7 +210,6 @@ export var useDataGridDisplaySelector = function useDataGridDisplaySelector(show
206
210
  }, ___EmotionJSX(EuiButtonIcon, {
207
211
  size: "xs",
208
212
  iconType: "controlsHorizontal",
209
- className: "euiDataGrid__controlBtn",
210
213
  color: "text",
211
214
  "data-test-subj": "dataGridDisplaySelectorButton",
212
215
  onClick: function onClick() {
@@ -284,7 +287,8 @@ export var useDataGridDisplaySelector = function useDataGridDisplaySelector(show
284
287
  min: 1,
285
288
  max: 20,
286
289
  step: 1,
287
- value: lineCount,
290
+ required: true,
291
+ value: lineCountInput,
288
292
  onChange: setLineCountHeight,
289
293
  "data-test-subj": "lineCountNumber"
290
294
  })));
@@ -8,7 +8,6 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
8
8
  */
9
9
 
10
10
  import React, { useState, useEffect, useMemo, useCallback } from 'react';
11
- import classNames from 'classnames';
12
11
  import { keys } from '../../../services';
13
12
  import { EuiToolTip } from '../../tool_tip';
14
13
  import { EuiButtonIcon } from '../../button';
@@ -24,9 +23,6 @@ export var useDataGridFullScreenSelector = function useDataGridFullScreenSelecto
24
23
  _useEuiI18n2 = _slicedToArray(_useEuiI18n, 2),
25
24
  fullScreenButton = _useEuiI18n2[0],
26
25
  fullScreenButtonActive = _useEuiI18n2[1];
27
- var controlBtnClasses = classNames('euiDataGrid__controlBtn', {
28
- 'euiDataGrid__controlBtn--active': isFullScreen
29
- });
30
26
  var fullScreenSelector = useMemo(function () {
31
27
  return ___EmotionJSX(EuiToolTip, {
32
28
  content: isFullScreen ? ___EmotionJSX(React.Fragment, null, fullScreenButtonActive, " (", ___EmotionJSX("kbd", null, "esc"), ")") : fullScreenButton,
@@ -35,14 +31,14 @@ export var useDataGridFullScreenSelector = function useDataGridFullScreenSelecto
35
31
  size: "xs",
36
32
  iconType: isFullScreen ? 'fullScreenExit' : 'fullScreen',
37
33
  color: "text",
38
- className: controlBtnClasses,
34
+ "aria-pressed": isFullScreen,
39
35
  "data-test-subj": "dataGridFullScreenButton",
40
36
  onClick: function onClick() {
41
37
  return setIsFullScreen(!isFullScreen);
42
38
  },
43
39
  "aria-label": isFullScreen ? fullScreenButtonActive : fullScreenButton
44
40
  }));
45
- }, [isFullScreen, controlBtnClasses, fullScreenButton, fullScreenButtonActive]);
41
+ }, [isFullScreen, fullScreenButton, fullScreenButtonActive]);
46
42
  var handleGridKeyDown = useCallback(function (event) {
47
43
  switch (event.key) {
48
44
  case keys.ESCAPE:
@@ -11,4 +11,5 @@ export { useDataGridColumnSorting } from './column_sorting';
11
11
  export { useDataGridDisplaySelector, startingStyles } from './display_selector';
12
12
  export { useDataGridKeyboardShortcuts } from './keyboard_shortcuts';
13
13
  export { useDataGridFullScreenSelector } from './fullscreen_selector';
14
- export { checkOrDefaultToolBarDisplayOptions, EuiDataGridToolbar } from './data_grid_toolbar';
14
+ export { checkOrDefaultToolBarDisplayOptions, EuiDataGridToolbar } from './data_grid_toolbar';
15
+ export { EuiDataGridToolbarControl } from './data_grid_toolbar_control';
@@ -16,7 +16,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
16
16
  */
17
17
 
18
18
  import classNames from 'classnames';
19
- import React, { forwardRef, useMemo, useRef, useState } from 'react';
19
+ import React, { forwardRef, useMemo, useRef, useState, memo } from 'react';
20
20
  import { useGeneratedHtmlId } from '../../services';
21
21
  import { useEuiTablePaginationDefaults } from '../table/table_pagination';
22
22
  import { EuiFocusTrap } from '../focus_trap';
@@ -66,7 +66,7 @@ var cellPaddingsToClassMap = {
66
66
  m: '',
67
67
  l: 'euiDataGrid--paddingLarge'
68
68
  };
69
- export var EuiDataGrid = /*#__PURE__*/forwardRef(function (props, ref) {
69
+ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, ref) {
70
70
  var _gridItemsRendered$cu;
71
71
  var _props$leadingControl = props.leadingControlColumns,
72
72
  leadingControlColumns = _props$leadingControl === void 0 ? emptyControlColumns : _props$leadingControl,
@@ -383,5 +383,5 @@ export var EuiDataGrid = /*#__PURE__*/forwardRef(function (props, ref) {
383
383
  token: "euiDataGrid.screenReaderNotice",
384
384
  default: "Cell contains interactive content."
385
385
  }))))), cellPopover));
386
- });
386
+ }));
387
387
  EuiDataGrid.displayName = 'EuiDataGrid';
@@ -7,5 +7,5 @@
7
7
  */
8
8
 
9
9
  export { EuiDataGrid } from './data_grid';
10
- export { useDataGridColumnSelector, useDataGridColumnSorting, useDataGridDisplaySelector } from './controls';
10
+ export { useDataGridColumnSelector, useDataGridColumnSorting, useDataGridDisplaySelector, EuiDataGridToolbarControl } from './controls';
11
11
  export * from './data_grid_types';
@@ -150,7 +150,7 @@ export var RowHeightUtils = /*#__PURE__*/function () {
150
150
  var height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_ROW_HEIGHT;
151
151
  var _visibleRowIndex = arguments.length > 3 ? arguments[3] : undefined;
152
152
  var rowHeights = this.heightsCache.get(rowIndex) || new Map();
153
- var adaptedHeight = Math.ceil(height + this.styles.paddingTop + this.styles.paddingBottom);
153
+ var adaptedHeight = Math.ceil(height);
154
154
  if (rowHeights.get(colId) === adaptedHeight) {
155
155
  return false;
156
156
  } else {
@@ -1,3 +1,4 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
3
  import _createClass from "@babel/runtime/helpers/createClass";
3
4
  import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
@@ -19,52 +20,99 @@ import React, { Component } from 'react';
19
20
  import moment from 'moment'; // eslint-disable-line import/named
20
21
 
21
22
  import dateMath from '@elastic/datemath';
22
- import { EuiDatePicker } from '../../date_picker';
23
+ import { keys } from '../../../../services';
23
24
  import { EuiFormRow, EuiFieldText, EuiFormLabel } from '../../../form';
25
+ import { EuiCode } from '../../../code';
24
26
  import { EuiI18n } from '../../../i18n';
27
+ import { EuiDatePicker } from '../../date_picker';
25
28
  import { jsx as ___EmotionJSX } from "@emotion/react";
29
+ // Allow users to paste in and have the datepicker parse multiple common date formats,
30
+ // in addition to the configured displayed `dateFormat` prop
31
+ var ALLOWED_USER_DATE_FORMATS = [moment.ISO_8601, moment.RFC_2822, 'X' // Unix timestamp in seconds
32
+ ];
33
+
26
34
  export var EuiAbsoluteTab = /*#__PURE__*/function (_Component) {
27
35
  _inherits(EuiAbsoluteTab, _Component);
28
36
  var _super = _createSuper(EuiAbsoluteTab);
37
+ // Store outside of state as a ref for faster/unbatched updates
38
+
29
39
  function EuiAbsoluteTab(props) {
30
40
  var _this;
31
41
  _classCallCheck(this, EuiAbsoluteTab);
32
42
  _this = _super.call(this, props);
33
43
  _defineProperty(_assertThisInitialized(_this), "state", void 0);
34
- _defineProperty(_assertThisInitialized(_this), "handleChange", function (date, event) {
44
+ _defineProperty(_assertThisInitialized(_this), "isParsing", false);
45
+ _defineProperty(_assertThisInitialized(_this), "handleChange", function (date) {
35
46
  var onChange = _this.props.onChange;
36
47
  if (date === null) {
37
48
  return;
38
49
  }
39
- onChange(date.toISOString(), event);
50
+ onChange(date.toISOString());
40
51
  var valueAsMoment = moment(date);
41
52
  _this.setState({
42
53
  valueAsMoment: valueAsMoment,
43
54
  textInputValue: valueAsMoment.format(_this.props.dateFormat),
55
+ hasUnparsedText: false,
44
56
  isTextInvalid: false
45
57
  });
46
58
  });
47
59
  _defineProperty(_assertThisInitialized(_this), "handleTextChange", function (event) {
48
- var onChange = _this.props.onChange;
49
- var valueAsMoment = moment(event.target.value, _this.props.dateFormat, true);
50
- var dateIsValid = valueAsMoment.isValid();
51
- if (dateIsValid) {
52
- onChange(valueAsMoment.toISOString(), event);
53
- }
60
+ if (_this.isParsing) return;
54
61
  _this.setState({
55
62
  textInputValue: event.target.value,
56
- isTextInvalid: !dateIsValid,
57
- valueAsMoment: dateIsValid ? valueAsMoment : null
63
+ hasUnparsedText: true,
64
+ isTextInvalid: false
58
65
  });
59
66
  });
67
+ _defineProperty(_assertThisInitialized(_this), "parseUserDateInput", function (textInputValue) {
68
+ _this.isParsing = true;
69
+ // Wait a tick for state to finish updating (whatever gets returned),
70
+ // and then allow `onChange` user input to continue setting state
71
+ requestAnimationFrame(function () {
72
+ _this.isParsing = false;
73
+ });
74
+ var invalidDateState = {
75
+ textInputValue: textInputValue,
76
+ isTextInvalid: true,
77
+ valueAsMoment: null
78
+ };
79
+ if (!textInputValue) {
80
+ return _this.setState(invalidDateState);
81
+ }
82
+ var _this$props = _this.props,
83
+ onChange = _this$props.onChange,
84
+ dateFormat = _this$props.dateFormat;
85
+
86
+ // Attempt to parse with passed `dateFormat`
87
+ var valueAsMoment = moment(textInputValue, dateFormat, true);
88
+ var dateIsValid = valueAsMoment.isValid();
89
+
90
+ // If not valid, try a few other other standardized formats
91
+ if (!dateIsValid) {
92
+ valueAsMoment = moment(textInputValue, ALLOWED_USER_DATE_FORMATS, true);
93
+ dateIsValid = valueAsMoment.isValid();
94
+ }
95
+ if (dateIsValid) {
96
+ onChange(valueAsMoment.toISOString());
97
+ _this.setState({
98
+ textInputValue: valueAsMoment.format(_this.props.dateFormat),
99
+ valueAsMoment: valueAsMoment,
100
+ hasUnparsedText: false,
101
+ isTextInvalid: false
102
+ });
103
+ } else {
104
+ _this.setState(invalidDateState);
105
+ }
106
+ });
60
107
  var parsedValue = dateMath.parse(props.value, {
61
108
  roundUp: props.roundUp
62
109
  });
63
110
  var _valueAsMoment = parsedValue && parsedValue.isValid() ? parsedValue : moment();
64
- var textInputValue = _valueAsMoment.locale(_this.props.locale || 'en').format(_this.props.dateFormat);
111
+ var _textInputValue = _valueAsMoment.locale(_this.props.locale || 'en').format(_this.props.dateFormat);
65
112
  _this.state = {
113
+ hasUnparsedText: false,
66
114
  isTextInvalid: false,
67
- textInputValue: textInputValue,
115
+ textInputValue: _textInputValue,
68
116
  valueAsMoment: _valueAsMoment
69
117
  };
70
118
  return _this;
@@ -73,17 +121,18 @@ export var EuiAbsoluteTab = /*#__PURE__*/function (_Component) {
73
121
  key: "render",
74
122
  value: function render() {
75
123
  var _this2 = this;
76
- var _this$props = this.props,
77
- dateFormat = _this$props.dateFormat,
78
- timeFormat = _this$props.timeFormat,
79
- locale = _this$props.locale,
80
- utcOffset = _this$props.utcOffset,
81
- labelPrefix = _this$props.labelPrefix;
124
+ var _this$props2 = this.props,
125
+ dateFormat = _this$props2.dateFormat,
126
+ timeFormat = _this$props2.timeFormat,
127
+ locale = _this$props2.locale,
128
+ utcOffset = _this$props2.utcOffset,
129
+ labelPrefix = _this$props2.labelPrefix;
82
130
  var _this$state = this.state,
83
131
  valueAsMoment = _this$state.valueAsMoment,
84
132
  isTextInvalid = _this$state.isTextInvalid,
133
+ hasUnparsedText = _this$state.hasUnparsedText,
85
134
  textInputValue = _this$state.textInputValue;
86
- return ___EmotionJSX("div", null, ___EmotionJSX(EuiDatePicker, {
135
+ return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiDatePicker, {
87
136
  inline: true,
88
137
  showTimeSelect: true,
89
138
  shadow: false,
@@ -94,22 +143,34 @@ export var EuiAbsoluteTab = /*#__PURE__*/function (_Component) {
94
143
  locale: locale,
95
144
  utcOffset: utcOffset
96
145
  }), ___EmotionJSX(EuiI18n, {
97
- token: "euiAbsoluteTab.dateFormatError",
98
- default: "Expected format: {dateFormat}",
146
+ tokens: ['euiAbsoluteTab.dateFormatHint', 'euiAbsoluteTab.dateFormatError'],
147
+ defaults: ['Press the Enter key to parse as a date.', 'Allowed formats: {dateFormat}, ISO 8601, RFC 2822, or Unix timestamp.'],
99
148
  values: {
100
- dateFormat: dateFormat
149
+ dateFormat: ___EmotionJSX(EuiCode, null, dateFormat)
101
150
  }
102
- }, function (dateFormatError) {
151
+ }, function (_ref) {
152
+ var _ref2 = _slicedToArray(_ref, 2),
153
+ dateFormatHint = _ref2[0],
154
+ dateFormatError = _ref2[1];
103
155
  return ___EmotionJSX(EuiFormRow, {
104
156
  className: "euiSuperDatePicker__absoluteDateFormRow",
105
157
  isInvalid: isTextInvalid,
106
- error: isTextInvalid ? dateFormatError : undefined
158
+ error: isTextInvalid ? dateFormatError : undefined,
159
+ helpText: hasUnparsedText ? isTextInvalid ? dateFormatHint : [dateFormatHint, dateFormatError] : undefined
107
160
  }, ___EmotionJSX(EuiFieldText, {
108
161
  compressed: true,
109
162
  isInvalid: isTextInvalid,
110
163
  value: textInputValue,
111
164
  onChange: _this2.handleTextChange,
112
- "data-test-subj": 'superDatePickerAbsoluteDateInput',
165
+ onPaste: function onPaste(event) {
166
+ _this2.parseUserDateInput(event.clipboardData.getData('text'));
167
+ },
168
+ onKeyDown: function onKeyDown(event) {
169
+ if (event.key === keys.ENTER) {
170
+ _this2.parseUserDateInput(textInputValue);
171
+ }
172
+ },
173
+ "data-test-subj": "superDatePickerAbsoluteDateInput",
113
174
  prepend: ___EmotionJSX(EuiFormLabel, null, labelPrefix)
114
175
  }));
115
176
  }));
@@ -79,8 +79,7 @@ export var EuiQuickSelectPopover = function EuiQuickSelectPopover(_ref) {
79
79
  button: quickSelectButton,
80
80
  isOpen: isOpen,
81
81
  closePopover: closePopover,
82
- anchorPosition: "downLeft",
83
- anchorClassName: "euiQuickSelectPopover__anchor"
82
+ anchorPosition: "downLeft"
84
83
  }, ___EmotionJSX(EuiQuickSelectPanels, _extends({}, props, {
85
84
  applyTime: applyTime,
86
85
  prevQuickSelect: prevQuickSelect
@@ -141,7 +141,7 @@ export var EuiSuperUpdateButton = /*#__PURE__*/function (_Component) {
141
141
  }, sharedButtonProps, {
142
142
  fill: fill,
143
143
  textProps: _objectSpread(_objectSpread({}, restTextProps), {}, {
144
- className: classNames('euiScreenReaderOnly', restTextProps === null || restTextProps === void 0 ? void 0 : restTextProps.className)
144
+ className: classNames('euiScreenReaderOnly', restTextProps && restTextProps.className)
145
145
  })
146
146
  }, rest), buttonText)), ___EmotionJSX(EuiHideFor, {
147
147
  sizes: responsive || 'none'
@@ -41,7 +41,7 @@ describe('EuiErrorBoundary', function () {
41
41
  cy.checkAxe();
42
42
  });
43
43
  it('has zero violations and accepts focus when the button is pressed', function () {
44
- cy.realPress('Tab');
44
+ cy.get('button').first().focus();
45
45
  cy.realPress('Enter');
46
46
  cy.get('pre.euiCodeBlock__pre').should('have.focus');
47
47
  cy.checkAxe();
@@ -202,8 +202,7 @@ describe('EuiExpression', function () {
202
202
  cy.checkAxe();
203
203
  });
204
204
  it('has zero violations when first popover is interacted with by keyboard', function () {
205
- cy.realPress('Tab');
206
- cy.get('button').contains(/When count\(\)/i).should('have.focus');
205
+ cy.get('button').contains(/When count\(\)/i).focus();
207
206
  cy.realPress('Enter');
208
207
  cy.get('div[data-test-subj="cy-expression-popover-1"]').should('exist');
209
208
  cy.realPress('Tab');
@@ -213,8 +212,7 @@ describe('EuiExpression', function () {
213
212
  cy.checkAxe();
214
213
  });
215
214
  it('has zero violations when second popover is interacted with by keyboard', function () {
216
- cy.repeatRealPress('Tab');
217
- cy.get('button').contains(/Is above 100/i).should('have.focus');
215
+ cy.get('button').contains(/Is above 100/i).focus();
218
216
  cy.realPress('Enter');
219
217
  cy.get('div[data-test-subj="cy-expression-popover-2"]').should('exist');
220
218
  cy.realPress('Tab');
@@ -69,7 +69,7 @@ export var EuiFilterButton = function EuiFilterButton(_ref) {
69
69
  });
70
70
  var buttonTextClassNames = classNames('euiFilterButton__text', {
71
71
  'euiFilterButton__text-hasNotification': showBadge
72
- }, textProps === null || textProps === void 0 ? void 0 : textProps.className);
72
+ }, textProps && textProps.className);
73
73
  var badgeContent = showBadge && ___EmotionJSX(EuiNotificationBadge, {
74
74
  className: "euiFilterButton__notification",
75
75
  css: [notificationStyles.euiFilterButton__notification, isDisabled && notificationStyles.disabled, ";label:badgeContent;"],
@@ -99,7 +99,7 @@ export var EuiFilterButton = function EuiFilterButton(_ref) {
99
99
  type: type,
100
100
  textProps: _objectSpread(_objectSpread({}, textProps), {}, {
101
101
  className: buttonTextClassNames,
102
- css: [textStyles.euiFilterButton__text, showBadge && textStyles.hasNotification, textProps === null || textProps === void 0 ? void 0 : textProps.css]
102
+ css: [textStyles.euiFilterButton__text, showBadge && textStyles.hasNotification, textProps && textProps.css]
103
103
  }),
104
104
  contentProps: _objectSpread(_objectSpread({}, contentProps), {}, {
105
105
  css: [contentStyles.euiFilterButton__content, iconType && contentStyles.hasIcon, contentProps === null || contentProps === void 0 ? void 0 : contentProps.css]
@@ -28,7 +28,7 @@ export var euiFilterGroupStyles = function euiFilterGroupStyles(euiThemeContext)
28
28
  controlCompressedBorderRadius = _euiFormVariables.controlCompressedBorderRadius,
29
29
  controlCompressedHeight = _euiFormVariables.controlCompressedHeight;
30
30
  return {
31
- euiFilterGroup: /*#__PURE__*/css("display:inline-flex;", logicalCSS('max-width', '100%'), " overflow:hidden;background-color:", backgroundColor, ";box-shadow:inset 0 0 0 ", euiTheme.border.width.thin, " ", borderColor, ";>*:not(.euiFilterButton){", euiFilterButtonDisplay(euiThemeContext), ";}.euiPopover__anchor{display:block;.euiFilterButton{", logicalCSS('width', '100%'), ";}}", euiBreakpoint(euiThemeContext, ['xs', 's']), "{flex-wrap:wrap;}", euiBreakpoint(euiThemeContext, ['xs']), "{display:flex;.euiFilterButton{flex-grow:1;}};label:euiFilterGroup;"),
31
+ euiFilterGroup: /*#__PURE__*/css("display:inline-flex;", logicalCSS('max-width', '100%'), " overflow:hidden;background-color:", backgroundColor, ";box-shadow:inset 0 0 0 ", euiTheme.border.width.thin, " ", borderColor, ";>*:not(.euiFilterButton){", euiFilterButtonDisplay(euiThemeContext), ";}.euiPopover>.euiFilterButton{", logicalCSS('width', '100%'), ";}", euiBreakpoint(euiThemeContext, ['xs', 's']), "{flex-wrap:wrap;}", euiBreakpoint(euiThemeContext, ['xs']), "{display:flex;.euiFilterButton{flex-grow:1;}};label:euiFilterGroup;"),
32
32
  fullWidth: _ref,
33
33
  uncompressed: /*#__PURE__*/css("border-radius:", controlBorderRadius, ";", buttonChildrenBorderRadii(controlBorderRadius), ";;label:uncompressed;"),
34
34
  compressed: /*#__PURE__*/css("border-radius:", controlCompressedBorderRadius, ";", buttonChildrenBorderRadii(controlCompressedBorderRadius), " .euiFilterButton{", logicalCSS('height', controlCompressedHeight), ";};label:compressed;"),
@@ -100,12 +100,12 @@ describe('EuiFocusTrap', function () {
100
100
  });
101
101
  describe('Accessibility checks for keyboard navigation', function () {
102
102
  it('allows the button outside the FocusTrap to receive focus', function () {
103
- cy.repeatRealPress('Tab', 5);
104
- cy.get('button[data-test-subj="cy-external-button"]').should('have.focus');
103
+ cy.get('button[data-test-subj="cy-external-button"]').focus();
105
104
  cy.checkAxe();
106
105
  });
107
106
  it('prevents the button outside the FocusTrap from receiving focus', function () {
108
- cy.repeatRealPress('Tab', 4);
107
+ cy.get('input[data-test-subj="cy-input-one"]').focus();
108
+ cy.repeatRealPress('Tab', 3);
109
109
  cy.realPress('Enter');
110
110
  cy.realPress('Tab');
111
111
  cy.get('input[data-test-subj="cy-input-one"]').should('have.focus');
@@ -49,15 +49,13 @@ describe('Single EuiRange', function () {
49
49
  });
50
50
  describe('Keyboard accessibility check', function () {
51
51
  it('has zero violations when the range slider is increased', function () {
52
- cy.realPress('Tab');
53
- cy.get('input#cy-range-single').should('have.focus');
52
+ cy.get('input#cy-range-single').focus();
54
53
  cy.repeatRealPress('ArrowRight', 10);
55
54
  cy.get('output.euiRangeTooltip__value').contains('100 - 110');
56
55
  cy.checkAxe();
57
56
  });
58
57
  it('has zero violations when the range slider is decreased', function () {
59
- cy.realPress('Tab');
60
- cy.get('input#cy-range-single').should('have.focus');
58
+ cy.get('input#cy-range-single').focus();
61
59
  cy.repeatRealPress('ArrowLeft', 10);
62
60
  cy.get('output.euiRangeTooltip__value').contains('100 - 100');
63
61
  cy.checkAxe();
@@ -96,8 +94,7 @@ describe('Dual EuiRange', function () {
96
94
  });
97
95
  describe('Keyboard accessibility check', function () {
98
96
  it('has zero violations when the range sliders are adjusted', function () {
99
- cy.realPress('Tab');
100
- cy.get('div[role="slider"]').first().should('have.focus');
97
+ cy.get('div[role="slider"]').first().focus();
101
98
  cy.repeatRealPress('ArrowLeft', 3);
102
99
  cy.get('div[role="slider"]').first().invoke('attr', 'aria-valuenow').should('eq', '70');
103
100
  cy.realPress('Tab');
@@ -138,8 +135,7 @@ describe('Highlight Area EuiRange', function () {
138
135
  });
139
136
  describe('Keyboard accessibility check', function () {
140
137
  it('has zero violations when the highlight area is adjusted using arrow keys', function () {
141
- cy.realPress('Tab');
142
- cy.get('div[role="slider"]').first().should('have.focus');
138
+ cy.get('div[role="slider"]').first().focus();
143
139
  cy.repeatRealPress('ArrowLeft', 3);
144
140
  cy.get('div[role="slider"]').first().invoke('attr', 'aria-valuetext').should('eq', '37, 57');
145
141
  cy.checkAxe();
@@ -184,8 +180,7 @@ describe('Highlight Area EuiRange', function () {
184
180
  });
185
181
  describe('Keyboard accessibility check', function () {
186
182
  it('updates the range value using arrow keys with input[type="number"]', function () {
187
- cy.realPress('Tab');
188
- cy.get('input#cy-range-in-dropdown').should('have.focus');
183
+ cy.get('input#cy-range-in-dropdown').focus();
189
184
  cy.repeatRealPress('ArrowUp', 10);
190
185
  cy.get('input[type="range"]').first().invoke('attr', 'value').should('eq', '30');
191
186
  cy.checkAxe();
@@ -214,6 +214,7 @@ export var EuiSuperSelect = /*#__PURE__*/function (_Component) {
214
214
  dropdownDisplay = option.dropdownDisplay,
215
215
  inputDisplay = option.inputDisplay,
216
216
  optionRest = _objectWithoutProperties(option, _excluded2);
217
+ if (value == null) return;
217
218
  return ___EmotionJSX(EuiContextMenuItem, _extends({
218
219
  key: index,
219
220
  className: itemClasses,
@@ -227,7 +228,7 @@ export var EuiSuperSelect = /*#__PURE__*/function (_Component) {
227
228
  return _this2.setItemNode(node, index);
228
229
  },
229
230
  role: "option",
230
- id: value,
231
+ id: String(value),
231
232
  "aria-selected": valueOfSelected === value
232
233
  }, optionRest), dropdownDisplay || inputDisplay);
233
234
  });
@@ -253,7 +254,7 @@ export var EuiSuperSelect = /*#__PURE__*/function (_Component) {
253
254
  "aria-describedby": _this2.describedById,
254
255
  className: "euiSuperSelect__listbox",
255
256
  role: "listbox",
256
- "aria-activedescendant": valueOfSelected,
257
+ "aria-activedescendant": valueOfSelected != null ? String(valueOfSelected) : undefined,
257
258
  tabIndex: 0
258
259
  }, items);
259
260
  }));
@@ -9,7 +9,7 @@ var _excluded = ["className", "options", "id", "name", "fullWidth", "isLoading",
9
9
  * Side Public License, v 1.
10
10
  */
11
11
 
12
- import React, { Fragment } from 'react';
12
+ import React, { useMemo } from 'react';
13
13
  import classNames from 'classnames';
14
14
  import { EuiFormControlLayout } from '../form_control_layout';
15
15
  import { getFormControlClassNameForIconCount } from '../form_control_layout/_num_icons';
@@ -19,8 +19,7 @@ export var EuiSuperSelectControl = function EuiSuperSelectControl(props) {
19
19
  var _useFormContext = useFormContext(),
20
20
  defaultFullWidth = _useFormContext.defaultFullWidth;
21
21
  var className = props.className,
22
- _props$options = props.options,
23
- options = _props$options === void 0 ? [] : _props$options,
22
+ options = props.options,
24
23
  id = props.id,
25
24
  name = props.name,
26
25
  _props$fullWidth = props.fullWidth,
@@ -51,27 +50,21 @@ export var EuiSuperSelectControl = function EuiSuperSelectControl(props) {
51
50
  'euiSuperSelectControl-isLoading': isLoading,
52
51
  'euiSuperSelectControl-isInvalid': isInvalid
53
52
  }, className);
54
-
55
- // React HTML input can not have both value and defaultValue properties.
56
- // https://reactjs.org/docs/uncontrolled-components.html#default-values
57
- var selectDefaultValue;
58
- if (value == null) {
59
- selectDefaultValue = defaultValue || '';
60
- }
61
- var selectedValue;
62
- if (value) {
63
- var selectedOption = options.find(function (option) {
64
- return option.value === value;
65
- });
66
- selectedValue = selectedOption ? selectedOption.inputDisplay : selectedValue;
67
- }
53
+ var inputValue = value != null ? value : defaultValue;
54
+ var selectedValue = useMemo(function () {
55
+ if (inputValue != null) {
56
+ var selectedOption = options === null || options === void 0 ? void 0 : options.find(function (option) {
57
+ return option.value === inputValue;
58
+ });
59
+ return selectedOption ? selectedOption.inputDisplay : undefined;
60
+ }
61
+ }, [inputValue, options]);
68
62
  var showPlaceholder = !!placeholder && !selectedValue;
69
- return ___EmotionJSX(Fragment, null, ___EmotionJSX("input", {
63
+ return ___EmotionJSX(React.Fragment, null, ___EmotionJSX("input", {
70
64
  type: "hidden",
71
65
  id: id,
72
66
  name: name,
73
- defaultValue: selectDefaultValue,
74
- value: value,
67
+ value: String(inputValue !== null && inputValue !== void 0 ? inputValue : ''),
75
68
  readOnly: readOnly
76
69
  }), ___EmotionJSX(EuiFormControlLayout, {
77
70
  isDropdown: true,
@@ -327,7 +327,7 @@ describe('EuiHeader', function () {
327
327
  cy.checkAxe();
328
328
  });
329
329
  it('has zero violations when a hidden breadcrumb is expanded', function () {
330
- cy.get('button[aria-label="See collapsed breadcrumbs"]').realClick();
330
+ cy.get('button[title="See collapsed breadcrumbs"]').realClick();
331
331
  cy.get('a[data-test-subj="cy-breadcrumb-hidden"]').should('exist');
332
332
  cy.checkAxe();
333
333
  });
@@ -70,6 +70,7 @@ var EuiI18n = function EuiI18n(props) {
70
70
  i18nMapping: mapping,
71
71
  i18nMappingFunc: mappingFunc,
72
72
  valueDefault: props.defaults[idx],
73
+ values: props.values,
73
74
  render: render
74
75
  });
75
76
  }));
@@ -42,8 +42,7 @@ describe('EuiImage', function () {
42
42
  cy.checkAxe();
43
43
  });
44
44
  it('has zero violations on keyboard interaction', function () {
45
- cy.realPress('Tab');
46
- cy.get('button[data-test-subj="activateFullScreenButton"]').should('have.focus');
45
+ cy.get('button[data-test-subj="activateFullScreenButton"]').focus();
47
46
  cy.realPress('Enter');
48
47
  cy.get('button[data-test-subj="deactivateFullScreenButton"]').should('exist');
49
48
  cy.get('button[data-test-subj="deactivateFullScreenButton"]').should('have.focus');