@elastic/eui 110.0.0 → 111.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (572) 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 +36 -55
  5. package/es/components/basic_table/in_memory_table.js +6 -6
  6. package/es/components/beacon/beacon.styles.js +1 -1
  7. package/es/components/button/button_display/_button_display_content.js +1 -1
  8. package/es/components/button/button_empty/button_empty.js +1 -1
  9. package/es/components/button/button_group/button_group.js +1 -1
  10. package/es/components/button/button_group/button_group_button.js +1 -1
  11. package/es/components/button/button_icon/button_icon.js +1 -1
  12. package/es/components/button/index.js +2 -1
  13. package/es/components/button/split_button/index.js +10 -0
  14. package/es/components/button/split_button/split_button.js +120 -0
  15. package/es/components/button/split_button/split_button.styles.js +51 -0
  16. package/es/components/button/split_button/split_button_actions.js +115 -0
  17. package/{optimize/es/components/flyout/flyout_context.js → es/components/button/split_button/split_button_context.js} +5 -7
  18. package/es/components/call_out/call_out.js +1 -1
  19. package/es/components/card/card.js +1 -1
  20. package/es/components/collapsible_nav/collapsible_nav.js +20 -101
  21. package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  22. package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  23. package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
  24. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  25. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  26. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  27. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  28. package/es/components/comment_list/comment.js +2 -2
  29. package/es/components/comment_list/comment_event.js +1 -1
  30. package/es/components/comment_list/comment_list.js +2 -2
  31. package/es/components/comment_list/comment_timeline.js +1 -1
  32. package/es/components/context_menu/context_menu_item.js +1 -1
  33. package/es/components/datagrid/body/cell/data_grid_cell.js +12 -12
  34. package/es/components/datagrid/body/data_grid_body.js +7 -7
  35. package/es/components/datagrid/body/data_grid_body_custom.js +7 -7
  36. package/es/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  37. package/es/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  38. package/es/components/datagrid/controls/column_sorting.js +7 -7
  39. package/es/components/datagrid/controls/column_sorting_draggable.js +1 -1
  40. package/es/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  41. package/es/components/datagrid/controls/fullscreen_selector.styles.js +1 -1
  42. package/es/components/datagrid/utils/in_memory.js +6 -6
  43. package/es/components/date_picker/date_picker.js +2 -2
  44. package/es/components/date_picker/date_picker_range.js +1 -1
  45. package/es/components/empty_prompt/empty_prompt.js +2 -2
  46. package/es/components/flex/flex_group.js +1 -1
  47. package/es/components/flyout/_flyout_overlay.js +52 -0
  48. package/es/components/flyout/_flyout_resize_button.js +32 -0
  49. package/es/components/flyout/{flyout_resizable.styles.js → _flyout_resize_button.styles.js} +11 -11
  50. package/es/components/flyout/const.js +42 -0
  51. package/es/components/flyout/flyout.component.js +481 -0
  52. package/es/components/flyout/flyout.js +77 -379
  53. package/es/components/flyout/flyout.styles.js +106 -7
  54. package/es/components/flyout/flyout_menu.js +241 -0
  55. package/es/components/flyout/flyout_menu.styles.js +19 -0
  56. package/es/components/flyout/{flyout_context.js → flyout_menu_context.js} +1 -7
  57. package/es/components/flyout/flyout_parent_context.js +36 -0
  58. package/es/components/flyout/flyout_resizable.js +33 -144
  59. package/es/components/flyout/hooks.js +25 -0
  60. package/es/components/flyout/index.js +5 -2
  61. package/es/components/flyout/manager/actions.js +153 -0
  62. package/es/components/flyout/manager/activity_stage.js +95 -0
  63. package/es/components/flyout/manager/const.js +56 -0
  64. package/es/components/flyout/manager/context.js +33 -0
  65. package/es/components/flyout/manager/flyout_child.js +75 -0
  66. package/es/components/flyout/manager/flyout_main.js +65 -0
  67. package/es/components/flyout/manager/flyout_main.styles.js +25 -0
  68. package/es/components/flyout/manager/flyout_managed.js +227 -0
  69. package/es/components/flyout/manager/flyout_managed.styles.js +69 -0
  70. package/es/components/flyout/manager/hooks.js +55 -0
  71. package/es/components/flyout/manager/index.js +31 -0
  72. package/es/components/flyout/manager/layout_mode.js +167 -0
  73. package/es/components/flyout/manager/provider.js +57 -0
  74. package/es/components/flyout/manager/reducer.js +320 -0
  75. package/es/components/flyout/manager/selectors.js +116 -0
  76. package/es/components/flyout/manager/store.js +113 -0
  77. package/es/components/flyout/manager/validation.js +85 -0
  78. package/es/components/flyout/use_flyout_resizable.js +149 -0
  79. package/es/components/flyout/use_flyout_z_index.js +46 -0
  80. package/es/components/form/field_number/field_number.js +2 -2
  81. package/es/components/form/field_text/field_text.js +2 -2
  82. package/es/components/form/form_control_button/form_control_button.js +1 -1
  83. package/es/components/form/form_control_layout/form_control_layout.js +2 -2
  84. package/es/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  85. package/es/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  86. package/es/components/form/text_area/text_area.js +2 -2
  87. package/es/components/header/header_links/header_link.js +1 -1
  88. package/es/components/header/header_links/header_links.js +1 -1
  89. package/es/components/header/header_logo/header_logo.js +1 -1
  90. package/es/components/header/header_section/header_section_item_button.js +1 -1
  91. package/es/components/horizontal_rule/horizontal_rule.js +1 -1
  92. package/es/components/icon/assets/agentBuilderRobot.js +37 -0
  93. package/es/components/icon/assets/cross_project_search.js +35 -0
  94. package/es/components/icon/assets/dashed_circle.js +35 -0
  95. package/es/components/icon/assets/product_robot.js +37 -0
  96. package/es/components/icon/icon.js +1 -1
  97. package/es/components/icon/icon_map.js +3 -0
  98. package/es/components/key_pad_menu/key_pad_menu_item.js +1 -1
  99. package/es/components/link/external_link_icon.js +6 -3
  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/markdown_editor.js +1 -1
  106. package/es/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  107. package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
  108. package/es/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  109. package/es/components/overlay_mask/overlay_mask.js +13 -3
  110. package/es/components/overlay_mask/overlay_mask.styles.js +11 -2
  111. package/es/components/page/page_header/page_header_content.js +2 -2
  112. package/es/components/pagination/pagination_button.js +1 -1
  113. package/es/components/provider/provider.js +2 -1
  114. package/es/components/search_bar/search_bar.js +1 -1
  115. package/es/components/selectable/selectable_list/selectable_list.js +1 -1
  116. package/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
  117. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  118. package/es/components/spacer/spacer.js +1 -1
  119. package/es/components/table/table_header_cell.js +1 -1
  120. package/es/components/timeline/timeline_item_icon.js +1 -1
  121. package/es/components/toast/global_toast_list.js +1 -1
  122. package/es/components/toast/toast.js +1 -1
  123. package/es/components/tool_tip/icon_tip.js +1 -1
  124. package/es/components/tour/tour_step_indicator.js +8 -3
  125. package/es/global_styling/mixins/_button.js +28 -9
  126. package/es/global_styling/mixins/_container_query.js +106 -0
  127. package/es/global_styling/mixins/index.js +1 -0
  128. package/es/services/container_query/container_query_hook.js +64 -0
  129. package/es/{components/flyout/sessions → services/container_query}/index.js +1 -2
  130. package/es/services/container_query/match_container.js +242 -0
  131. package/eui.d.ts +7558 -6642
  132. package/i18ntokens.json +1438 -1384
  133. package/lib/components/avatar/avatar.js +1 -1
  134. package/lib/components/badge/badge.js +1 -1
  135. package/lib/components/badge/beta_badge/beta_badge.js +1 -1
  136. package/lib/components/basic_table/basic_table.js +36 -55
  137. package/lib/components/basic_table/in_memory_table.js +6 -6
  138. package/lib/components/beacon/beacon.styles.js +1 -1
  139. package/lib/components/button/button_display/_button_display_content.js +1 -1
  140. package/lib/components/button/button_empty/button_empty.js +1 -1
  141. package/lib/components/button/button_group/button_group.js +1 -1
  142. package/lib/components/button/button_group/button_group_button.js +1 -1
  143. package/lib/components/button/button_icon/button_icon.js +1 -1
  144. package/lib/components/button/index.js +8 -1
  145. package/lib/components/button/split_button/index.js +25 -0
  146. package/lib/components/button/split_button/split_button.js +129 -0
  147. package/lib/components/button/split_button/split_button.styles.js +55 -0
  148. package/lib/components/button/split_button/split_button_actions.js +123 -0
  149. package/{optimize/lib/components/flyout/flyout_context.js → lib/components/button/split_button/split_button_context.js} +6 -7
  150. package/lib/components/call_out/call_out.js +1 -1
  151. package/lib/components/card/card.js +1 -1
  152. package/lib/components/collapsible_nav/collapsible_nav.js +20 -101
  153. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  154. package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  155. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
  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/comment_list/comment.js +2 -2
  161. package/lib/components/comment_list/comment_event.js +1 -1
  162. package/lib/components/comment_list/comment_list.js +2 -2
  163. package/lib/components/comment_list/comment_timeline.js +1 -1
  164. package/lib/components/context_menu/context_menu_item.js +1 -1
  165. package/lib/components/datagrid/body/cell/data_grid_cell.js +12 -12
  166. package/lib/components/datagrid/body/data_grid_body.js +7 -7
  167. package/lib/components/datagrid/body/data_grid_body_custom.js +7 -7
  168. package/lib/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  169. package/lib/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  170. package/lib/components/datagrid/controls/column_sorting.js +7 -7
  171. package/lib/components/datagrid/controls/column_sorting_draggable.js +1 -1
  172. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  173. package/lib/components/datagrid/controls/fullscreen_selector.styles.js +1 -1
  174. package/lib/components/datagrid/utils/in_memory.js +6 -6
  175. package/lib/components/date_picker/date_picker.js +2 -2
  176. package/lib/components/date_picker/date_picker_range.js +1 -1
  177. package/lib/components/empty_prompt/empty_prompt.js +2 -2
  178. package/lib/components/flex/flex_group.js +1 -1
  179. package/lib/components/flyout/_flyout_overlay.js +59 -0
  180. package/lib/components/flyout/_flyout_resize_button.js +38 -0
  181. package/{test-env/components/flyout/flyout_resizable.styles.js → lib/components/flyout/_flyout_resize_button.styles.js} +12 -12
  182. package/lib/components/flyout/const.js +49 -0
  183. package/lib/components/flyout/flyout.component.js +488 -0
  184. package/lib/components/flyout/flyout.js +102 -379
  185. package/lib/components/flyout/flyout.styles.js +106 -7
  186. package/lib/components/flyout/flyout_menu.js +243 -0
  187. package/lib/components/flyout/flyout_menu.styles.js +25 -0
  188. package/lib/components/flyout/{flyout_context.js → flyout_menu_context.js} +2 -7
  189. package/lib/components/flyout/flyout_parent_context.js +43 -0
  190. package/lib/components/flyout/flyout_resizable.js +36 -147
  191. package/lib/components/flyout/hooks.js +30 -0
  192. package/lib/components/flyout/index.js +21 -14
  193. package/lib/components/flyout/manager/actions.js +159 -0
  194. package/lib/components/flyout/manager/activity_stage.js +101 -0
  195. package/lib/components/flyout/manager/const.js +62 -0
  196. package/lib/components/flyout/manager/context.js +41 -0
  197. package/lib/components/flyout/manager/flyout_child.js +80 -0
  198. package/lib/components/flyout/manager/flyout_main.js +70 -0
  199. package/lib/components/flyout/manager/flyout_main.styles.js +31 -0
  200. package/lib/components/flyout/manager/flyout_managed.js +233 -0
  201. package/lib/components/flyout/manager/flyout_managed.styles.js +73 -0
  202. package/lib/components/flyout/manager/hooks.js +131 -0
  203. package/lib/components/flyout/manager/index.js +168 -0
  204. package/lib/components/flyout/manager/layout_mode.js +171 -0
  205. package/lib/components/flyout/manager/provider.js +63 -0
  206. package/lib/components/flyout/manager/reducer.js +325 -0
  207. package/lib/components/flyout/manager/selectors.js +122 -0
  208. package/lib/components/flyout/manager/store.js +120 -0
  209. package/lib/components/flyout/manager/validation.js +94 -0
  210. package/lib/components/flyout/use_flyout_resizable.js +153 -0
  211. package/lib/components/flyout/use_flyout_z_index.js +51 -0
  212. package/lib/components/form/field_number/field_number.js +2 -2
  213. package/lib/components/form/field_text/field_text.js +2 -2
  214. package/lib/components/form/form_control_button/form_control_button.js +1 -1
  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_custom_icon.js +1 -1
  217. package/lib/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  218. package/lib/components/form/text_area/text_area.js +2 -2
  219. package/lib/components/header/header_links/header_link.js +1 -1
  220. package/lib/components/header/header_links/header_links.js +1 -1
  221. package/lib/components/header/header_logo/header_logo.js +1 -1
  222. package/lib/components/header/header_section/header_section_item_button.js +1 -1
  223. package/lib/components/horizontal_rule/horizontal_rule.js +1 -1
  224. package/lib/components/icon/assets/agentBuilderRobot.js +44 -0
  225. package/lib/components/icon/assets/cross_project_search.js +42 -0
  226. package/lib/components/icon/assets/dashed_circle.js +42 -0
  227. package/lib/components/icon/assets/product_robot.js +44 -0
  228. package/lib/components/icon/icon.js +1 -1
  229. package/lib/components/icon/icon_map.js +3 -0
  230. package/lib/components/icon/svgs/cross_project_search.svg +3 -0
  231. package/lib/components/icon/svgs/dashed_circle.svg +5 -0
  232. package/lib/components/icon/svgs/product_robot.svg +4 -0
  233. package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -1
  234. package/lib/components/link/external_link_icon.js +6 -3
  235. package/lib/components/list_group/list_group.js +2 -2
  236. package/lib/components/list_group/list_group_item.js +2 -2
  237. package/lib/components/list_group/list_group_item_extra_action.js +1 -1
  238. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  239. package/lib/components/loading/loading_logo.js +1 -1
  240. package/lib/components/markdown_editor/markdown_editor.js +1 -1
  241. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  242. package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
  243. package/lib/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  244. package/lib/components/overlay_mask/overlay_mask.js +12 -2
  245. package/lib/components/overlay_mask/overlay_mask.styles.js +11 -4
  246. package/lib/components/page/page_header/page_header_content.js +2 -2
  247. package/lib/components/pagination/pagination_button.js +1 -1
  248. package/lib/components/provider/provider.js +2 -1
  249. package/lib/components/search_bar/search_bar.js +1 -1
  250. package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  251. package/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
  252. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  253. package/lib/components/spacer/spacer.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/components/tour/tour_step_indicator.js +8 -3
  260. package/lib/global_styling/mixins/_button.js +29 -10
  261. package/lib/global_styling/mixins/_container_query.js +112 -0
  262. package/lib/global_styling/mixins/index.js +11 -0
  263. package/lib/services/container_query/container_query_hook.js +67 -0
  264. package/lib/services/container_query/index.js +16 -0
  265. package/lib/services/container_query/match_container.js +243 -0
  266. package/optimize/es/components/basic_table/basic_table.js +30 -49
  267. package/optimize/es/components/beacon/beacon.styles.js +1 -1
  268. package/optimize/es/components/button/index.js +2 -1
  269. package/optimize/es/components/button/split_button/index.js +10 -0
  270. package/optimize/es/components/button/split_button/split_button.js +98 -0
  271. package/optimize/es/components/button/split_button/split_button.styles.js +51 -0
  272. package/optimize/es/components/button/split_button/split_button_actions.js +89 -0
  273. package/optimize/es/components/button/split_button/split_button_context.js +14 -0
  274. package/optimize/es/components/collapsible_nav/collapsible_nav.js +1 -0
  275. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
  276. package/optimize/es/components/datagrid/controls/fullscreen_selector.styles.js +1 -1
  277. package/optimize/es/components/empty_prompt/empty_prompt.js +1 -1
  278. package/optimize/es/components/flex/flex_group.js +1 -1
  279. package/optimize/es/components/flyout/_flyout_overlay.js +52 -0
  280. package/optimize/es/components/flyout/_flyout_resize_button.js +31 -0
  281. package/optimize/es/components/flyout/{flyout_resizable.styles.js → _flyout_resize_button.styles.js} +11 -11
  282. package/optimize/es/components/flyout/const.js +42 -0
  283. package/optimize/es/components/flyout/flyout.component.js +469 -0
  284. package/optimize/es/components/flyout/flyout.js +53 -349
  285. package/optimize/es/components/flyout/flyout.styles.js +103 -7
  286. package/optimize/es/components/flyout/flyout_menu.js +162 -0
  287. package/optimize/es/components/flyout/flyout_menu.styles.js +19 -0
  288. package/optimize/es/components/flyout/flyout_menu_context.js +10 -0
  289. package/optimize/es/components/flyout/flyout_parent_context.js +36 -0
  290. package/optimize/es/components/flyout/flyout_resizable.js +7 -138
  291. package/optimize/es/components/flyout/hooks.js +25 -0
  292. package/optimize/es/components/flyout/index.js +5 -2
  293. package/optimize/es/components/flyout/manager/actions.js +153 -0
  294. package/optimize/es/components/flyout/manager/activity_stage.js +95 -0
  295. package/optimize/es/components/flyout/manager/const.js +56 -0
  296. package/optimize/es/components/flyout/manager/context.js +33 -0
  297. package/optimize/es/components/flyout/manager/flyout_child.js +71 -0
  298. package/optimize/es/components/flyout/manager/flyout_main.js +61 -0
  299. package/optimize/es/components/flyout/manager/flyout_main.styles.js +25 -0
  300. package/optimize/es/components/flyout/manager/flyout_managed.js +223 -0
  301. package/optimize/es/components/flyout/manager/flyout_managed.styles.js +69 -0
  302. package/optimize/es/components/flyout/manager/hooks.js +55 -0
  303. package/optimize/es/components/flyout/manager/index.js +31 -0
  304. package/optimize/es/components/flyout/manager/layout_mode.js +162 -0
  305. package/optimize/es/components/flyout/manager/provider.js +53 -0
  306. package/optimize/es/components/flyout/manager/reducer.js +312 -0
  307. package/optimize/es/components/flyout/manager/selectors.js +116 -0
  308. package/optimize/es/components/flyout/manager/store.js +113 -0
  309. package/optimize/es/components/flyout/manager/types.js +1 -0
  310. package/optimize/es/components/flyout/manager/validation.js +85 -0
  311. package/optimize/es/components/flyout/types.js +1 -0
  312. package/optimize/es/components/flyout/use_flyout_resizable.js +144 -0
  313. package/optimize/es/components/flyout/use_flyout_z_index.js +46 -0
  314. package/optimize/es/components/horizontal_rule/horizontal_rule.js +1 -1
  315. package/optimize/es/components/icon/assets/agentBuilderRobot.js +36 -0
  316. package/optimize/es/components/icon/assets/cross_project_search.js +34 -0
  317. package/optimize/es/components/icon/assets/dashed_circle.js +34 -0
  318. package/optimize/es/components/icon/assets/product_robot.js +36 -0
  319. package/optimize/es/components/icon/icon_map.js +3 -0
  320. package/optimize/es/components/link/external_link_icon.js +6 -3
  321. package/optimize/es/components/overlay_mask/overlay_mask.js +13 -3
  322. package/optimize/es/components/overlay_mask/overlay_mask.styles.js +11 -2
  323. package/optimize/es/components/page/page_header/page_header_content.js +1 -1
  324. package/optimize/es/components/provider/provider.js +2 -1
  325. package/optimize/es/components/search_bar/search_bar.js +1 -1
  326. package/optimize/es/components/spacer/spacer.js +1 -1
  327. package/optimize/es/components/tour/tour_step_indicator.js +8 -3
  328. package/optimize/es/global_styling/mixins/_button.js +28 -9
  329. package/optimize/es/global_styling/mixins/_container_query.js +106 -0
  330. package/optimize/es/global_styling/mixins/index.js +1 -0
  331. package/optimize/es/services/container_query/container_query_hook.js +59 -0
  332. package/optimize/es/{components/flyout/sessions → services/container_query}/index.js +1 -2
  333. package/optimize/es/services/container_query/match_container.js +229 -0
  334. package/optimize/lib/components/basic_table/basic_table.js +30 -49
  335. package/optimize/lib/components/beacon/beacon.styles.js +1 -1
  336. package/optimize/lib/components/button/index.js +8 -1
  337. package/optimize/lib/components/button/split_button/index.js +25 -0
  338. package/optimize/lib/components/button/split_button/split_button.js +107 -0
  339. package/optimize/lib/components/button/split_button/split_button.styles.js +55 -0
  340. package/optimize/lib/components/button/split_button/split_button_actions.js +98 -0
  341. package/{test-env/components/flyout/flyout_context.js → optimize/lib/components/button/split_button/split_button_context.js} +6 -7
  342. package/optimize/lib/components/collapsible_nav/collapsible_nav.js +1 -0
  343. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
  344. package/optimize/lib/components/datagrid/controls/fullscreen_selector.styles.js +1 -1
  345. package/optimize/lib/components/empty_prompt/empty_prompt.js +1 -1
  346. package/optimize/lib/components/flex/flex_group.js +1 -1
  347. package/optimize/lib/components/flyout/_flyout_overlay.js +62 -0
  348. package/optimize/lib/components/flyout/_flyout_resize_button.js +37 -0
  349. package/{lib/components/flyout/flyout_resizable.styles.js → optimize/lib/components/flyout/_flyout_resize_button.styles.js} +12 -12
  350. package/optimize/lib/components/flyout/const.js +49 -0
  351. package/optimize/lib/components/flyout/flyout.component.js +477 -0
  352. package/optimize/lib/components/flyout/flyout.js +77 -349
  353. package/optimize/lib/components/flyout/flyout.styles.js +103 -7
  354. package/optimize/lib/components/flyout/flyout_menu.js +168 -0
  355. package/optimize/lib/components/flyout/flyout_menu.styles.js +25 -0
  356. package/optimize/lib/components/flyout/flyout_menu_context.js +16 -0
  357. package/optimize/lib/components/flyout/flyout_parent_context.js +43 -0
  358. package/optimize/lib/components/flyout/flyout_resizable.js +9 -139
  359. package/optimize/lib/components/flyout/hooks.js +30 -0
  360. package/optimize/lib/components/flyout/index.js +21 -14
  361. package/optimize/lib/components/flyout/manager/actions.js +159 -0
  362. package/optimize/lib/components/flyout/manager/activity_stage.js +101 -0
  363. package/optimize/lib/components/flyout/manager/const.js +62 -0
  364. package/optimize/lib/components/flyout/manager/context.js +41 -0
  365. package/optimize/lib/components/flyout/manager/flyout_child.js +76 -0
  366. package/optimize/lib/components/flyout/manager/flyout_main.js +66 -0
  367. package/optimize/lib/components/flyout/manager/flyout_main.styles.js +31 -0
  368. package/optimize/lib/components/flyout/manager/flyout_managed.js +231 -0
  369. package/optimize/lib/components/flyout/manager/flyout_managed.styles.js +74 -0
  370. package/optimize/lib/components/flyout/manager/hooks.js +131 -0
  371. package/optimize/lib/components/flyout/manager/index.js +168 -0
  372. package/optimize/lib/components/flyout/manager/layout_mode.js +169 -0
  373. package/optimize/lib/components/flyout/manager/provider.js +61 -0
  374. package/optimize/lib/components/flyout/manager/reducer.js +318 -0
  375. package/optimize/lib/components/flyout/manager/selectors.js +122 -0
  376. package/optimize/lib/components/flyout/manager/store.js +120 -0
  377. package/optimize/lib/components/flyout/manager/validation.js +94 -0
  378. package/optimize/lib/components/flyout/types.js +5 -0
  379. package/optimize/lib/components/flyout/use_flyout_resizable.js +151 -0
  380. package/optimize/lib/components/flyout/use_flyout_z_index.js +51 -0
  381. package/optimize/lib/components/horizontal_rule/horizontal_rule.js +1 -1
  382. package/optimize/lib/components/icon/assets/agentBuilderRobot.js +44 -0
  383. package/optimize/lib/components/icon/assets/cross_project_search.js +42 -0
  384. package/optimize/lib/components/icon/assets/dashed_circle.js +42 -0
  385. package/optimize/lib/components/icon/assets/product_robot.js +44 -0
  386. package/optimize/lib/components/icon/icon_map.js +3 -0
  387. package/optimize/lib/components/icon/svgs/cross_project_search.svg +3 -0
  388. package/optimize/lib/components/icon/svgs/dashed_circle.svg +5 -0
  389. package/optimize/lib/components/icon/svgs/product_robot.svg +4 -0
  390. package/optimize/lib/components/link/external_link_icon.js +6 -3
  391. package/optimize/lib/components/overlay_mask/overlay_mask.js +12 -2
  392. package/optimize/lib/components/overlay_mask/overlay_mask.styles.js +11 -4
  393. package/optimize/lib/components/page/page_header/page_header_content.js +1 -1
  394. package/optimize/lib/components/provider/provider.js +2 -1
  395. package/optimize/lib/components/search_bar/search_bar.js +1 -1
  396. package/optimize/lib/components/spacer/spacer.js +1 -1
  397. package/optimize/lib/components/tour/tour_step_indicator.js +8 -3
  398. package/optimize/lib/global_styling/mixins/_button.js +29 -10
  399. package/optimize/lib/global_styling/mixins/_container_query.js +112 -0
  400. package/optimize/lib/global_styling/mixins/index.js +11 -0
  401. package/optimize/lib/services/container_query/container_query_hook.js +65 -0
  402. package/optimize/lib/services/container_query/index.js +16 -0
  403. package/optimize/lib/services/container_query/match_container.js +231 -0
  404. package/package.json +5 -4
  405. package/test-env/components/avatar/avatar.js +1 -1
  406. package/test-env/components/badge/badge.js +1 -1
  407. package/test-env/components/badge/beta_badge/beta_badge.js +1 -1
  408. package/test-env/components/basic_table/basic_table.js +36 -55
  409. package/test-env/components/basic_table/in_memory_table.js +6 -6
  410. package/test-env/components/beacon/beacon.styles.js +1 -1
  411. package/test-env/components/button/button_display/_button_display_content.js +1 -1
  412. package/test-env/components/button/button_empty/button_empty.js +1 -1
  413. package/test-env/components/button/button_group/button_group.js +1 -1
  414. package/test-env/components/button/button_group/button_group_button.js +1 -1
  415. package/test-env/components/button/button_icon/button_icon.js +1 -1
  416. package/test-env/components/button/index.js +8 -1
  417. package/test-env/components/button/split_button/index.js +25 -0
  418. package/test-env/components/button/split_button/split_button.js +123 -0
  419. package/test-env/components/button/split_button/split_button.styles.js +55 -0
  420. package/test-env/components/button/split_button/split_button_actions.js +120 -0
  421. package/test-env/components/button/split_button/split_button_context.js +20 -0
  422. package/test-env/components/call_out/call_out.js +1 -1
  423. package/test-env/components/card/card.js +1 -1
  424. package/test-env/components/collapsible_nav/collapsible_nav.js +20 -101
  425. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  426. package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  427. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
  428. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  429. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  430. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  431. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  432. package/test-env/components/comment_list/comment.js +2 -2
  433. package/test-env/components/comment_list/comment_event.js +1 -1
  434. package/test-env/components/comment_list/comment_list.js +2 -2
  435. package/test-env/components/comment_list/comment_timeline.js +1 -1
  436. package/test-env/components/context_menu/context_menu_item.js +1 -1
  437. package/test-env/components/datagrid/body/cell/data_grid_cell.js +12 -12
  438. package/test-env/components/datagrid/body/data_grid_body.js +7 -7
  439. package/test-env/components/datagrid/body/data_grid_body_custom.js +7 -7
  440. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  441. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  442. package/test-env/components/datagrid/controls/column_sorting.js +7 -7
  443. package/test-env/components/datagrid/controls/column_sorting_draggable.js +1 -1
  444. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  445. package/test-env/components/datagrid/controls/fullscreen_selector.styles.js +1 -1
  446. package/test-env/components/datagrid/utils/in_memory.js +6 -6
  447. package/test-env/components/date_picker/date_picker.js +2 -2
  448. package/test-env/components/date_picker/date_picker_range.js +1 -1
  449. package/test-env/components/empty_prompt/empty_prompt.js +2 -2
  450. package/test-env/components/flex/flex_group.js +1 -1
  451. package/test-env/components/flyout/_flyout_overlay.js +62 -0
  452. package/test-env/components/flyout/_flyout_resize_button.js +37 -0
  453. package/{optimize/lib/components/flyout/flyout_resizable.styles.js → test-env/components/flyout/_flyout_resize_button.styles.js} +12 -12
  454. package/test-env/components/flyout/const.js +49 -0
  455. package/test-env/components/flyout/flyout.component.js +477 -0
  456. package/test-env/components/flyout/flyout.styles.js +103 -7
  457. package/test-env/components/flyout/flyout_menu.js +241 -0
  458. package/test-env/components/flyout/flyout_menu.styles.js +25 -0
  459. package/test-env/components/flyout/flyout_menu_context.js +16 -0
  460. package/test-env/components/flyout/flyout_parent_context.js +43 -0
  461. package/test-env/components/flyout/flyout_resizable.js +35 -139
  462. package/test-env/components/flyout/hooks.js +30 -0
  463. package/test-env/components/flyout/index.js +21 -14
  464. package/test-env/components/flyout/manager/actions.js +159 -0
  465. package/test-env/components/flyout/manager/activity_stage.js +101 -0
  466. package/test-env/components/flyout/manager/const.js +62 -0
  467. package/test-env/components/flyout/manager/context.js +41 -0
  468. package/test-env/components/flyout/manager/flyout_child.js +76 -0
  469. package/test-env/components/flyout/manager/flyout_main.js +66 -0
  470. package/test-env/components/flyout/manager/flyout_main.styles.js +31 -0
  471. package/test-env/components/flyout/manager/flyout_managed.js +231 -0
  472. package/test-env/components/flyout/manager/flyout_managed.styles.js +74 -0
  473. package/test-env/components/flyout/manager/hooks.js +131 -0
  474. package/test-env/components/flyout/manager/index.js +168 -0
  475. package/test-env/components/flyout/manager/layout_mode.js +169 -0
  476. package/test-env/components/flyout/manager/provider.js +61 -0
  477. package/test-env/components/flyout/manager/reducer.js +318 -0
  478. package/test-env/components/flyout/manager/selectors.js +122 -0
  479. package/test-env/components/flyout/manager/store.js +120 -0
  480. package/test-env/components/flyout/manager/types.js +5 -0
  481. package/test-env/components/flyout/manager/validation.js +94 -0
  482. package/test-env/components/flyout/types.js +5 -0
  483. package/test-env/components/flyout/use_flyout_resizable.js +151 -0
  484. package/test-env/components/flyout/use_flyout_z_index.js +51 -0
  485. package/test-env/components/form/field_number/field_number.js +2 -2
  486. package/test-env/components/form/field_text/field_text.js +2 -2
  487. package/test-env/components/form/form_control_button/form_control_button.js +1 -1
  488. package/test-env/components/form/form_control_layout/form_control_layout.js +2 -2
  489. package/test-env/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  490. package/test-env/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  491. package/test-env/components/form/text_area/text_area.js +2 -2
  492. package/test-env/components/header/header_links/header_link.js +1 -1
  493. package/test-env/components/header/header_links/header_links.js +1 -1
  494. package/test-env/components/header/header_logo/header_logo.js +1 -1
  495. package/test-env/components/header/header_section/header_section_item_button.js +1 -1
  496. package/test-env/components/horizontal_rule/horizontal_rule.js +1 -1
  497. package/test-env/components/icon/assets/agentBuilderRobot.js +44 -0
  498. package/test-env/components/icon/assets/cross_project_search.js +42 -0
  499. package/test-env/components/icon/assets/dashed_circle.js +42 -0
  500. package/test-env/components/icon/assets/product_robot.js +44 -0
  501. package/test-env/components/icon/icon_map.js +3 -0
  502. package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -1
  503. package/test-env/components/link/external_link_icon.js +6 -3
  504. package/test-env/components/list_group/list_group.js +2 -2
  505. package/test-env/components/list_group/list_group_item.js +2 -2
  506. package/test-env/components/list_group/list_group_item_extra_action.js +1 -1
  507. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  508. package/test-env/components/loading/loading_logo.js +1 -1
  509. package/test-env/components/markdown_editor/markdown_editor.js +1 -1
  510. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  511. package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
  512. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  513. package/test-env/components/overlay_mask/overlay_mask.js +12 -2
  514. package/test-env/components/overlay_mask/overlay_mask.styles.js +11 -4
  515. package/test-env/components/page/page_header/page_header_content.js +2 -2
  516. package/test-env/components/pagination/pagination_button.js +1 -1
  517. package/test-env/components/provider/provider.js +2 -1
  518. package/test-env/components/search_bar/search_bar.js +1 -1
  519. package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
  520. package/test-env/components/selectable/selectable_list/selectable_list_item.js +1 -1
  521. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  522. package/test-env/components/spacer/spacer.js +1 -1
  523. package/test-env/components/table/table_header_cell.js +1 -1
  524. package/test-env/components/timeline/timeline_item_icon.js +1 -1
  525. package/test-env/components/toast/global_toast_list.js +1 -1
  526. package/test-env/components/toast/toast.js +1 -1
  527. package/test-env/components/tool_tip/icon_tip.js +1 -1
  528. package/test-env/components/tour/tour_step_indicator.js +8 -3
  529. package/test-env/global_styling/mixins/_button.js +29 -10
  530. package/test-env/global_styling/mixins/_container_query.js +112 -0
  531. package/test-env/global_styling/mixins/index.js +11 -0
  532. package/test-env/services/container_query/container_query_hook.js +65 -0
  533. package/test-env/services/container_query/index.js +16 -0
  534. package/test-env/services/container_query/match_container.js +231 -0
  535. package/es/components/flyout/flyout_child.js +0 -223
  536. package/es/components/flyout/flyout_child.styles.js +0 -32
  537. package/es/components/flyout/flyout_child_manager.js +0 -114
  538. package/es/components/flyout/sessions/flyout_provider.js +0 -95
  539. package/es/components/flyout/sessions/flyout_reducer.js +0 -195
  540. package/es/components/flyout/sessions/use_eui_flyout.js +0 -82
  541. package/lib/components/flyout/flyout_child.js +0 -231
  542. package/lib/components/flyout/flyout_child.styles.js +0 -38
  543. package/lib/components/flyout/flyout_child_manager.js +0 -122
  544. package/lib/components/flyout/sessions/flyout_provider.js +0 -102
  545. package/lib/components/flyout/sessions/flyout_reducer.js +0 -202
  546. package/lib/components/flyout/sessions/index.js +0 -25
  547. package/lib/components/flyout/sessions/use_eui_flyout.js +0 -88
  548. package/optimize/es/components/flyout/flyout_child.js +0 -178
  549. package/optimize/es/components/flyout/flyout_child.styles.js +0 -32
  550. package/optimize/es/components/flyout/flyout_child_manager.js +0 -100
  551. package/optimize/es/components/flyout/sessions/flyout_provider.js +0 -90
  552. package/optimize/es/components/flyout/sessions/flyout_reducer.js +0 -187
  553. package/optimize/es/components/flyout/sessions/use_eui_flyout.js +0 -82
  554. package/optimize/lib/components/flyout/flyout_child.js +0 -186
  555. package/optimize/lib/components/flyout/flyout_child.styles.js +0 -38
  556. package/optimize/lib/components/flyout/flyout_child_manager.js +0 -110
  557. package/optimize/lib/components/flyout/sessions/flyout_provider.js +0 -100
  558. package/optimize/lib/components/flyout/sessions/flyout_reducer.js +0 -195
  559. package/optimize/lib/components/flyout/sessions/index.js +0 -25
  560. package/optimize/lib/components/flyout/sessions/use_eui_flyout.js +0 -88
  561. package/test-env/components/flyout/flyout_child.js +0 -230
  562. package/test-env/components/flyout/flyout_child.styles.js +0 -38
  563. package/test-env/components/flyout/flyout_child_manager.js +0 -119
  564. package/test-env/components/flyout/sessions/flyout_provider.js +0 -100
  565. package/test-env/components/flyout/sessions/flyout_reducer.js +0 -195
  566. package/test-env/components/flyout/sessions/index.js +0 -25
  567. package/test-env/components/flyout/sessions/use_eui_flyout.js +0 -88
  568. /package/es/components/flyout/{sessions → manager}/types.js +0 -0
  569. /package/{optimize/es/components/flyout/sessions → es/components/flyout}/types.js +0 -0
  570. /package/lib/components/flyout/{sessions → manager}/types.js +0 -0
  571. /package/{optimize/lib/components/flyout/sessions → lib/components/flyout}/types.js +0 -0
  572. /package/{test-env/components/flyout/sessions → optimize/lib/components/flyout/manager}/types.js +0 -0
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useFlyoutLayoutMode = exports.useApplyFlyoutLayoutMode = exports.getWidthFromSize = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _react = require("react");
10
+ var _services = require("../../../services");
11
+ var _actions = require("./actions");
12
+ var _selectors = require("./selectors");
13
+ var _hooks = require("./hooks");
14
+ var _const = require("./const");
15
+ /*
16
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
17
+ * or more contributor license agreements. Licensed under the Elastic License
18
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
19
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
20
+ * Side Public License, v 1.
21
+ */
22
+
23
+ /**
24
+ * Hook to handle responsive layout mode for managed flyouts.
25
+ * Decides whether to place flyouts side-by-side or stacked based on
26
+ * viewport width and flyout widths/sizes.
27
+ */
28
+ var useApplyFlyoutLayoutMode = exports.useApplyFlyoutLayoutMode = function useApplyFlyoutLayoutMode() {
29
+ var _context$state;
30
+ var _useEuiTheme = (0, _services.useEuiTheme)(),
31
+ euiTheme = _useEuiTheme.euiTheme;
32
+ var context = (0, _hooks.useFlyoutManager)();
33
+ var currentSession = (0, _selectors.useCurrentSession)();
34
+ var parentFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.mainFlyoutId;
35
+ var childFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.childFlyoutId;
36
+ var parentFlyout = (0, _selectors.useCurrentMainFlyout)();
37
+ var childFlyout = (0, _selectors.useCurrentChildFlyout)();
38
+ var parentWidth = (0, _selectors.useFlyoutWidth)(parentFlyoutId);
39
+ var childWidth = (0, _selectors.useFlyoutWidth)(childFlyoutId);
40
+ var hasFlyouts = Boolean(parentFlyoutId);
41
+ var _useState = (0, _react.useState)(typeof window !== 'undefined' ? window.innerWidth : Infinity),
42
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
43
+ windowWidth = _useState2[0],
44
+ setWindowWidth = _useState2[1];
45
+
46
+ // Extract specific context values
47
+ var dispatch = context === null || context === void 0 ? void 0 : context.dispatch;
48
+ var currentLayoutMode = context === null || context === void 0 || (_context$state = context.state) === null || _context$state === void 0 ? void 0 : _context$state.layoutMode;
49
+ var setMode = (0, _react.useCallback)(function (layoutMode) {
50
+ if (dispatch) {
51
+ dispatch((0, _actions.setLayoutMode)(layoutMode));
52
+ }
53
+ }, [dispatch]);
54
+ (0, _react.useEffect)(function () {
55
+ if (typeof window === 'undefined') {
56
+ return;
57
+ }
58
+ var rafId = 0;
59
+ var handleResize = function handleResize() {
60
+ if (rafId) {
61
+ cancelAnimationFrame(rafId);
62
+ }
63
+ rafId = requestAnimationFrame(function () {
64
+ return setWindowWidth(window.innerWidth);
65
+ });
66
+ };
67
+ window.addEventListener('resize', handleResize);
68
+ return function () {
69
+ if (rafId) {
70
+ cancelAnimationFrame(rafId);
71
+ }
72
+ window.removeEventListener('resize', handleResize);
73
+ };
74
+ }, []);
75
+
76
+ // Calculate the desired layout mode
77
+ var desiredLayoutMode = (0, _react.useMemo)(function () {
78
+ // Skip calculation if no flyouts open
79
+ if (!hasFlyouts) {
80
+ return null;
81
+ }
82
+
83
+ // Thresholds to prevent thrashing near the breakpoint.
84
+ var THRESHOLD_TO_SIDE_BY_SIDE = 85;
85
+ var THRESHOLD_TO_STACKED = 95;
86
+
87
+ // If the window is too small, set the mode to stacked.
88
+ //
89
+ // The value is based on the maximum width of a flyout in
90
+ // `composeFlyoutSizing` in `flyout.styles.ts` multiplied
91
+ // by 2 (open flyouts side-by-side).
92
+ if (windowWidth < Math.round(euiTheme.breakpoint.s * 1.4)) {
93
+ return _const.LAYOUT_MODE_STACKED;
94
+ }
95
+ if (!childFlyoutId) {
96
+ return _const.LAYOUT_MODE_SIDE_BY_SIDE;
97
+ }
98
+ var parentWidthValue = parentWidth;
99
+ var childWidthValue = childWidth;
100
+ if (!parentWidthValue && parentFlyout !== null && parentFlyout !== void 0 && parentFlyout.size) {
101
+ parentWidthValue = getWidthFromSize(parentFlyout.size);
102
+ }
103
+ if (!childWidthValue && childFlyout !== null && childFlyout !== void 0 && childFlyout.size) {
104
+ childWidthValue = getWidthFromSize(childFlyout.size);
105
+ }
106
+ if (!parentWidthValue || !childWidthValue) {
107
+ return _const.LAYOUT_MODE_SIDE_BY_SIDE;
108
+ }
109
+ var combinedWidth = parentWidthValue + childWidthValue;
110
+ var combinedWidthPercentage = combinedWidth / windowWidth * 100;
111
+
112
+ // Handle fill size flyouts: keep layout as side-by-side when fill flyout is present
113
+ // This allows fill flyouts to dynamically calculate their width based on the other in the pair
114
+ if ((parentFlyout === null || parentFlyout === void 0 ? void 0 : parentFlyout.size) === 'fill' || (childFlyout === null || childFlyout === void 0 ? void 0 : childFlyout.size) === 'fill') {
115
+ // For fill flyouts, we want to maintain side-by-side layout to enable dynamic width calculation
116
+ // Only stack if the viewport is too small (below the small breakpoint)
117
+ if (windowWidth >= Math.round(euiTheme.breakpoint.s * 1.4)) {
118
+ return _const.LAYOUT_MODE_SIDE_BY_SIDE;
119
+ }
120
+ }
121
+ if (currentLayoutMode === _const.LAYOUT_MODE_STACKED) {
122
+ return combinedWidthPercentage <= THRESHOLD_TO_SIDE_BY_SIDE ? _const.LAYOUT_MODE_SIDE_BY_SIDE : _const.LAYOUT_MODE_STACKED;
123
+ } else {
124
+ return combinedWidthPercentage >= THRESHOLD_TO_STACKED ? _const.LAYOUT_MODE_STACKED : _const.LAYOUT_MODE_SIDE_BY_SIDE;
125
+ }
126
+ }, [hasFlyouts, windowWidth, euiTheme, childFlyoutId, parentWidth, childWidth, parentFlyout === null || parentFlyout === void 0 ? void 0 : parentFlyout.size, childFlyout === null || childFlyout === void 0 ? void 0 : childFlyout.size, currentLayoutMode]);
127
+
128
+ // Apply the desired layout mode
129
+ (0, _react.useEffect)(function () {
130
+ if (desiredLayoutMode && currentLayoutMode !== desiredLayoutMode) {
131
+ setMode(desiredLayoutMode);
132
+ }
133
+ }, [desiredLayoutMode, currentLayoutMode, setMode]);
134
+ };
135
+
136
+ /** Convert a flyout `size` value to a pixel width using theme breakpoints. */
137
+ var getWidthFromSize = exports.getWidthFromSize = function getWidthFromSize(size) {
138
+ if (typeof size === 'number') {
139
+ return size;
140
+ }
141
+ if (typeof size === 'string') {
142
+ var parsed = parseInt(size, 10);
143
+ if (!Number.isNaN(parsed)) {
144
+ return parsed;
145
+ }
146
+
147
+ // Size is a function of a percentage of `vw`, defined in `composeFlyoutSizing` in `flyout.styles.ts`
148
+ switch (size) {
149
+ case 's':
150
+ return Math.round(window.innerWidth * 0.25);
151
+ case 'm':
152
+ return Math.round(window.innerWidth * 0.5);
153
+ case 'l':
154
+ return Math.round(window.innerWidth * 0.75);
155
+ case 'fill':
156
+ return Math.round(window.innerWidth * 0.9);
157
+ default:
158
+ break;
159
+ }
160
+ }
161
+ return 0;
162
+ };
163
+
164
+ /** Current layout mode for managed flyouts (`side-by-side` or `stacked`). */
165
+ var useFlyoutLayoutMode = exports.useFlyoutLayoutMode = function useFlyoutLayoutMode() {
166
+ var _context$state2;
167
+ var context = (0, _hooks.useFlyoutManager)();
168
+ return (context === null || context === void 0 || (_context$state2 = context.state) === null || _context$state2 === void 0 ? void 0 : _context$state2.layoutMode) || _const.LAYOUT_MODE_SIDE_BY_SIDE;
169
+ };
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useFlyoutManager = exports.EuiFlyoutManagerContext = exports.EuiFlyoutManager = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _shim = require("use-sync-external-store/shim");
13
+ var _layout_mode = require("./layout_mode");
14
+ var _store = require("./store");
15
+ var _react2 = require("@emotion/react");
16
+ var _excluded = ["getState", "subscribe"];
17
+ /*
18
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
19
+ * or more contributor license agreements. Licensed under the Elastic License
20
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
21
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
22
+ * Side Public License, v 1.
23
+ */
24
+ /**
25
+ * React context that exposes the Flyout Manager API (state + actions).
26
+ */
27
+ 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); }
28
+ 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; }
29
+ 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; }
30
+ 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) { (0, _defineProperty2.default)(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; }
31
+ var EuiFlyoutManagerContext = exports.EuiFlyoutManagerContext = /*#__PURE__*/(0, _react.createContext)(null);
32
+
33
+ /**
34
+ * Provides the Flyout Manager API via context and runs layout-mode logic.
35
+ */
36
+ var EuiFlyoutManager = exports.EuiFlyoutManager = function EuiFlyoutManager(_ref) {
37
+ var children = _ref.children;
38
+ var _getFlyoutManagerStor = (0, _store.getFlyoutManagerStore)(),
39
+ getState = _getFlyoutManagerStor.getState,
40
+ subscribe = _getFlyoutManagerStor.subscribe,
41
+ rest = (0, _objectWithoutProperties2.default)(_getFlyoutManagerStor, _excluded);
42
+ var state = (0, _shim.useSyncExternalStore)(subscribe, getState, getState);
43
+ var api = (0, _react.useMemo)(function () {
44
+ return _objectSpread({
45
+ state: state
46
+ }, rest);
47
+ }, [state, rest]);
48
+ return (0, _react2.jsx)(EuiFlyoutManagerContext.Provider, {
49
+ value: api
50
+ }, (0, _react2.jsx)(EuiFlyoutManagerContainer, null, children));
51
+ };
52
+ var EuiFlyoutManagerContainer = function EuiFlyoutManagerContainer(_ref2) {
53
+ var children = _ref2.children;
54
+ (0, _layout_mode.useApplyFlyoutLayoutMode)();
55
+ return (0, _react2.jsx)(_react.default.Fragment, null, children);
56
+ };
57
+
58
+ /** Hook to access the Flyout Manager API from context. */
59
+ var useFlyoutManager = exports.useFlyoutManager = function useFlyoutManager() {
60
+ return (0, _react.useContext)(EuiFlyoutManagerContext);
61
+ };
@@ -0,0 +1,318 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.flyoutManagerReducer = flyoutManagerReducer;
8
+ exports.initialState = void 0;
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _actions = require("./actions");
12
+ var _const = require("./const");
13
+ 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; }
14
+ 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) { (0, _defineProperty2.default)(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; } /*
15
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
16
+ * or more contributor license agreements. Licensed under the Elastic License
17
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
18
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
19
+ * Side Public License, v 1.
20
+ */
21
+ /**
22
+ * Default flyout manager state used to initialize the reducer.
23
+ */
24
+ var initialState = exports.initialState = {
25
+ sessions: [],
26
+ flyouts: [],
27
+ layoutMode: _const.LAYOUT_MODE_SIDE_BY_SIDE,
28
+ pushPadding: {
29
+ left: 0,
30
+ right: 0
31
+ },
32
+ currentZIndex: 0,
33
+ unmanagedFlyouts: []
34
+ };
35
+
36
+ /**
37
+ * Reducer handling all flyout manager actions and state transitions.
38
+ */
39
+ function flyoutManagerReducer() {
40
+ var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
41
+ var action = arguments.length > 1 ? arguments[1] : undefined;
42
+ switch (action.type) {
43
+ case _actions.ACTION_ADD_UNMANAGED_FLYOUT:
44
+ {
45
+ if (state.unmanagedFlyouts.includes(action.flyoutId)) {
46
+ return state;
47
+ }
48
+ return _objectSpread(_objectSpread({}, state), {}, {
49
+ // Increment by 2 for each new unmanaged flyout.
50
+ // Unmanaged flyouts render on z-index of `n`, and their overlay mask
51
+ // on `n - 1`.
52
+ currentZIndex: state.currentZIndex + 2,
53
+ unmanagedFlyouts: [].concat((0, _toConsumableArray2.default)(state.unmanagedFlyouts), [action.flyoutId])
54
+ });
55
+ }
56
+ case _actions.ACTION_CLOSE_UNMANAGED_FLYOUT:
57
+ {
58
+ var newUnmanagedFlyouts = state.unmanagedFlyouts.filter(function (flyoutId) {
59
+ return flyoutId !== action.flyoutId;
60
+ });
61
+ var newCurrentZIndex = state.currentZIndex;
62
+ if (state.sessions.length === 0 && newUnmanagedFlyouts.length === 0) {
63
+ newCurrentZIndex = 0;
64
+ }
65
+ return _objectSpread(_objectSpread({}, state), {}, {
66
+ unmanagedFlyouts: newUnmanagedFlyouts,
67
+ currentZIndex: newCurrentZIndex
68
+ });
69
+ }
70
+
71
+ // Register a flyout.
72
+ // - Ignore duplicates by `flyoutId`.
73
+ // - For a `main` flyout, start a new session { main, child: null }.
74
+ // - For a `child` flyout, attach it to the most recent session; if no
75
+ // session exists, do nothing (invalid child without a parent).
76
+ case _actions.ACTION_ADD:
77
+ {
78
+ var flyoutId = action.flyoutId,
79
+ title = action.title,
80
+ level = action.level,
81
+ size = action.size;
82
+
83
+ // Ignore duplicate registrations
84
+ if (state.flyouts.some(function (f) {
85
+ return f.flyoutId === flyoutId;
86
+ })) {
87
+ return state;
88
+ }
89
+ var newFlyoutState = {
90
+ level: level,
91
+ flyoutId: flyoutId,
92
+ size: size,
93
+ activityStage: _const.STAGE_OPENING
94
+ };
95
+ var newFlyouts = [].concat((0, _toConsumableArray2.default)(state.flyouts), [newFlyoutState]);
96
+ if (level === _const.LEVEL_MAIN) {
97
+ var newSession = {
98
+ mainFlyoutId: flyoutId,
99
+ title: title,
100
+ childFlyoutId: null,
101
+ zIndex: state.currentZIndex
102
+ };
103
+ return _objectSpread(_objectSpread({}, state), {}, {
104
+ sessions: [].concat((0, _toConsumableArray2.default)(state.sessions), [newSession]),
105
+ flyouts: newFlyouts,
106
+ // Increment by 3 for each new flyout session.
107
+ // Managed flyouts render main flyouts on z-index of `n`,
108
+ // child flyouts on `n - 1` and the overlay mask on `n - 2`.
109
+ currentZIndex: state.currentZIndex + 3
110
+ });
111
+ }
112
+ if (state.sessions.length === 0) {
113
+ return state;
114
+ }
115
+ var updatedSessions = (0, _toConsumableArray2.default)(state.sessions);
116
+ var currentSessionIndex = updatedSessions.length - 1;
117
+ updatedSessions[currentSessionIndex] = _objectSpread(_objectSpread({}, updatedSessions[currentSessionIndex]), {}, {
118
+ childFlyoutId: flyoutId
119
+ });
120
+ return _objectSpread(_objectSpread({}, state), {}, {
121
+ sessions: updatedSessions,
122
+ flyouts: newFlyouts
123
+ });
124
+ }
125
+
126
+ // Unregister a flyout and update sessions accordingly.
127
+ // - When closing a `main` flyout, drop its entire session and all associated flyouts.
128
+ // - When closing a `child` flyout, clear the child pointer on the most
129
+ // recent session if it matches.
130
+ case _actions.ACTION_CLOSE:
131
+ {
132
+ var removedFlyout = state.flyouts.find(function (f) {
133
+ return f.flyoutId === action.flyoutId;
134
+ });
135
+ if (!removedFlyout) {
136
+ return state;
137
+ }
138
+ if (removedFlyout.level === _const.LEVEL_MAIN) {
139
+ // Find the session that contains this main flyout
140
+ var sessionToRemove = state.sessions.find(function (session) {
141
+ return session.mainFlyoutId === action.flyoutId;
142
+ });
143
+ if (sessionToRemove) {
144
+ // Remove all flyouts associated with this session (main + child)
145
+ var flyoutsToRemove = new Set([action.flyoutId]);
146
+ if (sessionToRemove.childFlyoutId) {
147
+ flyoutsToRemove.add(sessionToRemove.childFlyoutId);
148
+ }
149
+ var _newFlyouts = state.flyouts.filter(function (f) {
150
+ return !flyoutsToRemove.has(f.flyoutId);
151
+ });
152
+ var newSessions = state.sessions.filter(function (session) {
153
+ return session.mainFlyoutId !== action.flyoutId;
154
+ });
155
+ var _newCurrentZIndex = state.currentZIndex;
156
+ if (newSessions.length === 0 && state.unmanagedFlyouts.length === 0) {
157
+ // Reset to initial value if no flyouts remain open to avoid
158
+ // the value going too high during the lifecycle of the app
159
+ _newCurrentZIndex = 0;
160
+ }
161
+ return _objectSpread(_objectSpread({}, state), {}, {
162
+ sessions: newSessions,
163
+ flyouts: _newFlyouts,
164
+ currentZIndex: _newCurrentZIndex
165
+ });
166
+ }
167
+ }
168
+
169
+ // Handle child flyout closing (existing logic)
170
+ var _newFlyouts2 = state.flyouts.filter(function (f) {
171
+ return f.flyoutId !== action.flyoutId;
172
+ });
173
+ if (state.sessions.length === 0) {
174
+ return _objectSpread(_objectSpread({}, state), {}, {
175
+ flyouts: _newFlyouts2
176
+ });
177
+ }
178
+ var _updatedSessions = (0, _toConsumableArray2.default)(state.sessions);
179
+ var _currentSessionIndex = _updatedSessions.length - 1;
180
+ if (_updatedSessions[_currentSessionIndex].childFlyoutId === action.flyoutId) {
181
+ _updatedSessions[_currentSessionIndex] = _objectSpread(_objectSpread({}, _updatedSessions[_currentSessionIndex]), {}, {
182
+ childFlyoutId: null
183
+ });
184
+ }
185
+ return _objectSpread(_objectSpread({}, state), {}, {
186
+ sessions: _updatedSessions,
187
+ flyouts: _newFlyouts2
188
+ });
189
+ }
190
+
191
+ // Mark the provided flyout ID as the active child for the latest session.
192
+ case _actions.ACTION_SET_ACTIVE:
193
+ {
194
+ // No-op when no session exists.
195
+ if (state.sessions.length === 0) {
196
+ return state;
197
+ }
198
+ var _updatedSessions2 = (0, _toConsumableArray2.default)(state.sessions);
199
+ var _currentSessionIndex2 = _updatedSessions2.length - 1;
200
+ _updatedSessions2[_currentSessionIndex2] = _objectSpread(_objectSpread({}, _updatedSessions2[_currentSessionIndex2]), {}, {
201
+ childFlyoutId: action.flyoutId
202
+ });
203
+ return _objectSpread(_objectSpread({}, state), {}, {
204
+ sessions: _updatedSessions2
205
+ });
206
+ }
207
+
208
+ // Persist a flyout's measured width (px). Used for responsive layout
209
+ // calculations, e.g., deciding stacked vs side-by-side.
210
+ case _actions.ACTION_SET_WIDTH:
211
+ {
212
+ var _flyoutId = action.flyoutId,
213
+ width = action.width;
214
+ var updatedFlyouts = state.flyouts.map(function (flyout) {
215
+ return flyout.flyoutId === _flyoutId ? _objectSpread(_objectSpread({}, flyout), {}, {
216
+ width: width
217
+ }) : flyout;
218
+ });
219
+ return _objectSpread(_objectSpread({}, state), {}, {
220
+ flyouts: updatedFlyouts
221
+ });
222
+ }
223
+
224
+ // Switch global layout mode for managed flyouts.
225
+ case _actions.ACTION_SET_LAYOUT_MODE:
226
+ {
227
+ return _objectSpread(_objectSpread({}, state), {}, {
228
+ layoutMode: action.layoutMode
229
+ });
230
+ }
231
+
232
+ // Update a flyout's activity stage in state
233
+ case _actions.ACTION_SET_ACTIVITY_STAGE:
234
+ {
235
+ var _flyoutId2 = action.flyoutId;
236
+ var _updatedFlyouts = state.flyouts.map(function (flyout) {
237
+ return flyout.flyoutId === _flyoutId2 ? _objectSpread(_objectSpread({}, flyout), {}, {
238
+ activityStage: action.activityStage
239
+ }) : flyout;
240
+ });
241
+ return _objectSpread(_objectSpread({}, state), {}, {
242
+ flyouts: _updatedFlyouts
243
+ });
244
+ }
245
+
246
+ // Go back one session (remove current session from stack)
247
+ case _actions.ACTION_GO_BACK:
248
+ {
249
+ if (state.sessions.length === 0) {
250
+ return state;
251
+ }
252
+ var _currentSessionIndex3 = state.sessions.length - 1;
253
+ var currentSession = state.sessions[_currentSessionIndex3];
254
+
255
+ // Close all flyouts in the current session
256
+ var _flyoutsToRemove = new Set([currentSession.mainFlyoutId]);
257
+ if (currentSession.childFlyoutId) {
258
+ _flyoutsToRemove.add(currentSession.childFlyoutId);
259
+ }
260
+ var _newFlyouts3 = state.flyouts.filter(function (f) {
261
+ return !_flyoutsToRemove.has(f.flyoutId);
262
+ });
263
+ var _newSessions = state.sessions.slice(0, _currentSessionIndex3);
264
+ return _objectSpread(_objectSpread({}, state), {}, {
265
+ sessions: _newSessions,
266
+ flyouts: _newFlyouts3
267
+ });
268
+ }
269
+
270
+ // Navigate to a specific flyout (remove all sessions after it)
271
+ case _actions.ACTION_GO_TO_FLYOUT:
272
+ {
273
+ var _flyoutId3 = action.flyoutId;
274
+
275
+ // Find the session containing the target flyout
276
+ var targetSessionIndex = state.sessions.findIndex(function (session) {
277
+ return session.mainFlyoutId === _flyoutId3;
278
+ });
279
+ if (targetSessionIndex === -1) {
280
+ return state; // Target flyout not found
281
+ }
282
+
283
+ // Close all sessions after the target session
284
+ var sessionsToClose = state.sessions.slice(targetSessionIndex + 1);
285
+ var _flyoutsToRemove2 = new Set();
286
+ sessionsToClose.forEach(function (session) {
287
+ _flyoutsToRemove2.add(session.mainFlyoutId);
288
+ if (session.childFlyoutId) {
289
+ _flyoutsToRemove2.add(session.childFlyoutId);
290
+ }
291
+ });
292
+ var _newFlyouts4 = state.flyouts.filter(function (f) {
293
+ return !_flyoutsToRemove2.has(f.flyoutId);
294
+ });
295
+ var _newSessions2 = state.sessions.slice(0, targetSessionIndex + 1);
296
+ return _objectSpread(_objectSpread({}, state), {}, {
297
+ sessions: _newSessions2,
298
+ flyouts: _newFlyouts4
299
+ });
300
+ }
301
+
302
+ // Set push padding offset for a specific side
303
+ case _actions.ACTION_SET_PUSH_PADDING:
304
+ {
305
+ var _state$pushPadding;
306
+ var side = action.side,
307
+ _width = action.width;
308
+ return _objectSpread(_objectSpread({}, state), {}, {
309
+ pushPadding: _objectSpread(_objectSpread({}, (_state$pushPadding = state.pushPadding) !== null && _state$pushPadding !== void 0 ? _state$pushPadding : {
310
+ left: 0,
311
+ right: 0
312
+ }), {}, (0, _defineProperty2.default)({}, side, _width))
313
+ });
314
+ }
315
+ default:
316
+ return state;
317
+ }
318
+ }
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useSession = exports.usePushPaddingOffsets = exports.useParentFlyoutSize = exports.useIsFlyoutRegistered = exports.useIsFlyoutActive = exports.useHasPushPadding = exports.useHasChildFlyout = exports.useHasActiveSession = exports.useFlyoutWidth = exports.useFlyout = exports.useCurrentSession = exports.useCurrentMainFlyout = exports.useCurrentFlyoutZIndexRef = exports.useCurrentChildFlyout = void 0;
7
+ var _provider = require("./provider");
8
+ var _react = require("react");
9
+ /*
10
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
11
+ * or more contributor license agreements. Licensed under the Elastic License
12
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
13
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
14
+ * Side Public License, v 1.
15
+ */
16
+
17
+ var useSession = exports.useSession = function useSession(flyoutId) {
18
+ var context = (0, _provider.useFlyoutManager)();
19
+ if (!context) {
20
+ return null;
21
+ }
22
+ return context.state.sessions.find(function (s) {
23
+ return s.mainFlyoutId === flyoutId || s.childFlyoutId === flyoutId;
24
+ }) || null;
25
+ };
26
+
27
+ /** True when any managed flyout session is currently active. */
28
+ var useHasActiveSession = exports.useHasActiveSession = function useHasActiveSession() {
29
+ return !!useCurrentSession();
30
+ };
31
+
32
+ /** True if the given `flyoutId` is the main or child flyout in the latest session. */
33
+ var useIsFlyoutActive = exports.useIsFlyoutActive = function useIsFlyoutActive(flyoutId) {
34
+ var currentSession = useCurrentSession();
35
+ return (currentSession === null || currentSession === void 0 ? void 0 : currentSession.mainFlyoutId) === flyoutId || (currentSession === null || currentSession === void 0 ? void 0 : currentSession.childFlyoutId) === flyoutId;
36
+ };
37
+ var useFlyout = exports.useFlyout = function useFlyout(flyoutId) {
38
+ var context = (0, _provider.useFlyoutManager)();
39
+ if (!context || !flyoutId) {
40
+ return null;
41
+ }
42
+ return context.state.flyouts.find(function (f) {
43
+ return f.flyoutId === flyoutId;
44
+ }) || null;
45
+ };
46
+ var useIsFlyoutRegistered = exports.useIsFlyoutRegistered = function useIsFlyoutRegistered(flyoutId) {
47
+ var context = (0, _provider.useFlyoutManager)();
48
+ if (!context || !flyoutId) {
49
+ return false;
50
+ }
51
+ return context.state.flyouts.some(function (f) {
52
+ return f.flyoutId === flyoutId;
53
+ });
54
+ };
55
+
56
+ /** The most recent flyout session or `null` if none. */
57
+ var useCurrentSession = exports.useCurrentSession = function useCurrentSession() {
58
+ var context = (0, _provider.useFlyoutManager)();
59
+ if (!context) return null;
60
+ return context.state.sessions[context.state.sessions.length - 1] || null;
61
+ };
62
+
63
+ /** The registered state of the current session's main flyout, if present. */
64
+ var useCurrentMainFlyout = exports.useCurrentMainFlyout = function useCurrentMainFlyout() {
65
+ var currentSession = useCurrentSession();
66
+ var mainFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.mainFlyoutId;
67
+ return useFlyout(mainFlyoutId);
68
+ };
69
+
70
+ /** The registered state of the current session's child flyout, if present. */
71
+ var useCurrentChildFlyout = exports.useCurrentChildFlyout = function useCurrentChildFlyout() {
72
+ var currentSession = useCurrentSession();
73
+ var childFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.childFlyoutId;
74
+ return useFlyout(childFlyoutId);
75
+ };
76
+
77
+ /** The measured width (px) of the specified flyout, or `null` if unknown. */
78
+ var useFlyoutWidth = exports.useFlyoutWidth = function useFlyoutWidth(flyoutId) {
79
+ var _useFlyout;
80
+ return (_useFlyout = useFlyout(flyoutId)) === null || _useFlyout === void 0 ? void 0 : _useFlyout.width;
81
+ };
82
+
83
+ /** The configured size of the parent (main) flyout for a given child flyout ID. */
84
+ var useParentFlyoutSize = exports.useParentFlyoutSize = function useParentFlyoutSize(childFlyoutId) {
85
+ var session = useSession(childFlyoutId);
86
+ var parentFlyout = useFlyout(session === null || session === void 0 ? void 0 : session.mainFlyoutId);
87
+ return parentFlyout === null || parentFlyout === void 0 ? void 0 : parentFlyout.size;
88
+ };
89
+
90
+ /** True if the provided `flyoutId` is the main flyout and it currently has a child. */
91
+ var useHasChildFlyout = exports.useHasChildFlyout = function useHasChildFlyout(flyoutId) {
92
+ var session = useSession(flyoutId);
93
+ return !!(session !== null && session !== void 0 && session.childFlyoutId);
94
+ };
95
+
96
+ /** Get the current push padding offsets from manager state. */
97
+ var usePushPaddingOffsets = exports.usePushPaddingOffsets = function usePushPaddingOffsets() {
98
+ var _context$state$pushPa;
99
+ var context = (0, _provider.useFlyoutManager)();
100
+ if (!context) {
101
+ return {
102
+ left: 0,
103
+ right: 0
104
+ };
105
+ }
106
+ return (_context$state$pushPa = context.state.pushPadding) !== null && _context$state$pushPa !== void 0 ? _context$state$pushPa : {
107
+ left: 0,
108
+ right: 0
109
+ };
110
+ };
111
+
112
+ /** True if there's any active push padding (left or right side). */
113
+ var useHasPushPadding = exports.useHasPushPadding = function useHasPushPadding() {
114
+ var pushPadding = usePushPaddingOffsets();
115
+ return pushPadding.left > 0 || pushPadding.right > 0;
116
+ };
117
+
118
+ /** Get the ref for the current flyout z-index to be used */
119
+ var useCurrentFlyoutZIndexRef = exports.useCurrentFlyoutZIndexRef = function useCurrentFlyoutZIndexRef() {
120
+ var context = (0, _provider.useFlyoutManager)();
121
+ return (0, _react.useRef)((context === null || context === void 0 ? void 0 : context.state.currentZIndex) || 0);
122
+ };