@elastic/eui 106.1.0 → 106.2.0-snapshot.1757009122780

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 (551) hide show
  1. package/es/components/accessibility/index.js +2 -1
  2. package/es/components/{flyout/sessions → accessibility/live_announcer}/index.js +1 -2
  3. package/es/components/accessibility/live_announcer/live_announcer.js +84 -0
  4. package/es/components/accessibility/screen_reader_live/screen_reader_live.js +7 -0
  5. package/es/components/avatar/avatar.js +1 -1
  6. package/es/components/badge/badge.js +1 -1
  7. package/es/components/badge/beta_badge/beta_badge.js +1 -1
  8. package/es/components/basic_table/basic_table.js +4 -4
  9. package/es/components/basic_table/in_memory_table.js +4 -4
  10. package/es/components/button/button.js +1 -1
  11. package/es/components/button/button_display/_button_display.js +1 -1
  12. package/es/components/button/button_display/_button_display_content.js +1 -1
  13. package/es/components/button/button_empty/button_empty.js +1 -1
  14. package/es/components/button/button_group/button_group.js +1 -1
  15. package/es/components/button/button_group/button_group_button.js +1 -1
  16. package/es/components/button/button_icon/button_icon.js +1 -1
  17. package/es/components/call_out/call_out.js +16 -5
  18. package/es/components/card/card.js +2 -2
  19. package/es/components/card/card_select/card_select.js +1 -1
  20. package/es/components/card/checkable_card/checkable_card.js +30 -5
  21. package/es/components/code/code_block.js +5 -2
  22. package/es/components/code/code_block_virtualized.js +5 -3
  23. package/es/components/collapsible_nav/collapsible_nav.js +4 -106
  24. package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  25. package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  26. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  27. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  28. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  29. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  30. package/es/components/combo_box/combo_box.a11y.js +97 -81
  31. package/es/components/combo_box/combo_box.js +3 -2
  32. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +50 -25
  33. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +6 -2
  34. package/es/components/comment_list/comment.js +2 -2
  35. package/es/components/comment_list/comment_event.js +1 -1
  36. package/es/components/comment_list/comment_list.js +2 -2
  37. package/es/components/comment_list/comment_timeline.js +1 -1
  38. package/es/components/context_menu/context_menu_item.js +1 -1
  39. package/es/components/datagrid/body/cell/data_grid_cell.js +12 -12
  40. package/es/components/datagrid/body/data_grid_body.js +7 -7
  41. package/es/components/datagrid/body/data_grid_body_custom.js +7 -7
  42. package/es/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  43. package/es/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  44. package/es/components/datagrid/controls/column_sorting.js +7 -7
  45. package/es/components/datagrid/controls/column_sorting_draggable.js +1 -1
  46. package/es/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  47. package/es/components/datagrid/data_grid.styles.js +1 -1
  48. package/es/components/datagrid/utils/in_memory.js +6 -6
  49. package/es/components/date_picker/date_picker.js +2 -2
  50. package/es/components/date_picker/date_picker_range.js +1 -1
  51. package/es/components/empty_prompt/empty_prompt.js +1 -1
  52. package/es/components/facet/facet_button.js +1 -1
  53. package/es/components/filter_group/filter_select_item.js +16 -3
  54. package/es/components/flyout/const.js +42 -0
  55. package/es/components/flyout/flyout.component.js +378 -0
  56. package/es/components/flyout/flyout.js +43 -362
  57. package/es/components/flyout/flyout.styles.js +98 -3
  58. package/es/components/flyout/flyout_menu.js +86 -0
  59. package/es/components/flyout/flyout_menu.styles.js +16 -0
  60. package/{optimize/es/components/flyout/flyout_context.js → es/components/flyout/flyout_menu_context.js} +1 -7
  61. package/es/components/flyout/flyout_resizable.js +3 -2
  62. package/es/components/flyout/hooks.js +25 -0
  63. package/es/components/flyout/index.js +4 -2
  64. package/es/components/flyout/manager/actions.js +97 -0
  65. package/es/components/flyout/manager/activity_stage.js +71 -0
  66. package/es/components/flyout/manager/const.js +50 -0
  67. package/es/components/flyout/manager/context.js +33 -0
  68. package/es/components/flyout/manager/flyout_child.js +80 -0
  69. package/es/components/flyout/manager/flyout_child.styles.js +26 -0
  70. package/es/components/flyout/manager/flyout_main.js +65 -0
  71. package/es/components/flyout/manager/flyout_main.styles.js +25 -0
  72. package/es/components/flyout/manager/flyout_managed.js +129 -0
  73. package/es/components/flyout/manager/flyout_managed.styles.js +66 -0
  74. package/es/components/flyout/manager/hooks.js +98 -0
  75. package/es/components/flyout/manager/index.js +31 -0
  76. package/es/components/flyout/manager/layout_mode.js +164 -0
  77. package/es/components/flyout/manager/provider.js +37 -0
  78. package/es/components/flyout/manager/reducer.js +200 -0
  79. package/es/components/flyout/manager/selectors.js +87 -0
  80. package/es/components/flyout/manager/validation.js +112 -0
  81. package/es/components/form/field_number/field_number.js +2 -2
  82. package/es/components/form/field_password/field_password.styles.js +1 -0
  83. package/es/components/form/field_text/field_text.js +2 -2
  84. package/es/components/form/form.styles.js +2 -2
  85. package/es/components/form/form_control_layout/form_control_layout.js +2 -2
  86. package/es/components/form/form_control_layout/form_control_layout.styles.js +1 -1
  87. package/es/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  88. package/es/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  89. package/es/components/form/range/range.styles.js +2 -2
  90. package/es/components/form/text_area/text_area.js +2 -2
  91. package/es/components/header/header_links/header_link.js +1 -1
  92. package/es/components/header/header_links/header_links.js +1 -1
  93. package/es/components/header/header_logo/header_logo.js +1 -1
  94. package/es/components/header/header_section/header_section_item_button.js +1 -1
  95. package/es/components/icon/assets/thumbDown.js +37 -0
  96. package/es/components/icon/assets/thumbUp.js +37 -0
  97. package/es/components/icon/icon.js +1 -1
  98. package/es/components/icon/icon_map.js +2 -0
  99. package/es/components/key_pad_menu/key_pad_menu_item.js +1 -1
  100. package/es/components/list_group/list_group.js +2 -2
  101. package/es/components/list_group/list_group_item.js +2 -2
  102. package/es/components/list_group/list_group_item_extra_action.js +1 -1
  103. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  104. package/es/components/loading/loading_logo.js +1 -1
  105. package/es/components/markdown_editor/index.js +1 -0
  106. package/es/components/markdown_editor/markdown_editor.js +16 -5
  107. package/es/components/markdown_editor/markdown_editor_drop_zone.js +6 -4
  108. package/es/components/markdown_editor/markdown_editor_footer.js +13 -121
  109. package/es/components/markdown_editor/markdown_editor_footer.styles.js +0 -2
  110. package/es/components/markdown_editor/markdown_editor_help_button.js +144 -0
  111. package/es/components/markdown_editor/markdown_editor_help_button.styles.js +16 -0
  112. package/es/components/markdown_editor/markdown_editor_toolbar.js +29 -24
  113. package/es/components/overlay_mask/overlay_mask.js +8 -3
  114. package/es/components/overlay_mask/overlay_mask.styles.js +11 -2
  115. package/es/components/page/page_header/page_header_content.js +1 -1
  116. package/es/components/pagination/pagination_button.js +1 -1
  117. package/es/components/popover/popover.js +2 -1
  118. package/es/components/provider/provider.js +2 -1
  119. package/es/components/selectable/selectable_list/selectable_list.js +1 -1
  120. package/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
  121. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  122. package/es/components/table/table_header_cell.js +1 -1
  123. package/es/components/timeline/timeline_item_icon.js +1 -1
  124. package/es/components/toast/global_toast_list.js +1 -1
  125. package/es/components/toast/toast.js +1 -1
  126. package/es/components/tool_tip/icon_tip.js +1 -1
  127. package/es/global_styling/mixins/_button.js +1 -1
  128. package/es/services/emotion/prefixer.js +116 -22
  129. package/eui.d.ts +780 -426
  130. package/i18ntokens.json +624 -624
  131. package/lib/components/accessibility/index.js +8 -1
  132. package/lib/components/accessibility/live_announcer/index.js +16 -0
  133. package/lib/components/accessibility/live_announcer/live_announcer.js +93 -0
  134. package/lib/components/accessibility/screen_reader_live/screen_reader_live.js +7 -0
  135. package/lib/components/avatar/avatar.js +1 -1
  136. package/lib/components/badge/badge.js +1 -1
  137. package/lib/components/badge/beta_badge/beta_badge.js +1 -1
  138. package/lib/components/basic_table/basic_table.js +4 -4
  139. package/lib/components/basic_table/in_memory_table.js +4 -4
  140. package/lib/components/button/button.js +1 -1
  141. package/lib/components/button/button_display/_button_display.js +1 -1
  142. package/lib/components/button/button_display/_button_display_content.js +1 -1
  143. package/lib/components/button/button_empty/button_empty.js +1 -1
  144. package/lib/components/button/button_group/button_group.js +1 -1
  145. package/lib/components/button/button_group/button_group_button.js +1 -1
  146. package/lib/components/button/button_icon/button_icon.js +1 -1
  147. package/lib/components/call_out/call_out.js +17 -6
  148. package/lib/components/card/card.js +2 -2
  149. package/lib/components/card/card_select/card_select.js +1 -1
  150. package/lib/components/card/checkable_card/checkable_card.js +29 -4
  151. package/lib/components/code/code_block.js +5 -2
  152. package/lib/components/code/code_block_virtualized.js +5 -3
  153. package/lib/components/collapsible_nav/collapsible_nav.js +4 -106
  154. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  155. package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  156. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  157. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  158. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  159. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  160. package/lib/components/combo_box/combo_box.a11y.js +97 -81
  161. package/lib/components/combo_box/combo_box.js +3 -2
  162. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +50 -25
  163. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +5 -1
  164. package/lib/components/comment_list/comment.js +2 -2
  165. package/lib/components/comment_list/comment_event.js +1 -1
  166. package/lib/components/comment_list/comment_list.js +2 -2
  167. package/lib/components/comment_list/comment_timeline.js +1 -1
  168. package/lib/components/context_menu/context_menu_item.js +1 -1
  169. package/lib/components/datagrid/body/cell/data_grid_cell.js +12 -12
  170. package/lib/components/datagrid/body/data_grid_body.js +7 -7
  171. package/lib/components/datagrid/body/data_grid_body_custom.js +7 -7
  172. package/lib/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  173. package/lib/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  174. package/lib/components/datagrid/controls/column_sorting.js +7 -7
  175. package/lib/components/datagrid/controls/column_sorting_draggable.js +1 -1
  176. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  177. package/lib/components/datagrid/data_grid.styles.js +1 -1
  178. package/lib/components/datagrid/utils/in_memory.js +6 -6
  179. package/lib/components/date_picker/date_picker.js +2 -2
  180. package/lib/components/date_picker/date_picker_range.js +1 -1
  181. package/lib/components/empty_prompt/empty_prompt.js +1 -1
  182. package/lib/components/facet/facet_button.js +1 -1
  183. package/lib/components/filter_group/filter_select_item.js +16 -3
  184. package/lib/components/flyout/const.js +49 -0
  185. package/lib/components/flyout/flyout.component.js +385 -0
  186. package/lib/components/flyout/flyout.js +68 -362
  187. package/lib/components/flyout/flyout.styles.js +98 -3
  188. package/lib/components/flyout/flyout_menu.js +95 -0
  189. package/lib/components/flyout/flyout_menu.styles.js +22 -0
  190. package/{optimize/lib/components/flyout/flyout_context.js → lib/components/flyout/flyout_menu_context.js} +2 -7
  191. package/lib/components/flyout/flyout_resizable.js +3 -2
  192. package/lib/components/flyout/hooks.js +30 -0
  193. package/lib/components/flyout/index.js +14 -14
  194. package/lib/components/flyout/manager/actions.js +103 -0
  195. package/lib/components/flyout/manager/activity_stage.js +77 -0
  196. package/lib/components/flyout/manager/const.js +56 -0
  197. package/lib/components/flyout/manager/context.js +41 -0
  198. package/lib/components/flyout/manager/flyout_child.js +85 -0
  199. package/lib/components/flyout/manager/flyout_child.styles.js +32 -0
  200. package/lib/components/flyout/manager/flyout_main.js +70 -0
  201. package/lib/components/flyout/manager/flyout_main.styles.js +31 -0
  202. package/lib/components/flyout/manager/flyout_managed.js +136 -0
  203. package/lib/components/flyout/manager/flyout_managed.styles.js +70 -0
  204. package/lib/components/flyout/manager/hooks.js +161 -0
  205. package/lib/components/flyout/manager/index.js +150 -0
  206. package/lib/components/flyout/manager/layout_mode.js +171 -0
  207. package/lib/components/flyout/manager/provider.js +46 -0
  208. package/lib/components/flyout/manager/reducer.js +205 -0
  209. package/lib/components/flyout/manager/selectors.js +93 -0
  210. package/lib/components/flyout/manager/validation.js +121 -0
  211. package/lib/components/form/field_number/field_number.js +2 -2
  212. package/lib/components/form/field_password/field_password.styles.js +1 -0
  213. package/lib/components/form/field_text/field_text.js +2 -2
  214. package/lib/components/form/form.styles.js +2 -2
  215. package/lib/components/form/form_control_layout/form_control_layout.js +2 -2
  216. package/lib/components/form/form_control_layout/form_control_layout.styles.js +1 -1
  217. package/lib/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  218. package/lib/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  219. package/lib/components/form/range/range.styles.js +2 -2
  220. package/lib/components/form/text_area/text_area.js +2 -2
  221. package/lib/components/header/header_links/header_link.js +1 -1
  222. package/lib/components/header/header_links/header_links.js +1 -1
  223. package/lib/components/header/header_logo/header_logo.js +1 -1
  224. package/lib/components/header/header_section/header_section_item_button.js +1 -1
  225. package/lib/components/icon/assets/thumbDown.js +44 -0
  226. package/lib/components/icon/assets/thumbUp.js +44 -0
  227. package/lib/components/icon/icon.js +1 -1
  228. package/lib/components/icon/icon_map.js +2 -0
  229. package/lib/components/icon/svgs/thumbDown.svg +4 -0
  230. package/lib/components/icon/svgs/thumbUp.svg +4 -0
  231. package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -1
  232. package/lib/components/list_group/list_group.js +2 -2
  233. package/lib/components/list_group/list_group_item.js +2 -2
  234. package/lib/components/list_group/list_group_item_extra_action.js +1 -1
  235. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  236. package/lib/components/loading/loading_logo.js +1 -1
  237. package/lib/components/markdown_editor/index.js +7 -0
  238. package/lib/components/markdown_editor/markdown_editor.js +16 -5
  239. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +6 -4
  240. package/lib/components/markdown_editor/markdown_editor_footer.js +11 -118
  241. package/lib/components/markdown_editor/markdown_editor_footer.styles.js +0 -2
  242. package/lib/components/markdown_editor/markdown_editor_help_button.js +151 -0
  243. package/lib/components/markdown_editor/markdown_editor_help_button.styles.js +22 -0
  244. package/lib/components/markdown_editor/markdown_editor_toolbar.js +29 -24
  245. package/lib/components/overlay_mask/overlay_mask.js +7 -2
  246. package/lib/components/overlay_mask/overlay_mask.styles.js +11 -4
  247. package/lib/components/page/page_header/page_header_content.js +1 -1
  248. package/lib/components/pagination/pagination_button.js +1 -1
  249. package/lib/components/popover/popover.js +2 -1
  250. package/lib/components/provider/provider.js +2 -1
  251. package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  252. package/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
  253. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  254. package/lib/components/table/table_header_cell.js +1 -1
  255. package/lib/components/timeline/timeline_item_icon.js +1 -1
  256. package/lib/components/toast/global_toast_list.js +1 -1
  257. package/lib/components/toast/toast.js +1 -1
  258. package/lib/components/tool_tip/icon_tip.js +1 -1
  259. package/lib/global_styling/mixins/_button.js +1 -1
  260. package/lib/services/emotion/prefixer.js +116 -22
  261. package/optimize/es/components/accessibility/index.js +2 -1
  262. package/optimize/es/components/{flyout/sessions → accessibility/live_announcer}/index.js +1 -2
  263. package/optimize/es/components/accessibility/live_announcer/live_announcer.js +68 -0
  264. package/optimize/es/components/accessibility/screen_reader_live/screen_reader_live.js +1 -0
  265. package/optimize/es/components/call_out/call_out.js +6 -2
  266. package/optimize/es/components/card/checkable_card/checkable_card.js +25 -5
  267. package/optimize/es/components/code/code_block.js +5 -2
  268. package/optimize/es/components/code/code_block_virtualized.js +5 -3
  269. package/optimize/es/components/combo_box/combo_box.a11y.js +97 -81
  270. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +49 -24
  271. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +6 -2
  272. package/optimize/es/components/datagrid/data_grid.styles.js +1 -1
  273. package/optimize/es/components/filter_group/filter_select_item.js +15 -3
  274. package/optimize/es/components/flyout/const.js +42 -0
  275. package/optimize/es/components/flyout/flyout.component.js +346 -0
  276. package/optimize/es/components/flyout/flyout.js +39 -332
  277. package/optimize/es/components/flyout/flyout.styles.js +95 -3
  278. package/optimize/es/components/flyout/flyout_menu.js +74 -0
  279. package/optimize/es/components/flyout/flyout_menu.styles.js +16 -0
  280. package/{es/components/flyout/flyout_context.js → optimize/es/components/flyout/flyout_menu_context.js} +1 -7
  281. package/optimize/es/components/flyout/flyout_resizable.js +3 -2
  282. package/optimize/es/components/flyout/hooks.js +25 -0
  283. package/optimize/es/components/flyout/index.js +4 -2
  284. package/optimize/es/components/flyout/manager/actions.js +97 -0
  285. package/optimize/es/components/flyout/manager/activity_stage.js +71 -0
  286. package/optimize/es/components/flyout/manager/const.js +50 -0
  287. package/optimize/es/components/flyout/manager/context.js +33 -0
  288. package/optimize/es/components/flyout/manager/flyout_child.js +76 -0
  289. package/optimize/es/components/flyout/manager/flyout_child.styles.js +26 -0
  290. package/optimize/es/components/flyout/manager/flyout_main.js +61 -0
  291. package/optimize/es/components/flyout/manager/flyout_main.styles.js +25 -0
  292. package/optimize/es/components/flyout/manager/flyout_managed.js +125 -0
  293. package/optimize/es/components/flyout/manager/flyout_managed.styles.js +66 -0
  294. package/optimize/es/components/flyout/manager/hooks.js +93 -0
  295. package/optimize/es/components/flyout/manager/index.js +31 -0
  296. package/optimize/es/components/flyout/manager/layout_mode.js +159 -0
  297. package/optimize/es/components/flyout/manager/provider.js +37 -0
  298. package/optimize/es/components/flyout/manager/reducer.js +192 -0
  299. package/optimize/es/components/flyout/manager/selectors.js +87 -0
  300. package/optimize/es/components/flyout/manager/validation.js +112 -0
  301. package/optimize/es/components/form/field_password/field_password.styles.js +1 -0
  302. package/optimize/es/components/form/form.styles.js +2 -2
  303. package/optimize/es/components/form/form_control_layout/form_control_layout.styles.js +1 -1
  304. package/optimize/es/components/form/range/range.styles.js +2 -2
  305. package/optimize/es/components/icon/assets/thumbDown.js +36 -0
  306. package/optimize/es/components/icon/assets/thumbUp.js +36 -0
  307. package/optimize/es/components/icon/icon_map.js +2 -0
  308. package/optimize/es/components/markdown_editor/index.js +1 -0
  309. package/optimize/es/components/markdown_editor/markdown_editor.js +7 -3
  310. package/optimize/es/components/markdown_editor/markdown_editor_drop_zone.js +3 -2
  311. package/optimize/es/components/markdown_editor/markdown_editor_footer.js +12 -120
  312. package/optimize/es/components/markdown_editor/markdown_editor_footer.styles.js +0 -2
  313. package/optimize/es/components/markdown_editor/markdown_editor_help_button.js +139 -0
  314. package/optimize/es/components/markdown_editor/markdown_editor_help_button.styles.js +16 -0
  315. package/optimize/es/components/markdown_editor/markdown_editor_toolbar.js +20 -16
  316. package/optimize/es/components/overlay_mask/overlay_mask.js +8 -3
  317. package/optimize/es/components/overlay_mask/overlay_mask.styles.js +11 -2
  318. package/optimize/es/components/popover/popover.js +2 -1
  319. package/optimize/es/components/provider/provider.js +2 -1
  320. package/optimize/es/global_styling/mixins/_button.js +1 -1
  321. package/optimize/es/services/emotion/prefixer.js +116 -22
  322. package/optimize/lib/components/accessibility/index.js +8 -1
  323. package/optimize/lib/components/accessibility/live_announcer/index.js +16 -0
  324. package/optimize/lib/components/accessibility/live_announcer/live_announcer.js +77 -0
  325. package/optimize/lib/components/accessibility/screen_reader_live/screen_reader_live.js +1 -0
  326. package/optimize/lib/components/call_out/call_out.js +7 -3
  327. package/optimize/lib/components/card/checkable_card/checkable_card.js +24 -4
  328. package/optimize/lib/components/code/code_block.js +5 -2
  329. package/optimize/lib/components/code/code_block_virtualized.js +5 -3
  330. package/optimize/lib/components/combo_box/combo_box.a11y.js +97 -81
  331. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +49 -24
  332. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +5 -1
  333. package/optimize/lib/components/datagrid/data_grid.styles.js +1 -1
  334. package/optimize/lib/components/filter_group/filter_select_item.js +15 -3
  335. package/optimize/lib/components/flyout/const.js +49 -0
  336. package/optimize/lib/components/flyout/flyout.component.js +354 -0
  337. package/optimize/lib/components/flyout/flyout.js +63 -332
  338. package/optimize/lib/components/flyout/flyout.styles.js +95 -3
  339. package/optimize/lib/components/flyout/flyout_menu.js +83 -0
  340. package/optimize/lib/components/flyout/flyout_menu.styles.js +22 -0
  341. package/{lib/components/flyout/flyout_context.js → optimize/lib/components/flyout/flyout_menu_context.js} +2 -7
  342. package/optimize/lib/components/flyout/flyout_resizable.js +3 -2
  343. package/optimize/lib/components/flyout/hooks.js +30 -0
  344. package/optimize/lib/components/flyout/index.js +14 -14
  345. package/optimize/lib/components/flyout/manager/actions.js +103 -0
  346. package/optimize/lib/components/flyout/manager/activity_stage.js +77 -0
  347. package/optimize/lib/components/flyout/manager/const.js +56 -0
  348. package/optimize/lib/components/flyout/manager/context.js +41 -0
  349. package/optimize/lib/components/flyout/manager/flyout_child.js +81 -0
  350. package/optimize/lib/components/flyout/manager/flyout_child.styles.js +32 -0
  351. package/optimize/lib/components/flyout/manager/flyout_main.js +66 -0
  352. package/optimize/lib/components/flyout/manager/flyout_main.styles.js +31 -0
  353. package/optimize/lib/components/flyout/manager/flyout_managed.js +134 -0
  354. package/optimize/lib/components/flyout/manager/flyout_managed.styles.js +71 -0
  355. package/optimize/lib/components/flyout/manager/hooks.js +159 -0
  356. package/optimize/lib/components/flyout/manager/index.js +150 -0
  357. package/optimize/lib/components/flyout/manager/layout_mode.js +169 -0
  358. package/optimize/lib/components/flyout/manager/provider.js +46 -0
  359. package/optimize/lib/components/flyout/manager/reducer.js +198 -0
  360. package/optimize/lib/components/flyout/manager/selectors.js +93 -0
  361. package/optimize/lib/components/flyout/manager/validation.js +121 -0
  362. package/optimize/lib/components/form/field_password/field_password.styles.js +1 -0
  363. package/optimize/lib/components/form/form.styles.js +2 -2
  364. package/optimize/lib/components/form/form_control_layout/form_control_layout.styles.js +1 -1
  365. package/optimize/lib/components/form/range/range.styles.js +2 -2
  366. package/optimize/lib/components/icon/assets/thumbDown.js +44 -0
  367. package/optimize/lib/components/icon/assets/thumbUp.js +44 -0
  368. package/optimize/lib/components/icon/icon_map.js +2 -0
  369. package/optimize/lib/components/icon/svgs/thumbDown.svg +4 -0
  370. package/optimize/lib/components/icon/svgs/thumbUp.svg +4 -0
  371. package/optimize/lib/components/markdown_editor/index.js +7 -0
  372. package/optimize/lib/components/markdown_editor/markdown_editor.js +7 -3
  373. package/optimize/lib/components/markdown_editor/markdown_editor_drop_zone.js +3 -2
  374. package/optimize/lib/components/markdown_editor/markdown_editor_footer.js +9 -118
  375. package/optimize/lib/components/markdown_editor/markdown_editor_footer.styles.js +0 -2
  376. package/optimize/lib/components/markdown_editor/markdown_editor_help_button.js +150 -0
  377. package/optimize/lib/components/markdown_editor/markdown_editor_help_button.styles.js +22 -0
  378. package/optimize/lib/components/markdown_editor/markdown_editor_toolbar.js +20 -16
  379. package/optimize/lib/components/overlay_mask/overlay_mask.js +7 -2
  380. package/optimize/lib/components/overlay_mask/overlay_mask.styles.js +11 -4
  381. package/optimize/lib/components/popover/popover.js +2 -1
  382. package/optimize/lib/components/provider/provider.js +2 -1
  383. package/optimize/lib/global_styling/mixins/_button.js +1 -1
  384. package/optimize/lib/services/emotion/prefixer.js +116 -22
  385. package/package.json +3 -2
  386. package/src/components/date_picker/react-datepicker/src/stylesheets/datepicker.scss +6 -7
  387. package/src/global_styling/mixins/_typography.scss +0 -1
  388. package/src/themes/amsterdam/global_styling/mixins/_typography.scss +0 -1
  389. package/test-env/components/accessibility/index.js +8 -1
  390. package/test-env/components/accessibility/live_announcer/index.js +16 -0
  391. package/test-env/components/accessibility/live_announcer/live_announcer.js +87 -0
  392. package/test-env/components/accessibility/screen_reader_live/screen_reader_live.js +7 -0
  393. package/test-env/components/avatar/avatar.js +1 -1
  394. package/test-env/components/badge/badge.js +1 -1
  395. package/test-env/components/badge/beta_badge/beta_badge.js +1 -1
  396. package/test-env/components/basic_table/basic_table.js +4 -4
  397. package/test-env/components/basic_table/in_memory_table.js +4 -4
  398. package/test-env/components/button/button.js +1 -1
  399. package/test-env/components/button/button_display/_button_display.js +1 -1
  400. package/test-env/components/button/button_display/_button_display_content.js +1 -1
  401. package/test-env/components/button/button_empty/button_empty.js +1 -1
  402. package/test-env/components/button/button_group/button_group.js +1 -1
  403. package/test-env/components/button/button_group/button_group_button.js +1 -1
  404. package/test-env/components/button/button_icon/button_icon.js +1 -1
  405. package/test-env/components/call_out/call_out.js +17 -6
  406. package/test-env/components/card/card.js +2 -2
  407. package/test-env/components/card/card_select/card_select.js +1 -1
  408. package/test-env/components/card/checkable_card/checkable_card.js +24 -4
  409. package/test-env/components/code/code_block_virtualized.js +5 -3
  410. package/test-env/components/collapsible_nav/collapsible_nav.js +4 -106
  411. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  412. package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  413. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  414. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  415. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  416. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  417. package/test-env/components/combo_box/combo_box.a11y.js +97 -81
  418. package/test-env/components/combo_box/combo_box.js +3 -2
  419. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +50 -25
  420. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +5 -1
  421. package/test-env/components/comment_list/comment.js +2 -2
  422. package/test-env/components/comment_list/comment_event.js +1 -1
  423. package/test-env/components/comment_list/comment_list.js +2 -2
  424. package/test-env/components/comment_list/comment_timeline.js +1 -1
  425. package/test-env/components/context_menu/context_menu_item.js +1 -1
  426. package/test-env/components/datagrid/body/cell/data_grid_cell.js +12 -12
  427. package/test-env/components/datagrid/body/data_grid_body.js +7 -7
  428. package/test-env/components/datagrid/body/data_grid_body_custom.js +7 -7
  429. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  430. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  431. package/test-env/components/datagrid/controls/column_sorting.js +7 -7
  432. package/test-env/components/datagrid/controls/column_sorting_draggable.js +1 -1
  433. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  434. package/test-env/components/datagrid/data_grid.styles.js +1 -1
  435. package/test-env/components/datagrid/utils/in_memory.js +6 -6
  436. package/test-env/components/date_picker/date_picker.js +2 -2
  437. package/test-env/components/date_picker/date_picker_range.js +1 -1
  438. package/test-env/components/empty_prompt/empty_prompt.js +1 -1
  439. package/test-env/components/facet/facet_button.js +1 -1
  440. package/test-env/components/filter_group/filter_select_item.js +16 -3
  441. package/test-env/components/flyout/const.js +49 -0
  442. package/test-env/components/flyout/flyout.component.js +374 -0
  443. package/test-env/components/flyout/flyout.styles.js +95 -3
  444. package/test-env/components/flyout/flyout_menu.js +94 -0
  445. package/test-env/components/flyout/flyout_menu.styles.js +22 -0
  446. package/test-env/components/flyout/{flyout_context.js → flyout_menu_context.js} +2 -7
  447. package/test-env/components/flyout/flyout_resizable.js +3 -2
  448. package/test-env/components/flyout/hooks.js +30 -0
  449. package/test-env/components/flyout/index.js +14 -14
  450. package/test-env/components/flyout/manager/actions.js +103 -0
  451. package/test-env/components/flyout/manager/activity_stage.js +77 -0
  452. package/test-env/components/flyout/manager/const.js +56 -0
  453. package/test-env/components/flyout/manager/context.js +41 -0
  454. package/test-env/components/flyout/manager/flyout_child.js +81 -0
  455. package/test-env/components/flyout/manager/flyout_child.styles.js +32 -0
  456. package/test-env/components/flyout/manager/flyout_main.js +66 -0
  457. package/test-env/components/flyout/manager/flyout_main.styles.js +31 -0
  458. package/test-env/components/flyout/manager/flyout_managed.js +134 -0
  459. package/test-env/components/flyout/manager/flyout_managed.styles.js +71 -0
  460. package/test-env/components/flyout/manager/hooks.js +159 -0
  461. package/test-env/components/flyout/manager/index.js +150 -0
  462. package/test-env/components/flyout/manager/layout_mode.js +169 -0
  463. package/test-env/components/flyout/manager/provider.js +46 -0
  464. package/test-env/components/flyout/manager/reducer.js +198 -0
  465. package/test-env/components/flyout/manager/selectors.js +93 -0
  466. package/test-env/components/flyout/manager/validation.js +121 -0
  467. package/test-env/components/form/field_number/field_number.js +2 -2
  468. package/test-env/components/form/field_password/field_password.styles.js +1 -0
  469. package/test-env/components/form/field_text/field_text.js +2 -2
  470. package/test-env/components/form/form.styles.js +2 -2
  471. package/test-env/components/form/form_control_layout/form_control_layout.js +2 -2
  472. package/test-env/components/form/form_control_layout/form_control_layout.styles.js +1 -1
  473. package/test-env/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  474. package/test-env/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  475. package/test-env/components/form/range/range.styles.js +2 -2
  476. package/test-env/components/form/text_area/text_area.js +2 -2
  477. package/test-env/components/header/header_links/header_link.js +1 -1
  478. package/test-env/components/header/header_links/header_links.js +1 -1
  479. package/test-env/components/header/header_logo/header_logo.js +1 -1
  480. package/test-env/components/header/header_section/header_section_item_button.js +1 -1
  481. package/test-env/components/icon/assets/thumbDown.js +44 -0
  482. package/test-env/components/icon/assets/thumbUp.js +44 -0
  483. package/test-env/components/icon/icon_map.js +2 -0
  484. package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -1
  485. package/test-env/components/list_group/list_group.js +2 -2
  486. package/test-env/components/list_group/list_group_item.js +2 -2
  487. package/test-env/components/list_group/list_group_item_extra_action.js +1 -1
  488. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  489. package/test-env/components/loading/loading_logo.js +1 -1
  490. package/test-env/components/markdown_editor/index.js +7 -0
  491. package/test-env/components/markdown_editor/markdown_editor.js +16 -5
  492. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +6 -4
  493. package/test-env/components/markdown_editor/markdown_editor_footer.js +10 -119
  494. package/test-env/components/markdown_editor/markdown_editor_footer.styles.js +0 -2
  495. package/test-env/components/markdown_editor/markdown_editor_help_button.js +150 -0
  496. package/test-env/components/markdown_editor/markdown_editor_help_button.styles.js +22 -0
  497. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +29 -24
  498. package/test-env/components/overlay_mask/overlay_mask.js +7 -2
  499. package/test-env/components/overlay_mask/overlay_mask.styles.js +11 -4
  500. package/test-env/components/page/page_header/page_header_content.js +1 -1
  501. package/test-env/components/pagination/pagination_button.js +1 -1
  502. package/test-env/components/popover/popover.js +2 -1
  503. package/test-env/components/provider/provider.js +2 -1
  504. package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
  505. package/test-env/components/selectable/selectable_list/selectable_list_item.js +1 -1
  506. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  507. package/test-env/components/table/table_header_cell.js +1 -1
  508. package/test-env/components/timeline/timeline_item_icon.js +1 -1
  509. package/test-env/components/toast/global_toast_list.js +1 -1
  510. package/test-env/components/toast/toast.js +1 -1
  511. package/test-env/components/tool_tip/icon_tip.js +1 -1
  512. package/test-env/global_styling/mixins/_button.js +1 -1
  513. package/test-env/services/emotion/prefixer.js +116 -22
  514. package/es/components/flyout/flyout_child.js +0 -223
  515. package/es/components/flyout/flyout_child.styles.js +0 -32
  516. package/es/components/flyout/flyout_child_manager.js +0 -114
  517. package/es/components/flyout/sessions/flyout_provider.js +0 -95
  518. package/es/components/flyout/sessions/flyout_reducer.js +0 -195
  519. package/es/components/flyout/sessions/use_eui_flyout.js +0 -82
  520. package/lib/components/flyout/flyout_child.js +0 -231
  521. package/lib/components/flyout/flyout_child.styles.js +0 -38
  522. package/lib/components/flyout/flyout_child_manager.js +0 -122
  523. package/lib/components/flyout/sessions/flyout_provider.js +0 -102
  524. package/lib/components/flyout/sessions/flyout_reducer.js +0 -202
  525. package/lib/components/flyout/sessions/index.js +0 -25
  526. package/lib/components/flyout/sessions/use_eui_flyout.js +0 -88
  527. package/optimize/es/components/flyout/flyout_child.js +0 -178
  528. package/optimize/es/components/flyout/flyout_child.styles.js +0 -32
  529. package/optimize/es/components/flyout/flyout_child_manager.js +0 -100
  530. package/optimize/es/components/flyout/sessions/flyout_provider.js +0 -90
  531. package/optimize/es/components/flyout/sessions/flyout_reducer.js +0 -187
  532. package/optimize/es/components/flyout/sessions/use_eui_flyout.js +0 -82
  533. package/optimize/lib/components/flyout/flyout_child.js +0 -186
  534. package/optimize/lib/components/flyout/flyout_child.styles.js +0 -38
  535. package/optimize/lib/components/flyout/flyout_child_manager.js +0 -110
  536. package/optimize/lib/components/flyout/sessions/flyout_provider.js +0 -100
  537. package/optimize/lib/components/flyout/sessions/flyout_reducer.js +0 -195
  538. package/optimize/lib/components/flyout/sessions/index.js +0 -25
  539. package/optimize/lib/components/flyout/sessions/use_eui_flyout.js +0 -88
  540. package/test-env/components/flyout/flyout_child.js +0 -230
  541. package/test-env/components/flyout/flyout_child.styles.js +0 -38
  542. package/test-env/components/flyout/flyout_child_manager.js +0 -119
  543. package/test-env/components/flyout/sessions/flyout_provider.js +0 -100
  544. package/test-env/components/flyout/sessions/flyout_reducer.js +0 -195
  545. package/test-env/components/flyout/sessions/index.js +0 -25
  546. package/test-env/components/flyout/sessions/use_eui_flyout.js +0 -88
  547. /package/es/components/flyout/{sessions → manager}/types.js +0 -0
  548. /package/lib/components/flyout/{sessions → manager}/types.js +0 -0
  549. /package/optimize/es/components/flyout/{sessions → manager}/types.js +0 -0
  550. /package/optimize/lib/components/flyout/{sessions → manager}/types.js +0 -0
  551. /package/test-env/components/flyout/{sessions → manager}/types.js +0 -0
@@ -0,0 +1,66 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
+ var _templateObject, _templateObject2;
3
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
4
+ /*
5
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
6
+ * or more contributor license agreements. Licensed under the Elastic License
7
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
8
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
9
+ * Side Public License, v 1.
10
+ */
11
+
12
+ import { css, keyframes } from '@emotion/react';
13
+ import { euiCanAnimate, logicalCSS } from '../../../global_styling';
14
+ import { STAGE_ACTIVE, STAGE_BACKGROUNDED, STAGE_BACKGROUNDING, STAGE_CLOSING, STAGE_INACTIVE, STAGE_OPENING, STAGE_RETURNING } from './const';
15
+ import { euiFlyoutSlideInLeft, euiFlyoutSlideInRight } from '../flyout.styles';
16
+ import { DEFAULT_SIDE } from '../const';
17
+ var _ref = process.env.NODE_ENV === "production" ? {
18
+ name: "hklg7q-managedFlyout",
19
+ styles: "perspective:1000px;transform-style:preserve-3d;label:managedFlyout;"
20
+ } : {
21
+ name: "hklg7q-managedFlyout",
22
+ styles: "perspective:1000px;transform-style:preserve-3d;label:managedFlyout;",
23
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
24
+ };
25
+ /**
26
+ * Emotion styles for managed flyouts.
27
+ * Provides base 3D context and animations tied to managed flyout stages
28
+ * via data attributes.
29
+ */
30
+ export var euiManagedFlyoutStyles = function euiManagedFlyoutStyles(euiThemeContext) {
31
+ var euiTheme = euiThemeContext.euiTheme;
32
+ return {
33
+ stage: function stage(activeStage) {
34
+ var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_SIDE;
35
+ // Animation for moving flyout backwards in 3D space (z-axis) when inactive
36
+ var euiFlyoutSlideBack3D = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n from {\n transform: translateZ(0) translateX(0) scale(1);\n filter: blur(0px);\n opacity: 1;\n }\n to {\n transform: translateZ(-1500px) translateX(", ") scale(0.5);\n filter: blur(3px);\n opacity: 0.6;\n }\n "])), side === 'left' ? 'calc(-100vw - 100%)' : 'calc(100vw + 100%)');
37
+
38
+ // Animation for bringing flyout forward from 3D space when transitioning to active
39
+ var euiFlyoutSlideForward3D = keyframes(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n from {\n transform: translateZ(-500px) translateX(", ") scale(0.85);\n filter: blur(3px);\n opacity: 0.6;\n }\n to {\n transform: translateZ(0) translateX(0) scale(1);\n filter: blur(0px);\n opacity: 1;\n }\n "])), side === 'left' ? 'calc(-100vw - 100%)' : 'calc(100vw + 100%)');
40
+ // When flyout is becoming inactive, animate backwards in 3D space
41
+ var inactiveTransition = /*#__PURE__*/css(euiCanAnimate, "{animation:", euiFlyoutSlideBack3D, " ", euiTheme.animation.extraSlow, " ", euiTheme.animation.resistance, " forwards;pointer-events:none;};label:inactiveTransition;");
42
+
43
+ // When flyout is becoming active from a backgrounded state, animate forward in 3D space
44
+ var returningTransition = /*#__PURE__*/css(euiCanAnimate, "{animation:", euiFlyoutSlideForward3D, " ", euiTheme.animation.normal, " ", euiTheme.animation.resistance, " forwards;};label:returningTransition;");
45
+ var openingTransition = /*#__PURE__*/css(euiCanAnimate, "{animation:", side === 'left' ? euiFlyoutSlideInLeft : euiFlyoutSlideInRight, " ", euiTheme.animation.normal, " ", euiTheme.animation.resistance, " forwards;};label:openingTransition;");
46
+ var noTransition = /*#__PURE__*/css(euiCanAnimate, "{animation:none;opacity:1;};label:noTransition;");
47
+ var activeFlyout = /*#__PURE__*/css("z-index:", parseInt(euiTheme.levels.flyout) + 1, ";pointer-events:auto;;label:activeFlyout;");
48
+ var inactiveFlyout = /*#__PURE__*/css(side === 'left' ? logicalCSS('right', '100vw') : logicalCSS('left', '100vw'), " transform:translateX(", side === 'left' ? 'calc(-100vw - 100%)' : 'calc(100vw + 100%)', ");;label:inactiveFlyout;");
49
+ switch (activeStage) {
50
+ case STAGE_OPENING:
51
+ return [activeFlyout, openingTransition];
52
+ case STAGE_ACTIVE:
53
+ return [activeFlyout, noTransition];
54
+ case STAGE_CLOSING:
55
+ case STAGE_BACKGROUNDING:
56
+ return [inactiveTransition];
57
+ case STAGE_INACTIVE:
58
+ case STAGE_BACKGROUNDED:
59
+ return [inactiveFlyout, noTransition];
60
+ case STAGE_RETURNING:
61
+ return [activeFlyout, returningTransition];
62
+ }
63
+ },
64
+ managedFlyout: _ref
65
+ };
66
+ };
@@ -0,0 +1,93 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ /*
3
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
4
+ * or more contributor license agreements. Licensed under the Elastic License
5
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
6
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
7
+ * Side Public License, v 1.
8
+ */
9
+
10
+ import { useCallback, useContext, useReducer, useRef } from 'react';
11
+ import { warnOnce, useGeneratedHtmlId } from '../../../services';
12
+ import { flyoutManagerReducer, initialState } from './reducer';
13
+ import { addFlyout as addFlyoutAction, closeFlyout as closeFlyoutAction, setActiveFlyout as setActiveFlyoutAction, setFlyoutWidth as setFlyoutWidthAction } from './actions';
14
+ import { EuiFlyoutManagerContext } from './provider';
15
+ import { LEVEL_MAIN } from './const';
16
+ import { useIsFlyoutRegistered } from './selectors';
17
+
18
+ // Ensure uniqueness across multiple hook instances, including in test envs
19
+ var autoGeneratedFlyoutIdCounter = 0;
20
+ export { useIsFlyoutActive, useHasActiveSession, useCurrentSession, useCurrentMainFlyout, useCurrentChildFlyout, useFlyoutWidth, useParentFlyoutSize, useHasChildFlyout } from './selectors';
21
+ export { useFlyoutLayoutMode } from './layout_mode';
22
+ export { useIsInManagedFlyout } from './context';
23
+
24
+ // Convenience selector for a flyout's activity stage
25
+
26
+ /**
27
+ * Hook that provides the flyout manager reducer and bound action creators.
28
+ * Accepts an optional initial state (mainly for tests or custom setups).
29
+ */
30
+ export function useFlyoutManagerReducer() {
31
+ var initial = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
32
+ var _useReducer = useReducer(flyoutManagerReducer, initial),
33
+ _useReducer2 = _slicedToArray(_useReducer, 2),
34
+ state = _useReducer2[0],
35
+ dispatch = _useReducer2[1];
36
+ var addFlyout = useCallback(function (flyoutId) {
37
+ var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : LEVEL_MAIN;
38
+ var size = arguments.length > 2 ? arguments[2] : undefined;
39
+ return dispatch(addFlyoutAction(flyoutId, level, size));
40
+ }, []);
41
+ var closeFlyout = useCallback(function (flyoutId) {
42
+ return dispatch(closeFlyoutAction(flyoutId));
43
+ }, []);
44
+ var setActiveFlyout = useCallback(function (flyoutId) {
45
+ return dispatch(setActiveFlyoutAction(flyoutId));
46
+ }, []);
47
+ var setFlyoutWidth = useCallback(function (flyoutId, width) {
48
+ return dispatch(setFlyoutWidthAction(flyoutId, width));
49
+ }, []);
50
+ return {
51
+ state: state,
52
+ dispatch: dispatch,
53
+ addFlyout: addFlyout,
54
+ closeFlyout: closeFlyout,
55
+ setActiveFlyout: setActiveFlyout,
56
+ setFlyoutWidth: setFlyoutWidth
57
+ };
58
+ }
59
+
60
+ /** Access the flyout manager context (state and actions). */
61
+ export var useFlyoutManager = function useFlyoutManager() {
62
+ return useContext(EuiFlyoutManagerContext);
63
+ };
64
+
65
+ /**
66
+ * Stable flyout ID utility. Uses the passed `id` if provided and not already registered,
67
+ * otherwise generates a deterministic ID for the component's lifetime.
68
+ * The ID remains stable across re-renders to maintain consistency in effects and other hooks.
69
+ */
70
+ export var useFlyoutId = function useFlyoutId(flyoutId) {
71
+ var defaultId = useGeneratedHtmlId({
72
+ prefix: 'flyout-'
73
+ });
74
+ var isRegistered = useIsFlyoutRegistered(flyoutId);
75
+
76
+ // Use ref to maintain ID stability across re-renders
77
+ var componentIdRef = useRef(undefined);
78
+ if (!componentIdRef.current) {
79
+ // Determine the ID to use
80
+ if (!flyoutId) {
81
+ // No ID provided, generate a new one
82
+ componentIdRef.current = "".concat(defaultId, "-").concat(++autoGeneratedFlyoutIdCounter);
83
+ } else if (isRegistered) {
84
+ // ID is provided but already registered, generate a new one
85
+ warnOnce("flyout-id-".concat(flyoutId), "Flyout with ID ".concat(flyoutId, " already registered; using new ID ").concat(defaultId));
86
+ componentIdRef.current = "".concat(defaultId, "-").concat(++autoGeneratedFlyoutIdCounter);
87
+ } else {
88
+ // ID is provided and not registered, use it
89
+ componentIdRef.current = flyoutId;
90
+ }
91
+ }
92
+ return componentIdRef.current;
93
+ };
@@ -0,0 +1,31 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ /**
10
+ * Convenience re-exports of bound action creators for external usage.
11
+ */
12
+ export { addFlyout as addFlyoutAction, closeFlyout as closeFlyoutAction, setActiveFlyout as setActiveFlyoutAction, setFlyoutWidth as setFlyoutWidthAction, setActivityStage as setActivityStageAction } from './actions';
13
+
14
+ /** Reducer and default state for the flyout manager. */
15
+ export { flyoutManagerReducer, initialState } from './reducer';
16
+
17
+ /** Provider component exposing the Flyout Manager API via context. */
18
+ export { EuiFlyoutManager } from './provider';
19
+
20
+ /**
21
+ * Hooks for reading manager state and derived information.
22
+ */
23
+ /**
24
+ * Selectors and derived state hooks for managed flyouts.
25
+ */
26
+ export { useCurrentChildFlyout, useCurrentMainFlyout, useCurrentSession, useFlyoutId, useFlyoutLayoutMode, useFlyoutManager, useFlyoutWidth, useHasChildFlyout, useIsFlyoutActive, useIsInManagedFlyout, useHasActiveSession, useParentFlyoutSize } from './hooks';
27
+ export { EuiFlyoutChild } from './flyout_child';
28
+ export { EuiFlyoutMain } from './flyout_main';
29
+
30
+ /** Utility functions for flyout sizing and layout. */
31
+ export { getWidthFromSize } from './layout_mode';
@@ -0,0 +1,159 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ /*
3
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
4
+ * or more contributor license agreements. Licensed under the Elastic License
5
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
6
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
7
+ * Side Public License, v 1.
8
+ */
9
+
10
+ import React, { useEffect, useState } from 'react';
11
+ import { useEuiTheme } from '../../../services';
12
+ import { setLayoutMode } from './actions';
13
+ import { useCurrentChildFlyout, useCurrentMainFlyout, useCurrentSession, useFlyoutWidth } from './selectors';
14
+ import { useFlyoutManager } from './hooks';
15
+ import { LAYOUT_MODE_SIDE_BY_SIDE, LAYOUT_MODE_STACKED } from './const';
16
+ /**
17
+ * Hook to handle responsive layout mode for managed flyouts.
18
+ * Decides whether to place flyouts side-by-side or stacked based on
19
+ * viewport width and flyout widths/sizes.
20
+ */
21
+ export var useApplyFlyoutLayoutMode = function useApplyFlyoutLayoutMode() {
22
+ var _useEuiTheme = useEuiTheme(),
23
+ euiTheme = _useEuiTheme.euiTheme;
24
+ var context = useFlyoutManager();
25
+ var currentSession = useCurrentSession();
26
+ var parentFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.main;
27
+ var childFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.child;
28
+ var parentFlyout = useCurrentMainFlyout();
29
+ var childFlyout = useCurrentChildFlyout();
30
+ var parentWidth = useFlyoutWidth(parentFlyoutId);
31
+ var childWidth = useFlyoutWidth(childFlyoutId);
32
+ var _useState = useState(typeof window !== 'undefined' ? window.innerWidth : Infinity),
33
+ _useState2 = _slicedToArray(_useState, 2),
34
+ windowWidth = _useState2[0],
35
+ setWindowWidth = _useState2[1];
36
+ var setMode = React.useCallback(function (layoutMode) {
37
+ if (context !== null && context !== void 0 && context.dispatch && layoutMode !== context.state.layoutMode) {
38
+ context.dispatch(setLayoutMode(layoutMode));
39
+ }
40
+ }, [context]);
41
+ useEffect(function () {
42
+ if (typeof window === 'undefined') {
43
+ return;
44
+ }
45
+ var rafId = 0;
46
+ var handleResize = function handleResize() {
47
+ if (rafId) {
48
+ cancelAnimationFrame(rafId);
49
+ }
50
+ rafId = requestAnimationFrame(function () {
51
+ return setWindowWidth(window.innerWidth);
52
+ });
53
+ };
54
+ window.addEventListener('resize', handleResize);
55
+ return function () {
56
+ if (rafId) {
57
+ cancelAnimationFrame(rafId);
58
+ }
59
+ window.removeEventListener('resize', handleResize);
60
+ };
61
+ }, []);
62
+ useEffect(function () {
63
+ if (!context) {
64
+ return;
65
+ }
66
+ var currentLayoutMode = context.state.layoutMode;
67
+
68
+ // Thresholds to prevent thrashing near the breakpoint.
69
+ var THRESHOLD_TO_SIDE_BY_SIDE = 85;
70
+ var THRESHOLD_TO_STACKED = 95;
71
+
72
+ // If the window is too small, set the mode to stacked.
73
+ //
74
+ // The value is based on the maximum width of a flyout in
75
+ // `composeFlyoutSizing` in `flyout.styles.ts` multiplied
76
+ // by 2 (open flyouts side-by-side).
77
+ if (windowWidth < Math.round(euiTheme.breakpoint.s * 1.4)) {
78
+ if (currentLayoutMode !== LAYOUT_MODE_STACKED) {
79
+ setMode(LAYOUT_MODE_STACKED);
80
+ }
81
+ return;
82
+ }
83
+ if (!childFlyoutId) {
84
+ if (currentLayoutMode !== LAYOUT_MODE_SIDE_BY_SIDE) setMode(LAYOUT_MODE_SIDE_BY_SIDE);
85
+ return;
86
+ }
87
+ var parentWidthValue = parentWidth;
88
+ var childWidthValue = childWidth;
89
+ if (!parentWidthValue && parentFlyout !== null && parentFlyout !== void 0 && parentFlyout.size) {
90
+ parentWidthValue = getWidthFromSize(parentFlyout.size);
91
+ }
92
+ if (!childWidthValue && childFlyout !== null && childFlyout !== void 0 && childFlyout.size) {
93
+ childWidthValue = getWidthFromSize(childFlyout.size);
94
+ }
95
+ if (!parentWidthValue || !childWidthValue) {
96
+ if (currentLayoutMode !== LAYOUT_MODE_SIDE_BY_SIDE) setMode(LAYOUT_MODE_SIDE_BY_SIDE);
97
+ return;
98
+ }
99
+ var combinedWidth = parentWidthValue + childWidthValue;
100
+ var combinedWidthPercentage = combinedWidth / windowWidth * 100;
101
+ var newLayoutMode;
102
+
103
+ // Handle fill size flyouts: keep layout as side-by-side when fill flyout is present
104
+ // This allows fill flyouts to dynamically calculate their width based on sibling
105
+ if ((parentFlyout === null || parentFlyout === void 0 ? void 0 : parentFlyout.size) === 'fill' || (childFlyout === null || childFlyout === void 0 ? void 0 : childFlyout.size) === 'fill') {
106
+ // For fill flyouts, we want to maintain side-by-side layout to enable dynamic width calculation
107
+ // Only stack if the viewport is too small (below the small breakpoint)
108
+ if (windowWidth >= Math.round(euiTheme.breakpoint.s * 1.4)) {
109
+ if (currentLayoutMode !== LAYOUT_MODE_SIDE_BY_SIDE) {
110
+ setMode(LAYOUT_MODE_SIDE_BY_SIDE);
111
+ }
112
+ return;
113
+ }
114
+ }
115
+ if (currentLayoutMode === LAYOUT_MODE_STACKED) {
116
+ newLayoutMode = combinedWidthPercentage <= THRESHOLD_TO_SIDE_BY_SIDE ? LAYOUT_MODE_SIDE_BY_SIDE : LAYOUT_MODE_STACKED;
117
+ } else {
118
+ newLayoutMode = combinedWidthPercentage >= THRESHOLD_TO_STACKED ? LAYOUT_MODE_STACKED : LAYOUT_MODE_SIDE_BY_SIDE;
119
+ }
120
+ if (currentLayoutMode !== newLayoutMode) {
121
+ setMode(newLayoutMode);
122
+ }
123
+ }, [windowWidth, context, parentWidth, setMode, childWidth, childFlyoutId, parentFlyout === null || parentFlyout === void 0 ? void 0 : parentFlyout.size, childFlyout === null || childFlyout === void 0 ? void 0 : childFlyout.size, euiTheme]);
124
+ };
125
+
126
+ /** Convert a flyout `size` value to a pixel width using theme breakpoints. */
127
+ export var getWidthFromSize = function getWidthFromSize(size) {
128
+ if (typeof size === 'number') {
129
+ return size;
130
+ }
131
+ if (typeof size === 'string') {
132
+ var parsed = parseInt(size, 10);
133
+ if (!Number.isNaN(parsed)) {
134
+ return parsed;
135
+ }
136
+
137
+ // Size is a function of a percentage of `vw`, defined in `composeFlyoutSizing` in `flyout.styles.ts`
138
+ switch (size) {
139
+ case 's':
140
+ return Math.round(window.innerWidth * 0.25);
141
+ case 'm':
142
+ return Math.round(window.innerWidth * 0.5);
143
+ case 'l':
144
+ return Math.round(window.innerWidth * 0.75);
145
+ case 'fill':
146
+ return Math.round(window.innerWidth * 0.9);
147
+ default:
148
+ break;
149
+ }
150
+ }
151
+ return 0;
152
+ };
153
+
154
+ /** Current layout mode for managed flyouts (`side-by-side` or `stacked`). */
155
+ export var useFlyoutLayoutMode = function useFlyoutLayoutMode() {
156
+ var _context$state;
157
+ var context = useFlyoutManager();
158
+ return (context === null || context === void 0 || (_context$state = context.state) === null || _context$state === void 0 ? void 0 : _context$state.layoutMode) || LAYOUT_MODE_SIDE_BY_SIDE;
159
+ };
@@ -0,0 +1,37 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ import React, { createContext, useContext } from 'react';
10
+ import { useFlyoutManagerReducer } from './hooks';
11
+ import { useApplyFlyoutLayoutMode } from './layout_mode';
12
+ import { jsx as ___EmotionJSX } from "@emotion/react";
13
+ /**
14
+ * React context that exposes the Flyout Manager API (state + actions).
15
+ */
16
+ export var EuiFlyoutManagerContext = /*#__PURE__*/createContext(null);
17
+
18
+ /**
19
+ * Provides the Flyout Manager API via context and runs layout-mode logic.
20
+ */
21
+ export var EuiFlyoutManager = function EuiFlyoutManager(_ref) {
22
+ var children = _ref.children;
23
+ var api = useFlyoutManagerReducer();
24
+ return ___EmotionJSX(EuiFlyoutManagerContext.Provider, {
25
+ value: api
26
+ }, ___EmotionJSX(EuiFlyoutManagerContainer, null, children));
27
+ };
28
+ var EuiFlyoutManagerContainer = function EuiFlyoutManagerContainer(_ref2) {
29
+ var children = _ref2.children;
30
+ useApplyFlyoutLayoutMode();
31
+ return ___EmotionJSX(React.Fragment, null, children);
32
+ };
33
+
34
+ /** Hook to access the Flyout Manager API from context. */
35
+ export var useFlyoutManager = function useFlyoutManager() {
36
+ return useContext(EuiFlyoutManagerContext);
37
+ };
@@ -0,0 +1,192 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
+ 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; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ /*
6
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
7
+ * or more contributor license agreements. Licensed under the Elastic License
8
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
9
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
10
+ * Side Public License, v 1.
11
+ */
12
+
13
+ import { ACTION_ADD, ACTION_CLOSE, ACTION_SET_ACTIVE, ACTION_SET_LAYOUT_MODE, ACTION_SET_WIDTH, ACTION_SET_ACTIVITY_STAGE } from './actions';
14
+ import { LAYOUT_MODE_SIDE_BY_SIDE, LEVEL_MAIN, STAGE_OPENING } from './const';
15
+ /**
16
+ * Default flyout manager state used to initialize the reducer.
17
+ */
18
+ export var initialState = {
19
+ sessions: [],
20
+ flyouts: [],
21
+ layoutMode: LAYOUT_MODE_SIDE_BY_SIDE
22
+ };
23
+
24
+ /**
25
+ * Reducer handling all flyout manager actions and state transitions.
26
+ */
27
+ export function flyoutManagerReducer() {
28
+ var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
29
+ var action = arguments.length > 1 ? arguments[1] : undefined;
30
+ switch (action.type) {
31
+ // Register a flyout.
32
+ // - Ignore duplicates by `flyoutId`.
33
+ // - For a `main` flyout, start a new session { main, child: null }.
34
+ // - For a `child` flyout, attach it to the most recent session; if no
35
+ // session exists, do nothing (invalid child without a parent).
36
+ case ACTION_ADD:
37
+ {
38
+ var flyoutId = action.flyoutId,
39
+ level = action.level,
40
+ size = action.size;
41
+ if (state.flyouts.some(function (f) {
42
+ return f.flyoutId === flyoutId;
43
+ })) {
44
+ return state;
45
+ }
46
+ var newFlyoutState = {
47
+ level: level,
48
+ flyoutId: flyoutId,
49
+ size: size,
50
+ activityStage: STAGE_OPENING
51
+ };
52
+ var newFlyouts = [].concat(_toConsumableArray(state.flyouts), [newFlyoutState]);
53
+ if (level === LEVEL_MAIN) {
54
+ var newSession = {
55
+ main: flyoutId,
56
+ child: null
57
+ };
58
+ return _objectSpread(_objectSpread({}, state), {}, {
59
+ sessions: [].concat(_toConsumableArray(state.sessions), [newSession]),
60
+ flyouts: newFlyouts
61
+ });
62
+ }
63
+ if (state.sessions.length === 0) {
64
+ return state;
65
+ }
66
+ var updatedSessions = _toConsumableArray(state.sessions);
67
+ var currentSessionIndex = updatedSessions.length - 1;
68
+ updatedSessions[currentSessionIndex] = _objectSpread(_objectSpread({}, updatedSessions[currentSessionIndex]), {}, {
69
+ child: flyoutId
70
+ });
71
+ return _objectSpread(_objectSpread({}, state), {}, {
72
+ sessions: updatedSessions,
73
+ flyouts: newFlyouts
74
+ });
75
+ }
76
+
77
+ // Unregister a flyout and update sessions accordingly.
78
+ // - When closing a `main` flyout, drop its entire session and all associated flyouts.
79
+ // - When closing a `child` flyout, clear the child pointer on the most
80
+ // recent session if it matches.
81
+ case ACTION_CLOSE:
82
+ {
83
+ var removedFlyout = state.flyouts.find(function (f) {
84
+ return f.flyoutId === action.flyoutId;
85
+ });
86
+ if (!removedFlyout) {
87
+ return state;
88
+ }
89
+ if (removedFlyout.level === LEVEL_MAIN) {
90
+ // Find the session that contains this main flyout
91
+ var sessionToRemove = state.sessions.find(function (session) {
92
+ return session.main === action.flyoutId;
93
+ });
94
+ if (sessionToRemove) {
95
+ // Remove all flyouts associated with this session (main + child)
96
+ var flyoutsToRemove = new Set([action.flyoutId]);
97
+ if (sessionToRemove.child) {
98
+ flyoutsToRemove.add(sessionToRemove.child);
99
+ }
100
+ var _newFlyouts = state.flyouts.filter(function (f) {
101
+ return !flyoutsToRemove.has(f.flyoutId);
102
+ });
103
+ var newSessions = state.sessions.filter(function (session) {
104
+ return session.main !== action.flyoutId;
105
+ });
106
+ return _objectSpread(_objectSpread({}, state), {}, {
107
+ sessions: newSessions,
108
+ flyouts: _newFlyouts
109
+ });
110
+ }
111
+ }
112
+
113
+ // Handle child flyout closing (existing logic)
114
+ var _newFlyouts2 = state.flyouts.filter(function (f) {
115
+ return f.flyoutId !== action.flyoutId;
116
+ });
117
+ if (state.sessions.length === 0) {
118
+ return _objectSpread(_objectSpread({}, state), {}, {
119
+ flyouts: _newFlyouts2
120
+ });
121
+ }
122
+ var _updatedSessions = _toConsumableArray(state.sessions);
123
+ var _currentSessionIndex = _updatedSessions.length - 1;
124
+ if (_updatedSessions[_currentSessionIndex].child === action.flyoutId) {
125
+ _updatedSessions[_currentSessionIndex] = _objectSpread(_objectSpread({}, _updatedSessions[_currentSessionIndex]), {}, {
126
+ child: null
127
+ });
128
+ }
129
+ return _objectSpread(_objectSpread({}, state), {}, {
130
+ sessions: _updatedSessions,
131
+ flyouts: _newFlyouts2
132
+ });
133
+ }
134
+
135
+ // Mark the provided flyout ID as the active child for the latest session.
136
+ case ACTION_SET_ACTIVE:
137
+ {
138
+ // No-op when no session exists.
139
+ if (state.sessions.length === 0) {
140
+ return state;
141
+ }
142
+ var _updatedSessions2 = _toConsumableArray(state.sessions);
143
+ var _currentSessionIndex2 = _updatedSessions2.length - 1;
144
+ _updatedSessions2[_currentSessionIndex2] = _objectSpread(_objectSpread({}, _updatedSessions2[_currentSessionIndex2]), {}, {
145
+ child: action.flyoutId
146
+ });
147
+ return _objectSpread(_objectSpread({}, state), {}, {
148
+ sessions: _updatedSessions2
149
+ });
150
+ }
151
+
152
+ // Persist a flyout's measured width (px). Used for responsive layout
153
+ // calculations, e.g., deciding stacked vs side-by-side.
154
+ case ACTION_SET_WIDTH:
155
+ {
156
+ var _flyoutId = action.flyoutId,
157
+ width = action.width;
158
+ var updatedFlyouts = state.flyouts.map(function (flyout) {
159
+ return flyout.flyoutId === _flyoutId ? _objectSpread(_objectSpread({}, flyout), {}, {
160
+ width: width
161
+ }) : flyout;
162
+ });
163
+ return _objectSpread(_objectSpread({}, state), {}, {
164
+ flyouts: updatedFlyouts
165
+ });
166
+ }
167
+
168
+ // Switch global layout mode for managed flyouts.
169
+ case ACTION_SET_LAYOUT_MODE:
170
+ {
171
+ return _objectSpread(_objectSpread({}, state), {}, {
172
+ layoutMode: action.layoutMode
173
+ });
174
+ }
175
+
176
+ // Update a flyout's activity stage in state
177
+ case ACTION_SET_ACTIVITY_STAGE:
178
+ {
179
+ var _flyoutId2 = action.flyoutId;
180
+ var _updatedFlyouts = state.flyouts.map(function (flyout) {
181
+ return flyout.flyoutId === _flyoutId2 ? _objectSpread(_objectSpread({}, flyout), {}, {
182
+ activityStage: action.activityStage
183
+ }) : flyout;
184
+ });
185
+ return _objectSpread(_objectSpread({}, state), {}, {
186
+ flyouts: _updatedFlyouts
187
+ });
188
+ }
189
+ default:
190
+ return state;
191
+ }
192
+ }
@@ -0,0 +1,87 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ import { useFlyoutManager } from './provider';
10
+ export var useSession = function useSession(flyoutId) {
11
+ var context = useFlyoutManager();
12
+ if (!context) {
13
+ return null;
14
+ }
15
+ return context.state.sessions.find(function (s) {
16
+ return s.main === flyoutId || s.child === flyoutId;
17
+ }) || null;
18
+ };
19
+
20
+ /** True when any managed flyout session is currently active. */
21
+ export var useHasActiveSession = function useHasActiveSession() {
22
+ return !!useCurrentSession();
23
+ };
24
+
25
+ /** True if the given `flyoutId` is the main or child flyout in the latest session. */
26
+ export var useIsFlyoutActive = function useIsFlyoutActive(flyoutId) {
27
+ var currentSession = useCurrentSession();
28
+ return (currentSession === null || currentSession === void 0 ? void 0 : currentSession.main) === flyoutId || (currentSession === null || currentSession === void 0 ? void 0 : currentSession.child) === flyoutId;
29
+ };
30
+ export var useFlyout = function useFlyout(flyoutId) {
31
+ var context = useFlyoutManager();
32
+ if (!context || !flyoutId) {
33
+ return null;
34
+ }
35
+ return context.state.flyouts.find(function (f) {
36
+ return f.flyoutId === flyoutId;
37
+ }) || null;
38
+ };
39
+ export var useIsFlyoutRegistered = function useIsFlyoutRegistered(flyoutId) {
40
+ var context = useFlyoutManager();
41
+ if (!context || !flyoutId) {
42
+ return false;
43
+ }
44
+ return context.state.flyouts.some(function (f) {
45
+ return f.flyoutId === flyoutId;
46
+ });
47
+ };
48
+
49
+ /** The most recent flyout session or `null` if none. */
50
+ export var useCurrentSession = function useCurrentSession() {
51
+ var context = useFlyoutManager();
52
+ if (!context) return null;
53
+ return context.state.sessions[context.state.sessions.length - 1] || null;
54
+ };
55
+
56
+ /** The registered state of the current session's main flyout, if present. */
57
+ export var useCurrentMainFlyout = function useCurrentMainFlyout() {
58
+ var currentSession = useCurrentSession();
59
+ var mainFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.main;
60
+ return useFlyout(mainFlyoutId);
61
+ };
62
+
63
+ /** The registered state of the current session's child flyout, if present. */
64
+ export var useCurrentChildFlyout = function useCurrentChildFlyout() {
65
+ var currentSession = useCurrentSession();
66
+ var childFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.child;
67
+ return useFlyout(childFlyoutId);
68
+ };
69
+
70
+ /** The measured width (px) of the specified flyout, or `null` if unknown. */
71
+ export var useFlyoutWidth = function useFlyoutWidth(flyoutId) {
72
+ var _useFlyout;
73
+ return (_useFlyout = useFlyout(flyoutId)) === null || _useFlyout === void 0 ? void 0 : _useFlyout.width;
74
+ };
75
+
76
+ /** The configured size of the parent (main) flyout for a given child flyout ID. */
77
+ export var useParentFlyoutSize = function useParentFlyoutSize(childFlyoutId) {
78
+ var session = useSession(childFlyoutId);
79
+ var parentFlyout = useFlyout(session === null || session === void 0 ? void 0 : session.main);
80
+ return parentFlyout === null || parentFlyout === void 0 ? void 0 : parentFlyout.size;
81
+ };
82
+
83
+ /** True if the provided `flyoutId` is the main flyout and it currently has a child. */
84
+ export var useHasChildFlyout = function useHasChildFlyout(flyoutId) {
85
+ var session = useSession(flyoutId);
86
+ return !!(session !== null && session !== void 0 && session.child);
87
+ };