@elastic/eui 104.1.0 → 105.0.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 (320) hide show
  1. package/es/components/avatar/avatar.js +1 -1
  2. package/es/components/badge/badge.js +1 -1
  3. package/es/components/badge/beta_badge/beta_badge.js +1 -1
  4. package/es/components/basic_table/basic_table.js +4 -4
  5. package/es/components/basic_table/in_memory_table.js +4 -4
  6. package/es/components/button/button.js +1 -1
  7. package/es/components/button/button_display/_button_display.js +1 -1
  8. package/es/components/button/button_display/_button_display_content.js +1 -1
  9. package/es/components/button/button_empty/button_empty.js +1 -1
  10. package/es/components/button/button_group/button_group.js +1 -1
  11. package/es/components/button/button_group/button_group_button.js +1 -1
  12. package/es/components/button/button_icon/button_icon.js +1 -1
  13. package/es/components/call_out/call_out.js +1 -1
  14. package/es/components/card/card.js +2 -2
  15. package/es/components/card/card_select/card_select.js +1 -1
  16. package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  17. package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  18. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  19. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  20. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  21. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  22. package/es/components/combo_box/combo_box.a11y.js +53 -2
  23. package/es/components/combo_box/combo_box.js +26 -8
  24. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +9 -3
  25. package/es/components/comment_list/comment.js +2 -2
  26. package/es/components/comment_list/comment_event.js +1 -1
  27. package/es/components/comment_list/comment_list.js +2 -2
  28. package/es/components/comment_list/comment_timeline.js +1 -1
  29. package/es/components/context_menu/context_menu_item.js +1 -1
  30. package/es/components/datagrid/body/cell/data_grid_cell.js +12 -12
  31. package/es/components/datagrid/body/cell/data_grid_cell.styles.js +9 -4
  32. package/es/components/datagrid/body/data_grid_body.js +7 -7
  33. package/es/components/datagrid/body/data_grid_body_custom.js +7 -7
  34. package/es/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  35. package/es/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  36. package/es/components/datagrid/controls/column_sorting.js +7 -7
  37. package/es/components/datagrid/controls/column_sorting_draggable.js +1 -1
  38. package/es/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  39. package/es/components/datagrid/data_grid.styles.js +4 -1
  40. package/es/components/datagrid/utils/in_memory.js +6 -6
  41. package/es/components/date_picker/date_picker.js +2 -2
  42. package/es/components/date_picker/date_picker_range.js +1 -1
  43. package/es/components/empty_prompt/empty_prompt.js +1 -1
  44. package/es/components/facet/facet_button.js +1 -1
  45. package/es/components/filter_group/filter_select_item.js +21 -17
  46. package/es/components/flyout/flyout.js +88 -21
  47. package/es/components/flyout/flyout.styles.js +9 -5
  48. package/es/components/flyout/flyout_child.js +209 -0
  49. package/es/components/flyout/flyout_child.styles.js +31 -0
  50. package/es/components/flyout/flyout_child_manager.js +112 -0
  51. package/es/components/flyout/flyout_context.js +16 -0
  52. package/es/components/flyout/index.js +3 -1
  53. package/es/components/flyout/sessions/flyout_provider.js +109 -0
  54. package/es/components/flyout/sessions/flyout_reducer.js +217 -0
  55. package/es/components/flyout/sessions/index.js +10 -0
  56. package/es/components/flyout/sessions/types.js +1 -0
  57. package/es/components/flyout/sessions/use_eui_flyout.js +94 -0
  58. package/es/components/form/field_number/field_number.js +2 -2
  59. package/es/components/form/field_text/field_text.js +2 -2
  60. package/es/components/form/form_control_layout/form_control_layout.js +2 -2
  61. package/es/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  62. package/es/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  63. package/es/components/form/text_area/text_area.js +2 -2
  64. package/es/components/header/header_links/header_link.js +1 -1
  65. package/es/components/header/header_links/header_links.js +1 -1
  66. package/es/components/header/header_logo/header_logo.js +1 -1
  67. package/es/components/header/header_section/header_section_item_button.js +1 -1
  68. package/es/components/icon/icon.js +1 -1
  69. package/es/components/icon/icon_map.js +1 -4
  70. package/es/components/key_pad_menu/key_pad_menu_item.js +1 -1
  71. package/es/components/list_group/list_group.js +2 -2
  72. package/es/components/list_group/list_group_item.js +2 -2
  73. package/es/components/list_group/list_group_item_extra_action.js +1 -1
  74. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  75. package/es/components/loading/loading_logo.js +1 -1
  76. package/es/components/markdown_editor/markdown_editor.js +1 -1
  77. package/es/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  78. package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
  79. package/es/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  80. package/es/components/page/page_header/page_header_content.js +1 -1
  81. package/es/components/pagination/pagination_button.js +1 -1
  82. package/es/components/progress/progress.js +51 -11
  83. package/es/components/selectable/selectable_list/selectable_list.js +1 -1
  84. package/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
  85. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  86. package/es/components/table/table_header_cell.js +1 -1
  87. package/es/components/table/table_row.styles.js +11 -6
  88. package/es/components/timeline/timeline_item_icon.js +1 -1
  89. package/es/components/toast/global_toast_list.js +1 -1
  90. package/es/components/toast/toast.js +1 -1
  91. package/es/components/tool_tip/icon_tip.js +1 -1
  92. package/es/themes/amsterdam/global_styling/variables/_components.js +305 -270
  93. package/eui.d.ts +400 -77
  94. package/lib/components/avatar/avatar.js +1 -1
  95. package/lib/components/badge/badge.js +1 -1
  96. package/lib/components/badge/beta_badge/beta_badge.js +1 -1
  97. package/lib/components/basic_table/basic_table.js +4 -4
  98. package/lib/components/basic_table/in_memory_table.js +4 -4
  99. package/lib/components/button/button.js +1 -1
  100. package/lib/components/button/button_display/_button_display.js +1 -1
  101. package/lib/components/button/button_display/_button_display_content.js +1 -1
  102. package/lib/components/button/button_empty/button_empty.js +1 -1
  103. package/lib/components/button/button_group/button_group.js +1 -1
  104. package/lib/components/button/button_group/button_group_button.js +1 -1
  105. package/lib/components/button/button_icon/button_icon.js +1 -1
  106. package/lib/components/call_out/call_out.js +1 -1
  107. package/lib/components/card/card.js +2 -2
  108. package/lib/components/card/card_select/card_select.js +1 -1
  109. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  110. package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  111. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  112. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  113. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  114. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  115. package/lib/components/combo_box/combo_box.a11y.js +53 -2
  116. package/lib/components/combo_box/combo_box.js +26 -8
  117. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +9 -3
  118. package/lib/components/comment_list/comment.js +2 -2
  119. package/lib/components/comment_list/comment_event.js +1 -1
  120. package/lib/components/comment_list/comment_list.js +2 -2
  121. package/lib/components/comment_list/comment_timeline.js +1 -1
  122. package/lib/components/context_menu/context_menu_item.js +1 -1
  123. package/lib/components/datagrid/body/cell/data_grid_cell.js +12 -12
  124. package/lib/components/datagrid/body/cell/data_grid_cell.styles.js +9 -4
  125. package/lib/components/datagrid/body/data_grid_body.js +7 -7
  126. package/lib/components/datagrid/body/data_grid_body_custom.js +7 -7
  127. package/lib/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  128. package/lib/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  129. package/lib/components/datagrid/controls/column_sorting.js +7 -7
  130. package/lib/components/datagrid/controls/column_sorting_draggable.js +1 -1
  131. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  132. package/lib/components/datagrid/data_grid.styles.js +4 -1
  133. package/lib/components/datagrid/utils/in_memory.js +6 -6
  134. package/lib/components/date_picker/date_picker.js +2 -2
  135. package/lib/components/date_picker/date_picker_range.js +1 -1
  136. package/lib/components/empty_prompt/empty_prompt.js +1 -1
  137. package/lib/components/facet/facet_button.js +1 -1
  138. package/lib/components/filter_group/filter_select_item.js +21 -17
  139. package/lib/components/flyout/flyout.js +88 -21
  140. package/lib/components/flyout/flyout.styles.js +10 -6
  141. package/lib/components/flyout/flyout_child.js +217 -0
  142. package/lib/components/flyout/flyout_child.styles.js +37 -0
  143. package/lib/components/flyout/flyout_child_manager.js +120 -0
  144. package/lib/components/flyout/flyout_context.js +21 -0
  145. package/lib/components/flyout/index.js +21 -1
  146. package/lib/components/flyout/sessions/flyout_provider.js +116 -0
  147. package/lib/components/flyout/sessions/flyout_reducer.js +224 -0
  148. package/lib/components/flyout/sessions/index.js +25 -0
  149. package/lib/components/flyout/sessions/types.js +5 -0
  150. package/lib/components/flyout/sessions/use_eui_flyout.js +99 -0
  151. package/lib/components/form/field_number/field_number.js +2 -2
  152. package/lib/components/form/field_text/field_text.js +2 -2
  153. package/lib/components/form/form_control_layout/form_control_layout.js +2 -2
  154. package/lib/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  155. package/lib/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  156. package/lib/components/form/text_area/text_area.js +2 -2
  157. package/lib/components/header/header_links/header_link.js +1 -1
  158. package/lib/components/header/header_links/header_links.js +1 -1
  159. package/lib/components/header/header_logo/header_logo.js +1 -1
  160. package/lib/components/header/header_section/header_section_item_button.js +1 -1
  161. package/lib/components/icon/icon.js +1 -1
  162. package/lib/components/icon/icon_map.js +1 -4
  163. package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -1
  164. package/lib/components/list_group/list_group.js +2 -2
  165. package/lib/components/list_group/list_group_item.js +2 -2
  166. package/lib/components/list_group/list_group_item_extra_action.js +1 -1
  167. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  168. package/lib/components/loading/loading_logo.js +1 -1
  169. package/lib/components/markdown_editor/markdown_editor.js +1 -1
  170. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  171. package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
  172. package/lib/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  173. package/lib/components/page/page_header/page_header_content.js +1 -1
  174. package/lib/components/pagination/pagination_button.js +1 -1
  175. package/lib/components/progress/progress.js +54 -11
  176. package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  177. package/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
  178. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  179. package/lib/components/table/table_header_cell.js +1 -1
  180. package/lib/components/table/table_row.styles.js +11 -6
  181. package/lib/components/timeline/timeline_item_icon.js +1 -1
  182. package/lib/components/toast/global_toast_list.js +1 -1
  183. package/lib/components/toast/toast.js +1 -1
  184. package/lib/components/tool_tip/icon_tip.js +1 -1
  185. package/lib/themes/amsterdam/global_styling/variables/_components.js +305 -270
  186. package/optimize/es/components/combo_box/combo_box.a11y.js +53 -2
  187. package/optimize/es/components/combo_box/combo_box.js +26 -8
  188. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +8 -3
  189. package/optimize/es/components/datagrid/body/cell/data_grid_cell.styles.js +9 -4
  190. package/optimize/es/components/datagrid/data_grid.styles.js +4 -1
  191. package/optimize/es/components/filter_group/filter_select_item.js +20 -17
  192. package/optimize/es/components/flyout/flyout.js +88 -21
  193. package/optimize/es/components/flyout/flyout.styles.js +9 -5
  194. package/optimize/es/components/flyout/flyout_child.js +168 -0
  195. package/optimize/es/components/flyout/flyout_child.styles.js +31 -0
  196. package/optimize/es/components/flyout/flyout_child_manager.js +98 -0
  197. package/optimize/es/components/flyout/flyout_context.js +16 -0
  198. package/optimize/es/components/flyout/index.js +3 -1
  199. package/optimize/es/components/flyout/sessions/flyout_provider.js +104 -0
  200. package/optimize/es/components/flyout/sessions/flyout_reducer.js +209 -0
  201. package/optimize/es/components/flyout/sessions/index.js +10 -0
  202. package/optimize/es/components/flyout/sessions/types.js +1 -0
  203. package/optimize/es/components/flyout/sessions/use_eui_flyout.js +94 -0
  204. package/optimize/es/components/icon/icon_map.js +1 -4
  205. package/optimize/es/components/progress/progress.js +38 -9
  206. package/optimize/es/components/table/table_row.styles.js +11 -6
  207. package/optimize/es/themes/amsterdam/global_styling/variables/_components.js +305 -270
  208. package/optimize/lib/components/combo_box/combo_box.a11y.js +53 -2
  209. package/optimize/lib/components/combo_box/combo_box.js +26 -8
  210. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +8 -3
  211. package/optimize/lib/components/datagrid/body/cell/data_grid_cell.styles.js +9 -4
  212. package/optimize/lib/components/datagrid/data_grid.styles.js +4 -1
  213. package/optimize/lib/components/filter_group/filter_select_item.js +20 -17
  214. package/optimize/lib/components/flyout/flyout.js +88 -21
  215. package/optimize/lib/components/flyout/flyout.styles.js +10 -6
  216. package/optimize/lib/components/flyout/flyout_child.js +176 -0
  217. package/optimize/lib/components/flyout/flyout_child.styles.js +37 -0
  218. package/optimize/lib/components/flyout/flyout_child_manager.js +108 -0
  219. package/optimize/lib/components/flyout/flyout_context.js +21 -0
  220. package/optimize/lib/components/flyout/index.js +21 -1
  221. package/optimize/lib/components/flyout/sessions/flyout_provider.js +114 -0
  222. package/optimize/lib/components/flyout/sessions/flyout_reducer.js +217 -0
  223. package/optimize/lib/components/flyout/sessions/index.js +25 -0
  224. package/optimize/lib/components/flyout/sessions/types.js +5 -0
  225. package/optimize/lib/components/flyout/sessions/use_eui_flyout.js +99 -0
  226. package/optimize/lib/components/icon/icon_map.js +1 -4
  227. package/optimize/lib/components/progress/progress.js +41 -9
  228. package/optimize/lib/components/table/table_row.styles.js +11 -6
  229. package/optimize/lib/themes/amsterdam/global_styling/variables/_components.js +305 -270
  230. package/package.json +4 -4
  231. package/test-env/components/avatar/avatar.js +1 -1
  232. package/test-env/components/badge/badge.js +1 -1
  233. package/test-env/components/badge/beta_badge/beta_badge.js +1 -1
  234. package/test-env/components/basic_table/basic_table.js +4 -4
  235. package/test-env/components/basic_table/in_memory_table.js +4 -4
  236. package/test-env/components/button/button.js +1 -1
  237. package/test-env/components/button/button_display/_button_display.js +1 -1
  238. package/test-env/components/button/button_display/_button_display_content.js +1 -1
  239. package/test-env/components/button/button_empty/button_empty.js +1 -1
  240. package/test-env/components/button/button_group/button_group.js +1 -1
  241. package/test-env/components/button/button_group/button_group_button.js +1 -1
  242. package/test-env/components/button/button_icon/button_icon.js +1 -1
  243. package/test-env/components/call_out/call_out.js +1 -1
  244. package/test-env/components/card/card.js +2 -2
  245. package/test-env/components/card/card_select/card_select.js +1 -1
  246. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  247. package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  248. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  249. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  250. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  251. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  252. package/test-env/components/combo_box/combo_box.a11y.js +53 -2
  253. package/test-env/components/combo_box/combo_box.js +26 -8
  254. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +9 -3
  255. package/test-env/components/comment_list/comment.js +2 -2
  256. package/test-env/components/comment_list/comment_event.js +1 -1
  257. package/test-env/components/comment_list/comment_list.js +2 -2
  258. package/test-env/components/comment_list/comment_timeline.js +1 -1
  259. package/test-env/components/context_menu/context_menu_item.js +1 -1
  260. package/test-env/components/datagrid/body/cell/data_grid_cell.js +12 -12
  261. package/test-env/components/datagrid/body/cell/data_grid_cell.styles.js +9 -4
  262. package/test-env/components/datagrid/body/data_grid_body.js +7 -7
  263. package/test-env/components/datagrid/body/data_grid_body_custom.js +7 -7
  264. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  265. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  266. package/test-env/components/datagrid/controls/column_sorting.js +7 -7
  267. package/test-env/components/datagrid/controls/column_sorting_draggable.js +1 -1
  268. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  269. package/test-env/components/datagrid/data_grid.styles.js +4 -1
  270. package/test-env/components/datagrid/utils/in_memory.js +6 -6
  271. package/test-env/components/date_picker/date_picker.js +2 -2
  272. package/test-env/components/date_picker/date_picker_range.js +1 -1
  273. package/test-env/components/empty_prompt/empty_prompt.js +1 -1
  274. package/test-env/components/facet/facet_button.js +1 -1
  275. package/test-env/components/filter_group/filter_select_item.js +21 -17
  276. package/test-env/components/flyout/flyout.styles.js +10 -6
  277. package/test-env/components/flyout/flyout_child.js +216 -0
  278. package/test-env/components/flyout/flyout_child.styles.js +37 -0
  279. package/test-env/components/flyout/flyout_child_manager.js +117 -0
  280. package/test-env/components/flyout/flyout_context.js +21 -0
  281. package/test-env/components/flyout/index.js +21 -1
  282. package/test-env/components/flyout/sessions/flyout_provider.js +114 -0
  283. package/test-env/components/flyout/sessions/flyout_reducer.js +217 -0
  284. package/test-env/components/flyout/sessions/index.js +25 -0
  285. package/test-env/components/flyout/sessions/types.js +5 -0
  286. package/test-env/components/flyout/sessions/use_eui_flyout.js +99 -0
  287. package/test-env/components/form/field_number/field_number.js +2 -2
  288. package/test-env/components/form/field_text/field_text.js +2 -2
  289. package/test-env/components/form/form_control_layout/form_control_layout.js +2 -2
  290. package/test-env/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  291. package/test-env/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  292. package/test-env/components/form/text_area/text_area.js +2 -2
  293. package/test-env/components/header/header_links/header_link.js +1 -1
  294. package/test-env/components/header/header_links/header_links.js +1 -1
  295. package/test-env/components/header/header_logo/header_logo.js +1 -1
  296. package/test-env/components/header/header_section/header_section_item_button.js +1 -1
  297. package/test-env/components/icon/icon_map.js +1 -4
  298. package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -1
  299. package/test-env/components/list_group/list_group.js +2 -2
  300. package/test-env/components/list_group/list_group_item.js +2 -2
  301. package/test-env/components/list_group/list_group_item_extra_action.js +1 -1
  302. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  303. package/test-env/components/loading/loading_logo.js +1 -1
  304. package/test-env/components/markdown_editor/markdown_editor.js +1 -1
  305. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  306. package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
  307. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  308. package/test-env/components/page/page_header/page_header_content.js +1 -1
  309. package/test-env/components/pagination/pagination_button.js +1 -1
  310. package/test-env/components/progress/progress.js +49 -11
  311. package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
  312. package/test-env/components/selectable/selectable_list/selectable_list_item.js +1 -1
  313. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  314. package/test-env/components/table/table_header_cell.js +1 -1
  315. package/test-env/components/table/table_row.styles.js +11 -6
  316. package/test-env/components/timeline/timeline_item_icon.js +1 -1
  317. package/test-env/components/toast/global_toast_list.js +1 -1
  318. package/test-env/components/toast/toast.js +1 -1
  319. package/test-env/components/tool_tip/icon_tip.js +1 -1
  320. package/test-env/themes/amsterdam/global_styling/variables/_components.js +305 -270
@@ -20,8 +20,9 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
20
20
  /// <reference types="cypress-real-events" />
21
21
  /// <reference types="../../../cypress/support" />
22
22
 
23
- var ComboBox = function ComboBox() {
24
- var _useState = (0, _react.useState)([{
23
+ var ComboBox = function ComboBox(_ref) {
24
+ var initialOptions = _ref.initialOptions;
25
+ var _useState = (0, _react.useState)(initialOptions !== null && initialOptions !== void 0 ? initialOptions : [{
25
26
  label: 'Titan',
26
27
  'data-test-subj': 'titanOption'
27
28
  }, {
@@ -104,4 +105,54 @@ describe('EuiComboBox', function () {
104
105
  cy.checkAxe();
105
106
  });
106
107
  });
108
+ describe('Manual Accessibility check', function () {
109
+ it('sets the correct aria-activedescendant id', function () {
110
+ cy.realPress('Tab');
111
+ cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.focus');
112
+ cy.get('button[data-test-subj="titanOption"]').should('exist');
113
+ cy.realPress('ArrowDown');
114
+ cy.realPress('ArrowDown');
115
+ cy.realPress('ArrowDown');
116
+ cy.get('input[data-test-subj="comboBoxSearchInput"]').invoke('attr', 'aria-activedescendant').should('include', 'option-2');
117
+ cy.realPress('Enter');
118
+ cy.realPress('ArrowDown');
119
+ cy.get('input[data-test-subj="comboBoxSearchInput"]').invoke('attr', 'aria-activedescendant').should('include', 'option-3');
120
+ });
121
+ it('sets the correct aria-activedescendant id with custom option ids', function () {
122
+ cy.realMount((0, _react2.jsx)(ComboBox, {
123
+ initialOptions: [{
124
+ id: 'titan',
125
+ label: 'Titan',
126
+ 'data-test-subj': 'titanOption'
127
+ }, {
128
+ id: 'enceladus',
129
+ label: 'Enceladus',
130
+ 'data-test-subj': 'enceladusOption'
131
+ }, {
132
+ id: 'mimas',
133
+ label: 'Mimas',
134
+ 'data-test-subj': 'mimasOption'
135
+ }, {
136
+ id: 'dione',
137
+ label: 'Dione',
138
+ 'data-test-subj': 'dioneOption'
139
+ }, {
140
+ id: 'iapetus',
141
+ label: 'Iapetus',
142
+ 'data-test-subj': 'iapetusOption'
143
+ }]
144
+ }));
145
+ cy.get('input[data-test-subj="comboBoxSearchInput"]').should('exist');
146
+ cy.realPress('Tab');
147
+ cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.focus');
148
+ cy.get('button[data-test-subj="titanOption"]').should('exist');
149
+ cy.realPress('ArrowDown');
150
+ cy.realPress('ArrowDown');
151
+ cy.realPress('ArrowDown');
152
+ cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.attr', 'aria-activedescendant', 'mimas');
153
+ cy.realPress('Enter');
154
+ cy.realPress('ArrowDown');
155
+ cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.attr', 'aria-activedescendant', 'iapetus');
156
+ });
157
+ });
107
158
  });
@@ -73,6 +73,7 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
73
73
  showPrevSelected: Boolean(_this.props.singleSelection),
74
74
  sortMatchesBy: _this.props.sortMatchesBy
75
75
  }),
76
+ listOptionRefs: [],
76
77
  searchValue: initialSearchValue
77
78
  });
78
79
  (0, _defineProperty2.default)(_this, "rootId", (0, _services.htmlIdGenerator)());
@@ -91,6 +92,16 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
91
92
  (0, _defineProperty2.default)(_this, "listRefCallback", function (ref) {
92
93
  _this.listRefInstance = ref;
93
94
  });
95
+ (0, _defineProperty2.default)(_this, "setListOptionRefs", function (node, index) {
96
+ _this.setState(function (_ref) {
97
+ var listOptionRefs = _ref.listOptionRefs;
98
+ var _listOptionRefs = listOptionRefs;
99
+ _listOptionRefs[index] = node;
100
+ return {
101
+ listOptionRefs: _listOptionRefs
102
+ };
103
+ });
104
+ });
94
105
  (0, _defineProperty2.default)(_this, "openList", function () {
95
106
  _this.setState({
96
107
  isListOpen: true
@@ -107,9 +118,9 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
107
118
  if (!_this.state.matchingOptions.length) {
108
119
  return;
109
120
  }
110
- _this.setState(function (_ref) {
111
- var activeOptionIndex = _ref.activeOptionIndex,
112
- matchingOptions = _ref.matchingOptions;
121
+ _this.setState(function (_ref2) {
122
+ var activeOptionIndex = _ref2.activeOptionIndex,
123
+ matchingOptions = _ref2.matchingOptions;
113
124
  var nextActiveOptionIndex;
114
125
  if (activeOptionIndex < 0) {
115
126
  // If this is the beginning of the user's keyboard navigation of the menu, then we'll focus
@@ -225,8 +236,8 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
225
236
  });
226
237
  });
227
238
  var numberOfSelectedOptions = 0;
228
- selectedOptions.forEach(function (_ref2) {
229
- var label = _ref2.label;
239
+ selectedOptions.forEach(function (_ref3) {
240
+ var label = _ref3.label;
230
241
  var trimmedLabel = (0, _matching_options.transformForCaseSensitivity)(label.trim(), isCaseSensitive);
231
242
  if (flattenOptions.findIndex(function (option) {
232
243
  return option.label === trimmedLabel;
@@ -368,8 +379,13 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
368
379
  return _this.closeList();
369
380
  });
370
381
  } else {
371
- _this.setState({
372
- activeOptionIndex: _this.state.matchingOptions.indexOf(addedOption)
382
+ _this.setState(function (_ref4) {
383
+ var listOptionRefs = _ref4.listOptionRefs,
384
+ matchingOptions = _ref4.matchingOptions;
385
+ return {
386
+ listOptionRefs: listOptionRefs.slice(0, matchingOptions.length - 1),
387
+ activeOptionIndex: matchingOptions.indexOf(addedOption)
388
+ };
373
389
  });
374
390
  }
375
391
  });
@@ -522,6 +538,7 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
522
538
  isCaseSensitive: isCaseSensitive,
523
539
  isLoading: isLoading,
524
540
  listRef: _this2.listRefCallback,
541
+ setListOptionRefs: _this2.setListOptionRefs,
525
542
  matchingOptions: matchingOptions,
526
543
  onCloseList: _this2.closeList,
527
544
  onCreateOption: onCreateOption,
@@ -552,6 +569,7 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
552
569
  * https://www.w3.org/TR/wai-aria-practices-1.2/examples/combobox/combobox-autocomplete-list.html
553
570
  */
554
571
  (0, _react2.jsx)(_services.RenderWithEuiTheme, null, function (euiTheme) {
572
+ var _this2$state$listOpti, _this2$state$listOpti2;
555
573
  var cssStyles = [_combo_box.euiComboBoxStyles.euiComboBox, fullWidth ? _combo_box.euiComboBoxStyles.fullWidth : (0, _global_styling.logicalStyle)('max-width', (0, _form.euiFormMaxWidth)(euiTheme))];
556
574
  return (0, _react2.jsx)("div", (0, _extends2.default)({
557
575
  css: cssStyles
@@ -575,7 +593,7 @@ var EuiComboBox = exports.EuiComboBox = /*#__PURE__*/function (_Component) {
575
593
  "aria-live": "off",
576
594
  input: (0, _react2.jsx)(_combo_box_input.EuiComboBoxInput, {
577
595
  compressed: compressed,
578
- focusedOptionId: _this2.hasActiveOption() ? _this2.rootId("_option-".concat(_this2.state.activeOptionIndex)) : undefined,
596
+ focusedOptionId: _this2.hasActiveOption() ? (_this2$state$listOpti = (_this2$state$listOpti2 = _this2.state.listOptionRefs[_this2.state.activeOptionIndex]) === null || _this2$state$listOpti2 === void 0 ? void 0 : _this2$state$listOpti2.id) !== null && _this2$state$listOpti !== void 0 ? _this2$state$listOpti : _this2.rootId("_option-".concat(_this2.state.activeOptionIndex)) : undefined,
579
597
  fullWidth: fullWidth,
580
598
  hasSelectedOptions: selectedOptions.length > 0,
581
599
  id: inputId,
@@ -34,7 +34,7 @@ var _combo_box_options_list = require("./combo_box_options_list.styles");
34
34
  var _react2 = require("@emotion/react");
35
35
  var _excluded = ["children"],
36
36
  _excluded2 = ["key", "isGroupLabelOption", "label", "value", "prepend", "append", "truncationProps"],
37
- _excluded3 = ["data-test-subj", "activeOptionIndex", "areAllOptionsSelected", "customOptionText", "fullWidth", "getSelectedOptionForSearchValue", "isCaseSensitive", "isLoading", "listRef", "matchingOptions", "onCloseList", "onCreateOption", "onOptionClick", "onOptionEnterKey", "onScroll", "options", "renderOption", "rootId", "rowHeight", "scrollToIndex", "searchValue", "selectedOptions", "singleSelection", "delimiter", "truncationProps", "listboxAriaLabel"];
37
+ _excluded3 = ["data-test-subj", "activeOptionIndex", "areAllOptionsSelected", "customOptionText", "fullWidth", "getSelectedOptionForSearchValue", "isCaseSensitive", "isLoading", "listRef", "matchingOptions", "onCloseList", "onCreateOption", "onOptionClick", "onOptionEnterKey", "onScroll", "options", "renderOption", "rootId", "rowHeight", "scrollToIndex", "searchValue", "selectedOptions", "singleSelection", "delimiter", "truncationProps", "listboxAriaLabel", "setListOptionRefs"];
38
38
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
39
39
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
40
40
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -97,7 +97,8 @@ var EuiComboBoxOptionsList = exports.EuiComboBoxOptionsList = /*#__PURE__*/funct
97
97
  renderOption = _this$props.renderOption,
98
98
  searchValue = _this$props.searchValue,
99
99
  rootId = _this$props.rootId,
100
- matchingOptions = _this$props.matchingOptions;
100
+ matchingOptions = _this$props.matchingOptions,
101
+ setListOptionRefs = _this$props.setListOptionRefs;
101
102
  var optionIndex = matchingOptions.indexOf(option);
102
103
  var hasTruncationProps = _this.props.truncationProps || _truncationProps;
103
104
  var truncationProps = hasTruncationProps ? // Individual truncation settings should override component prop
@@ -128,7 +129,10 @@ var EuiComboBoxOptionsList = exports.EuiComboBoxOptionsList = /*#__PURE__*/funct
128
129
  id: rootId("_option-".concat(index)),
129
130
  title: label,
130
131
  "aria-setsize": matchingOptions.length,
131
- "aria-posinset": optionIndex + 1
132
+ "aria-posinset": optionIndex + 1,
133
+ forwardRef: function forwardRef(ref) {
134
+ return setListOptionRefs(ref, index);
135
+ }
132
136
  }, rest), (0, _react2.jsx)("span", {
133
137
  className: "euiComboBoxOption__contentWrapper"
134
138
  }, (0, _react2.jsx)(_utils.EuiComboBoxOptionAppendPrepend, {
@@ -220,6 +224,7 @@ var EuiComboBoxOptionsList = exports.EuiComboBoxOptionsList = /*#__PURE__*/funct
220
224
  delimiter = _this$props2.delimiter,
221
225
  truncationProps = _this$props2.truncationProps,
222
226
  listboxAriaLabel = _this$props2.listboxAriaLabel,
227
+ setListOptionRefs = _this$props2.setListOptionRefs,
223
228
  rest = (0, _objectWithoutProperties2.default)(_this$props2, _excluded3);
224
229
  var emptyStateContent;
225
230
  if (isLoading) {
@@ -15,8 +15,9 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
15
15
  */
16
16
  var euiDataGridCellOutlineStyles = exports.euiDataGridCellOutlineStyles = function euiDataGridCellOutlineStyles(_ref2) {
17
17
  var euiTheme = _ref2.euiTheme;
18
- var focusColor = euiTheme.colors.borderStrongPrimary;
19
- var hoverColor = euiTheme.colors.borderStrongText;
18
+ var focusColor = euiTheme.components.dataGridRowBorderActive;
19
+ var hoverColor = euiTheme.components.dataGridRowBorderHover;
20
+ var markedColor = euiTheme.components.dataGridRowBorderMarked;
20
21
  var outlineWidth = euiTheme.border.width.thick;
21
22
  var borderRadius = (0, _global_styling.mathWithUnits)(euiTheme.border.radius.medium, function (x) {
22
23
  return x / 2;
@@ -30,7 +31,10 @@ var euiDataGridCellOutlineStyles = exports.euiDataGridCellOutlineStyles = functi
30
31
  focusColor: focusColor,
31
32
  focusStyles: "\n /* Remove outline as we're handling it manually. Needed to override global styles */\n &:focus-visible {\n outline: none;\n }\n\n &::after {\n content: '';\n /* We want this to be visually on top of cell content but not interactive */\n z-index: 2;\n pointer-events: none;\n position: absolute;\n inset: 0;\n border: ".concat(outlineWidth, " solid ").concat(focusColor, ";\n border-radius: ").concat(borderRadius, ";\n }\n "),
32
33
  hoverColor: hoverColor,
33
- hoverStyles: "\n &::after {\n border-color: ".concat(hoverColor, ";\n }\n ")
34
+ hoverStyles: "\n &::after {\n border-color: ".concat(hoverColor, ";\n }\n "),
35
+ markedColor: markedColor,
36
+ // marked styles are used in `data_grid.styles.ts`
37
+ markedStyles: "\n &::after {\n border-color: ".concat(markedColor, ";\n }\n\n .euiDataGridRowCell__actions {\n background-color: ").concat(markedColor, ";\n border-color: ").concat(markedColor, ";\n }\n ")
34
38
  };
35
39
  };
36
40
  var euiDataGridCellOutlineSelectors = exports.euiDataGridCellOutlineSelectors = function euiDataGridCellOutlineSelectors() {
@@ -72,7 +76,8 @@ var euiDataGridCellOutlineSelectors = exports.euiDataGridCellOutlineSelectors =
72
76
  outline: {
73
77
  show: is(selectors(hover, focus, isOpen, isEntered)),
74
78
  hover: hoverNot(selectors(focus, focusWithin, isOpen)),
75
- focusTrapped: _(isEntered)
79
+ focusTrapped: _(isEntered),
80
+ marked: is(selectors(focus, isOpen))
76
81
  },
77
82
  actions: {
78
83
  hoverZone: hoverNot(selectors(focus, isOpen)),
@@ -7,6 +7,7 @@ exports.euiDataGridVariables = exports.euiDataGridStyles = void 0;
7
7
  var _react = require("@emotion/react");
8
8
  var _global_styling = require("../../global_styling");
9
9
  var _high_contrast = require("../../global_styling/functions/high_contrast");
10
+ var _data_grid_cell = require("./body/cell/data_grid_cell.styles");
10
11
  /*
11
12
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
12
13
  * or more contributor license agreements. Licensed under the Elastic License
@@ -49,13 +50,15 @@ var euiDataGridStyles = exports.euiDataGridStyles = function euiDataGridStyles(e
49
50
  _cellPadding = _euiDataGridVariables.cellPadding,
50
51
  lineHeight = _euiDataGridVariables.lineHeight,
51
52
  _fontSize = _euiDataGridVariables.fontSize;
53
+ var _euiDataGridCellOutli = (0, _data_grid_cell.euiDataGridCellOutlineSelectors)(),
54
+ outlineSelectors = _euiDataGridCellOutli.outline;
52
55
  var borderColors = {
53
56
  default: highContrastMode ? euiTheme.border.color : euiTheme.components.dataGridBorderColor,
54
57
  vertical: highContrastMode ? euiTheme.border.color : euiTheme.components.dataGridVerticalLineBorderColor
55
58
  };
56
59
  var border = "".concat(euiTheme.border.width.thin, " solid ").concat(borderColors.default);
57
60
  return {
58
- euiDataGrid: /*#__PURE__*/(0, _react.css)("display:flex;flex-direction:column;align-items:stretch;", (0, _global_styling.logicalCSS)('height', '100%'), " overflow:hidden;*:where(& .euiDataGridRow){background-color:", euiTheme.components.dataGridRowBackground, ";}*:where(&.euiDataGrid--rowHoverHighlight .euiDataGridRow:hover){background-color:", euiTheme.components.dataGridRowBackgroundHover, ";}*:where(& .euiDataGridRow--selected){background-color:", euiTheme.components.dataGridRowBackgroundSelect, ";}*:where(\n &.euiDataGrid--rowHoverHighlight .euiDataGridRow--selected:hover\n ){background-color:", euiTheme.components.dataGridRowBackgroundSelectHover, ";}*:where(&.euiDataGrid--stripes .euiDataGridRow){background-color:", euiTheme.components.dataGridRowStripesBackground, ";}*:where(&.euiDataGrid--stripes .euiDataGridRow--striped){background-color:", euiTheme.components.dataGridRowStripesBackgroundStriped, ";}*:where(\n &.euiDataGrid--stripes.euiDataGrid--rowHoverHighlight\n .euiDataGridRow:hover\n ){background-color:", euiTheme.components.dataGridRowStripesBackgroundHover, ";}*:where(\n &.euiDataGrid--stripes.euiDataGrid--rowHoverHighlight\n .euiDataGridRow--striped:hover\n ){background-color:", euiTheme.components.dataGridRowStripesBackgroundStripedHover, ";}*:where(&.euiDataGrid--stripes .euiDataGridRow--selected){background-color:", euiTheme.components.dataGridRowStripesBackgroundSelect, ";}*:where(\n &.euiDataGrid--stripes.euiDataGrid--rowHoverHighlight\n .euiDataGridRow--selected:hover\n ){background-color:", euiTheme.components.dataGridRowStripesBackgroundSelectHover, ";}*:where(&.euiDataGrid--rowHoverHighlight .euiDataGridRow)::before{content:'';position:absolute;z-index:-1;pointer-events:none;inset:0;background-color:", euiTheme.components.dataGridRowBackground, ";};label:euiDataGrid;"),
61
+ euiDataGrid: /*#__PURE__*/(0, _react.css)("display:flex;flex-direction:column;align-items:stretch;", (0, _global_styling.logicalCSS)('height', '100%'), " overflow:hidden;*:where(& .euiDataGridRow){background-color:", euiTheme.components.dataGridRowBackground, ";}*:where(&.euiDataGrid--rowHoverHighlight .euiDataGridRow:hover){background-color:", euiTheme.components.dataGridRowBackgroundHover, ";}*:where(& .euiDataGridRow--selected){background-color:", euiTheme.components.dataGridRowBackgroundSelect, ";}*:where(& .euiDataGridRow--marked){background-color:", euiTheme.components.dataGridRowBackgroundMarked, ";&:hover{background-color:", euiTheme.components.dataGridRowBackgroundMarkedHover, ";}.euiDataGridRowCell.euiDataGridRowCell{", outlineSelectors.marked, "{", (0, _data_grid_cell.euiDataGridCellOutlineStyles)(euiThemeContext).markedStyles, ";}}}*:where(\n &.euiDataGrid--rowHoverHighlight .euiDataGridRow--selected:hover\n ){background-color:", euiTheme.components.dataGridRowBackgroundSelectHover, ";}*:where(&.euiDataGrid--stripes .euiDataGridRow){background-color:", euiTheme.components.dataGridRowStripesBackground, ";}*:where(&.euiDataGrid--stripes .euiDataGridRow--striped){background-color:", euiTheme.components.dataGridRowStripesBackgroundStriped, ";}*:where(\n &.euiDataGrid--stripes.euiDataGrid--rowHoverHighlight\n .euiDataGridRow:hover\n ){background-color:", euiTheme.components.dataGridRowStripesBackgroundHover, ";}*:where(\n &.euiDataGrid--stripes.euiDataGrid--rowHoverHighlight\n .euiDataGridRow--striped:hover\n ){background-color:", euiTheme.components.dataGridRowStripesBackgroundStripedHover, ";}*:where(&.euiDataGrid--stripes .euiDataGridRow--selected){background-color:", euiTheme.components.dataGridRowStripesBackgroundSelect, ";}*:where(\n &.euiDataGrid--stripes.euiDataGrid--rowHoverHighlight\n .euiDataGridRow--selected:hover\n ){background-color:", euiTheme.components.dataGridRowStripesBackgroundSelectHover, ";}*:where(&.euiDataGrid--rowHoverHighlight .euiDataGridRow)::before{content:'';position:absolute;z-index:-1;pointer-events:none;inset:0;background-color:", euiTheme.components.dataGridRowBackground, ";};label:euiDataGrid;"),
59
62
  cellPadding: {
60
63
  cellPadding: function cellPadding(size) {
61
64
  return /*#__PURE__*/(0, _react.css)(".euiDataGridHeaderCell,.euiDataGridRowCell__content{padding:", _cellPadding[size], ";}.euiDataGridRowCell__content--lineCountHeight,.euiDataGridRowCell__content--autoBelowLineCountHeight{", (0, _high_contrast.highContrastModeStyles)(euiThemeContext, {
@@ -22,7 +22,7 @@ var _tool_tip = require("../tool_tip");
22
22
  var _icon = require("../icon");
23
23
  var _filter_select_item = require("./filter_select_item.styles");
24
24
  var _react2 = require("@emotion/react");
25
- var _excluded = ["theme", "children", "className", "disabled", "checked", "isFocused", "showIcons", "toolTipContent", "toolTipProps", "style"];
25
+ var _excluded = ["theme", "children", "className", "disabled", "checked", "isFocused", "showIcons", "toolTipContent", "toolTipProps", "style", "forwardRef"];
26
26
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
27
27
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
28
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -69,6 +69,11 @@ var EuiFilterSelectItemClass = exports.EuiFilterSelectItemClass = /*#__PURE__*/f
69
69
  (0, _defineProperty2.default)(_this, "state", {
70
70
  hasFocus: false
71
71
  });
72
+ (0, _defineProperty2.default)(_this, "setButtonRef", function (node) {
73
+ var _this$props$forwardRe, _this$props;
74
+ _this.buttonRef = node;
75
+ (_this$props$forwardRe = (_this$props = _this.props).forwardRef) === null || _this$props$forwardRe === void 0 || _this$props$forwardRe.call(_this$props, node);
76
+ });
72
77
  (0, _defineProperty2.default)(_this, "focus", function () {
73
78
  if (_this.buttonRef) {
74
79
  _this.buttonRef.focus();
@@ -92,19 +97,19 @@ var EuiFilterSelectItemClass = exports.EuiFilterSelectItemClass = /*#__PURE__*/f
92
97
  return (0, _createClass2.default)(EuiFilterSelectItemClass, [{
93
98
  key: "render",
94
99
  value: function render() {
95
- var _this2 = this;
96
- var _this$props = this.props,
97
- theme = _this$props.theme,
98
- children = _this$props.children,
99
- className = _this$props.className,
100
- disabled = _this$props.disabled,
101
- checked = _this$props.checked,
102
- isFocused = _this$props.isFocused,
103
- showIcons = _this$props.showIcons,
104
- toolTipContent = _this$props.toolTipContent,
105
- toolTipProps = _this$props.toolTipProps,
106
- style = _this$props.style,
107
- rest = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
100
+ var _this$props2 = this.props,
101
+ theme = _this$props2.theme,
102
+ children = _this$props2.children,
103
+ className = _this$props2.className,
104
+ disabled = _this$props2.disabled,
105
+ checked = _this$props2.checked,
106
+ isFocused = _this$props2.isFocused,
107
+ showIcons = _this$props2.showIcons,
108
+ toolTipContent = _this$props2.toolTipContent,
109
+ toolTipProps = _this$props2.toolTipProps,
110
+ style = _this$props2.style,
111
+ forwardRef = _this$props2.forwardRef,
112
+ rest = (0, _objectWithoutProperties2.default)(_this$props2, _excluded);
108
113
  var styles = (0, _filter_select_item.euiFilterSelectItemStyles)(theme);
109
114
  var cssStyles = [styles.euiFilterSelectItem, isFocused && styles.isFocused];
110
115
  var classes = (0, _classnames.default)('euiFilterSelectItem', className);
@@ -136,9 +141,7 @@ var EuiFilterSelectItemClass = exports.EuiFilterSelectItemClass = /*#__PURE__*/f
136
141
  }));
137
142
  }
138
143
  var optionItem = (0, _react2.jsx)("button", (0, _extends2.default)({
139
- ref: function ref(_ref) {
140
- return _this2.buttonRef = _ref;
141
- },
144
+ ref: this.setButtonRef,
142
145
  role: "option",
143
146
  type: "button",
144
147
  "aria-selected": checked === 'on',
@@ -23,6 +23,8 @@ var _portal = require("../portal");
23
23
  var _accessibility = require("../accessibility");
24
24
  var _flyout_close_button = require("./_flyout_close_button");
25
25
  var _flyout = require("./flyout.styles");
26
+ var _flyout_child = require("./flyout_child");
27
+ var _flyout_child_manager = require("./flyout_child_manager");
26
28
  var _react2 = require("@emotion/react");
27
29
  var _excluded = ["className", "children", "as", "hideCloseButton", "closeButtonProps", "closeButtonPosition", "onClose", "ownFocus", "side", "size", "paddingSize", "maxWidth", "style", "maskProps", "type", "outsideClickCloses", "pushMinBreakpoint", "pushAnimation", "focusTrapProps", "includeFixedHeadersInFocusTrap", "aria-describedby"];
28
30
  /*
@@ -56,7 +58,7 @@ var EuiFlyout = exports.EuiFlyout = /*#__PURE__*/(0, _react.forwardRef)(function
56
58
  hideCloseButton = _ref$hideCloseButton === void 0 ? false : _ref$hideCloseButton,
57
59
  closeButtonProps = _ref.closeButtonProps,
58
60
  _ref$closeButtonPosit = _ref.closeButtonPosition,
59
- closeButtonPosition = _ref$closeButtonPosit === void 0 ? 'inside' : _ref$closeButtonPosit,
61
+ _closeButtonPosition = _ref$closeButtonPosit === void 0 ? 'inside' : _ref$closeButtonPosit,
60
62
  onClose = _ref.onClose,
61
63
  _ref$ownFocus = _ref.ownFocus,
62
64
  ownFocus = _ref$ownFocus === void 0 ? true : _ref$ownFocus,
@@ -84,6 +86,42 @@ var EuiFlyout = exports.EuiFlyout = /*#__PURE__*/(0, _react.forwardRef)(function
84
86
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
85
87
  var Element = as || defaultElement;
86
88
  var maskRef = (0, _react.useRef)(null);
89
+
90
+ // Ref for the main flyout element to pass to context
91
+ var internalParentFlyoutRef = (0, _react.useRef)(null);
92
+ var _useState = (0, _react.useState)(false),
93
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
94
+ isChildFlyoutOpen = _useState2[0],
95
+ setIsChildFlyoutOpen = _useState2[1];
96
+ var _useState3 = (0, _react.useState)('side-by-side'),
97
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
98
+ childLayoutMode = _useState4[0],
99
+ setChildLayoutMode = _useState4[1];
100
+
101
+ // Check for child flyout
102
+ var childFlyoutElement = _react.default.Children.toArray(children).find(function (child) {
103
+ return /*#__PURE__*/_react.default.isValidElement(child) && (child.type === _flyout_child.EuiFlyoutChild || child.type.displayName === 'EuiFlyoutChild');
104
+ });
105
+ var hasChildFlyout = !!childFlyoutElement;
106
+
107
+ // Validate props, determine close button position and set child flyout classes
108
+ var closeButtonPosition;
109
+ var childFlyoutClasses = [];
110
+ if (hasChildFlyout) {
111
+ if (side !== 'right') {
112
+ throw new Error('EuiFlyout: When an EuiFlyoutChild is present, the `side` prop of EuiFlyout must be "right".');
113
+ }
114
+ if (!isEuiFlyoutSizeNamed(size) || !['s', 'm'].includes(size)) {
115
+ throw new Error("EuiFlyout: When an EuiFlyoutChild is present, the `size` prop of EuiFlyout must be \"s\" or \"m\". Received \"".concat(size, "\"."));
116
+ }
117
+ if (_closeButtonPosition !== 'inside') {
118
+ throw new Error('EuiFlyout: When an EuiFlyoutChild is present, the `closeButtonPosition` prop of EuiFlyout must be "inside".');
119
+ }
120
+ closeButtonPosition = 'inside';
121
+ childFlyoutClasses = ['euiFlyout--hasChild', "euiFlyout--hasChild--".concat(childLayoutMode), "euiFlyout--hasChild--".concat(childFlyoutElement.props.size || 's')];
122
+ } else {
123
+ closeButtonPosition = _closeButtonPosition;
124
+ }
87
125
  var windowIsLargeEnoughToPush = (0, _services.useIsWithinMinBreakpoint)(pushMinBreakpoint);
88
126
  var isPushed = type === 'push' && windowIsLargeEnoughToPush;
89
127
 
@@ -91,11 +129,11 @@ var EuiFlyout = exports.EuiFlyout = /*#__PURE__*/(0, _react.forwardRef)(function
91
129
  * Setting up the refs on the actual flyout element in order to
92
130
  * accommodate for the `isPushed` state by adding padding to the body equal to the width of the element
93
131
  */
94
- var _useState = (0, _react.useState)(null),
95
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
96
- resizeRef = _useState2[0],
97
- setResizeRef = _useState2[1];
98
- var setRef = (0, _services.useCombinedRefs)([setResizeRef, ref]);
132
+ var _useState5 = (0, _react.useState)(null),
133
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
134
+ resizeRef = _useState6[0],
135
+ setResizeRef = _useState6[1];
136
+ var setRef = (0, _services.useCombinedRefs)([setResizeRef, ref, internalParentFlyoutRef]);
99
137
  var _useResizeObserver = (0, _resize_observer.useResizeObserver)(isPushed ? resizeRef : null, 'width'),
100
138
  width = _useResizeObserver.width;
101
139
  (0, _react.useEffect)(function () {
@@ -142,17 +180,25 @@ var EuiFlyout = exports.EuiFlyout = /*#__PURE__*/(0, _react.forwardRef)(function
142
180
  }, [style, maxWidth, size]);
143
181
  var styles = (0, _services.useEuiMemoizedStyles)(_flyout.euiFlyoutStyles);
144
182
  var cssStyles = [styles.euiFlyout, styles.paddingSizes[paddingSize], isEuiFlyoutSizeNamed(size) && styles[size], maxWidth === false && styles.noMaxWidth, isPushed ? styles.push.push : styles.overlay.overlay, isPushed ? styles.push[side] : styles.overlay[side], isPushed && !pushAnimation && styles.push.noAnimation, styles[side]];
145
- var classes = (0, _classnames.default)('euiFlyout', className);
183
+ var classes = _classnames.default.apply(void 0, ['euiFlyout'].concat((0, _toConsumableArray2.default)(childFlyoutClasses), [className]));
146
184
 
147
185
  /*
148
- * If not disabled, automatically add fixed EuiHeaders as shards
149
- * to EuiFlyout focus traps, to prevent focus fighting
186
+ * Trap focus even when `ownFocus={false}`, otherwise closing
187
+ * the flyout won't return focus to the originating button.
188
+ *
189
+ * Set `clickOutsideDisables={true}` when `ownFocus={false}`
190
+ * to allow non-keyboard users the ability to interact with
191
+ * elements outside the flyout.
192
+ *
193
+ * Set `onClickOutside={onClose}` when `ownFocus` and `type` are the defaults,
194
+ * or if `outsideClickCloses={true}` to close on clicks that target
195
+ * (both mousedown and mouseup) the overlay mask.
150
196
  */
151
197
  var flyoutToggle = (0, _react.useRef)(document.activeElement);
152
- var _useState3 = (0, _react.useState)([]),
153
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
154
- fixedHeaders = _useState4[0],
155
- setFixedHeaders = _useState4[1];
198
+ var _useState7 = (0, _react.useState)([]),
199
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
200
+ fixedHeaders = _useState8[0],
201
+ setFixedHeaders = _useState8[1];
156
202
  (0, _react.useEffect)(function () {
157
203
  if (includeFixedHeadersInFocusTrap) {
158
204
  var fixedHeaderEls = document.querySelectorAll('.euiHeader[data-fixed-header]');
@@ -176,7 +222,7 @@ var EuiFlyout = exports.EuiFlyout = /*#__PURE__*/(0, _react.forwardRef)(function
176
222
  return _objectSpread(_objectSpread({}, _focusTrapProps), {}, {
177
223
  shards: [].concat((0, _toConsumableArray2.default)(fixedHeaders), (0, _toConsumableArray2.default)((_focusTrapProps === null || _focusTrapProps === void 0 ? void 0 : _focusTrapProps.shards) || []))
178
224
  });
179
- }, [fixedHeaders, _focusTrapProps]);
225
+ }, [_focusTrapProps, fixedHeaders]);
180
226
 
181
227
  /*
182
228
  * Provide meaningful screen reader instructions/details
@@ -224,6 +270,24 @@ var EuiFlyout = exports.EuiFlyout = /*#__PURE__*/(0, _react.forwardRef)(function
224
270
  // Otherwise if ownFocus is false and outsideClickCloses is undefined, outside clicks should not close the flyout
225
271
  return undefined;
226
272
  }, [onClose, hasOverlayMask, outsideClickCloses]);
273
+ var closeButton = !hideCloseButton && (0, _react2.jsx)(_flyout_close_button.EuiFlyoutCloseButton, (0, _extends2.default)({}, closeButtonProps, {
274
+ onClose: onClose,
275
+ closeButtonPosition: closeButtonPosition,
276
+ side: side
277
+ }));
278
+
279
+ // render content within EuiFlyoutChildProvider if childFlyoutElement is present
280
+ var contentToRender = children;
281
+ if (hasChildFlyout && childFlyoutElement) {
282
+ contentToRender = (0, _react2.jsx)(_flyout_child_manager.EuiFlyoutChildProvider, {
283
+ parentSize: size,
284
+ parentFlyoutRef: internalParentFlyoutRef,
285
+ childElement: childFlyoutElement,
286
+ childrenToRender: children,
287
+ reportIsChildOpen: setIsChildFlyoutOpen,
288
+ reportChildLayoutMode: setChildLayoutMode
289
+ });
290
+ }
227
291
  return (0, _react2.jsx)(EuiFlyoutWrapper, {
228
292
  hasOverlayMask: hasOverlayMask,
229
293
  maskProps: _objectSpread(_objectSpread({}, maskProps), {}, {
@@ -234,10 +298,17 @@ var EuiFlyout = exports.EuiFlyout = /*#__PURE__*/(0, _react.forwardRef)(function
234
298
  event: "keydown",
235
299
  handler: onKeyDown
236
300
  }), (0, _react2.jsx)(_focus_trap.EuiFocusTrap, (0, _extends2.default)({
237
- disabled: isPushed,
301
+ disabled: isPushed || ownFocus && isChildFlyoutOpen,
238
302
  scrollLock: hasOverlayMask,
239
303
  clickOutsideDisables: !ownFocus,
240
- onClickOutside: onClickOutside
304
+ onClickOutside: onClickOutside,
305
+ returnFocus: function returnFocus() {
306
+ if (!isChildFlyoutOpen && flyoutToggle.current) {
307
+ flyoutToggle.current.focus();
308
+ return false; // We've handled focus
309
+ }
310
+ return true;
311
+ }
241
312
  }, focusTrapProps), (0, _react2.jsx)(Element, (0, _extends2.default)({
242
313
  className: classes,
243
314
  css: cssStyles,
@@ -249,11 +320,7 @@ var EuiFlyout = exports.EuiFlyout = /*#__PURE__*/(0, _react.forwardRef)(function
249
320
  tabIndex: !isPushed ? 0 : rest.tabIndex,
250
321
  "aria-describedby": !isPushed ? ariaDescribedBy : _ariaDescribedBy,
251
322
  "data-autofocus": !isPushed || undefined
252
- }), !isPushed && screenReaderDescription, !hideCloseButton && onClose && (0, _react2.jsx)(_flyout_close_button.EuiFlyoutCloseButton, (0, _extends2.default)({}, closeButtonProps, {
253
- onClose: onClose,
254
- closeButtonPosition: closeButtonPosition,
255
- side: side
256
- })), children)));
323
+ }), !isPushed && screenReaderDescription, closeButton, contentToRender)));
257
324
  }
258
325
  // React.forwardRef interferes with the inferred element type
259
326
  // Casting to ensure correct element prop type checking for `as`
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.euiFlyoutStyles = exports.euiFlyoutSlideInRight = exports.euiFlyoutSlideInLeft = exports.FLYOUT_BREAKPOINT = void 0;
7
+ exports.maxedFlyoutWidth = exports.euiFlyoutStyles = exports.euiFlyoutSlideInRight = exports.euiFlyoutSlideInLeft = exports.composeFlyoutSizing = exports.FLYOUT_BREAKPOINT = void 0;
8
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
9
  var _react = require("@emotion/react");
10
10
  var _euiThemeCommon = require("@elastic/eui-theme-common");
@@ -33,14 +33,15 @@ var euiFlyoutStyles = exports.euiFlyoutStyles = function euiFlyoutStyles(euiThem
33
33
  var euiTheme = euiThemeContext.euiTheme,
34
34
  colorMode = euiThemeContext.colorMode;
35
35
  return {
36
- euiFlyout: /*#__PURE__*/(0, _react.css)("position:fixed;", (0, _global_styling.logicalCSS)('bottom', 0), " ", (0, _global_styling.logicalCSS)('top', 'var(--euiFixedHeadersOffset, 0)'), " ", (0, _global_styling.logicalCSS)('height', 'inherit'), " z-index:", euiTheme.levels.flyout, ";background:", euiTheme.colors.emptyShade, ";display:flex;flex-direction:column;align-items:stretch;&:focus{outline:none;}", (0, _global_styling.euiMaxBreakpoint)(euiThemeContext, FLYOUT_BREAKPOINT), "{", (0, _global_styling.logicalCSS)('max-width', '90vw !important'), ";};label:euiFlyout;"),
36
+ euiFlyout: /*#__PURE__*/(0, _react.css)("position:fixed;", (0, _global_styling.logicalCSS)('bottom', 0), " ", (0, _global_styling.logicalCSS)('top', 'var(--euiFixedHeadersOffset, 0)'), " ", (0, _global_styling.logicalCSS)('height', 'inherit'), " z-index:", euiTheme.levels.flyout, ";background:", euiTheme.colors.emptyShade, ";display:flex;flex-direction:column;align-items:stretch;&:focus{outline:none;}", maxedFlyoutWidth(euiThemeContext), ";;label:euiFlyout;"),
37
37
  // Flyout sizes
38
- s: /*#__PURE__*/(0, _react.css)(composeFlyoutSizing(euiThemeContext, 's'), ";;label:s;"),
39
- m: /*#__PURE__*/(0, _react.css)(composeFlyoutSizing(euiThemeContext, 'm'), ";;label:m;"),
38
+ // When a child flyout is stacked on top of the parent, the parent flyout size will match the child flyout size
39
+ s: /*#__PURE__*/(0, _react.css)(composeFlyoutSizing(euiThemeContext, 's'), " &.euiFlyout--hasChild--stacked.euiFlyout--hasChild--m{", composeFlyoutSizing(euiThemeContext, 'm'), ";};label:s;"),
40
+ m: /*#__PURE__*/(0, _react.css)(composeFlyoutSizing(euiThemeContext, 'm'), " &.euiFlyout--hasChild--stacked.euiFlyout--hasChild--s{", composeFlyoutSizing(euiThemeContext, 's'), ";};label:m;"),
40
41
  l: /*#__PURE__*/(0, _react.css)(composeFlyoutSizing(euiThemeContext, 'l'), ";;label:l;"),
41
42
  noMaxWidth: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('max-width', 'none'), ";;label:noMaxWidth;"),
42
43
  // Side
43
- right: /*#__PURE__*/(0, _react.css)("clip-path:polygon(-50% 0, 100% 0, 100% 100%, -50% 100%);", (0, _global_styling.logicalCSS)('right', 0), " ", _global_styling.euiCanAnimate, "{animation:", euiFlyoutSlideInRight, " ", euiTheme.animation.normal, " ", euiTheme.animation.resistance, ";};label:right;"),
44
+ right: /*#__PURE__*/(0, _react.css)("clip-path:polygon(-50% 0, 100% 0, 100% 100%, -50% 100%);", (0, _global_styling.logicalCSS)('right', 0), " ", _global_styling.euiCanAnimate, "{animation:", euiFlyoutSlideInRight, " ", euiTheme.animation.normal, " ", euiTheme.animation.resistance, ";}&.euiFlyout--hasChild{clip-path:none;};label:right;"),
44
45
  // Left-side flyouts should only be used for navigation
45
46
  left: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('left', 0), " clip-path:polygon(0 0, 150% 0, 150% 100%, 0 100%);", _global_styling.euiCanAnimate, "{animation:", euiFlyoutSlideInLeft, " ", euiTheme.animation.normal, " ", euiTheme.animation.resistance, ";};label:left;"),
46
47
  // Type
@@ -66,7 +67,10 @@ var euiFlyoutStyles = exports.euiFlyoutStyles = function euiFlyoutStyles(euiThem
66
67
  }
67
68
  };
68
69
  };
69
- var composeFlyoutSizing = function composeFlyoutSizing(euiThemeContext, size) {
70
+ var maxedFlyoutWidth = exports.maxedFlyoutWidth = function maxedFlyoutWidth(euiThemeContext) {
71
+ return "\n ".concat((0, _global_styling.euiMaxBreakpoint)(euiThemeContext, FLYOUT_BREAKPOINT), " {\n ").concat((0, _global_styling.logicalCSS)('max-width', '90vw !important'), "\n }\n");
72
+ };
73
+ var composeFlyoutSizing = exports.composeFlyoutSizing = function composeFlyoutSizing(euiThemeContext, size) {
70
74
  var euiTheme = euiThemeContext.euiTheme;
71
75
  var formMaxWidth = (0, _form.euiFormMaxWidth)(euiThemeContext);
72
76