@elastic/eui 106.1.0-amsterdam.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 (561) 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 +4 -3
  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/color/vis_color_store.js +1 -1
  129. package/es/services/emotion/prefixer.js +116 -22
  130. package/es/services/theme/context.js +2 -2
  131. package/eui.d.ts +1126 -772
  132. package/i18ntokens.json +624 -624
  133. package/lib/components/accessibility/index.js +8 -1
  134. package/lib/components/accessibility/live_announcer/index.js +16 -0
  135. package/lib/components/accessibility/live_announcer/live_announcer.js +93 -0
  136. package/lib/components/accessibility/screen_reader_live/screen_reader_live.js +7 -0
  137. package/lib/components/avatar/avatar.js +1 -1
  138. package/lib/components/badge/badge.js +1 -1
  139. package/lib/components/badge/beta_badge/beta_badge.js +1 -1
  140. package/lib/components/basic_table/basic_table.js +4 -4
  141. package/lib/components/basic_table/in_memory_table.js +4 -4
  142. package/lib/components/button/button.js +1 -1
  143. package/lib/components/button/button_display/_button_display.js +1 -1
  144. package/lib/components/button/button_display/_button_display_content.js +1 -1
  145. package/lib/components/button/button_empty/button_empty.js +1 -1
  146. package/lib/components/button/button_group/button_group.js +1 -1
  147. package/lib/components/button/button_group/button_group_button.js +1 -1
  148. package/lib/components/button/button_icon/button_icon.js +1 -1
  149. package/lib/components/call_out/call_out.js +17 -6
  150. package/lib/components/card/card.js +2 -2
  151. package/lib/components/card/card_select/card_select.js +1 -1
  152. package/lib/components/card/checkable_card/checkable_card.js +29 -4
  153. package/lib/components/code/code_block.js +5 -2
  154. package/lib/components/code/code_block_virtualized.js +5 -3
  155. package/lib/components/collapsible_nav/collapsible_nav.js +4 -106
  156. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  157. package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  158. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  159. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  160. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  161. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  162. package/lib/components/combo_box/combo_box.a11y.js +97 -81
  163. package/lib/components/combo_box/combo_box.js +3 -2
  164. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +50 -25
  165. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +5 -1
  166. package/lib/components/comment_list/comment.js +2 -2
  167. package/lib/components/comment_list/comment_event.js +1 -1
  168. package/lib/components/comment_list/comment_list.js +2 -2
  169. package/lib/components/comment_list/comment_timeline.js +1 -1
  170. package/lib/components/context_menu/context_menu_item.js +1 -1
  171. package/lib/components/datagrid/body/cell/data_grid_cell.js +12 -12
  172. package/lib/components/datagrid/body/data_grid_body.js +7 -7
  173. package/lib/components/datagrid/body/data_grid_body_custom.js +7 -7
  174. package/lib/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  175. package/lib/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  176. package/lib/components/datagrid/controls/column_sorting.js +7 -7
  177. package/lib/components/datagrid/controls/column_sorting_draggable.js +1 -1
  178. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  179. package/lib/components/datagrid/data_grid.styles.js +1 -1
  180. package/lib/components/datagrid/utils/in_memory.js +6 -6
  181. package/lib/components/date_picker/date_picker.js +2 -2
  182. package/lib/components/date_picker/date_picker_range.js +1 -1
  183. package/lib/components/empty_prompt/empty_prompt.js +1 -1
  184. package/lib/components/facet/facet_button.js +1 -1
  185. package/lib/components/filter_group/filter_select_item.js +16 -3
  186. package/lib/components/flyout/const.js +49 -0
  187. package/lib/components/flyout/flyout.component.js +385 -0
  188. package/lib/components/flyout/flyout.js +68 -362
  189. package/lib/components/flyout/flyout.styles.js +98 -3
  190. package/lib/components/flyout/flyout_menu.js +95 -0
  191. package/lib/components/flyout/flyout_menu.styles.js +22 -0
  192. package/{optimize/lib/components/flyout/flyout_context.js → lib/components/flyout/flyout_menu_context.js} +2 -7
  193. package/lib/components/flyout/flyout_resizable.js +3 -2
  194. package/lib/components/flyout/hooks.js +30 -0
  195. package/lib/components/flyout/index.js +14 -14
  196. package/lib/components/flyout/manager/actions.js +103 -0
  197. package/lib/components/flyout/manager/activity_stage.js +77 -0
  198. package/lib/components/flyout/manager/const.js +56 -0
  199. package/lib/components/flyout/manager/context.js +41 -0
  200. package/lib/components/flyout/manager/flyout_child.js +85 -0
  201. package/lib/components/flyout/manager/flyout_child.styles.js +32 -0
  202. package/lib/components/flyout/manager/flyout_main.js +70 -0
  203. package/lib/components/flyout/manager/flyout_main.styles.js +31 -0
  204. package/lib/components/flyout/manager/flyout_managed.js +136 -0
  205. package/lib/components/flyout/manager/flyout_managed.styles.js +70 -0
  206. package/lib/components/flyout/manager/hooks.js +161 -0
  207. package/lib/components/flyout/manager/index.js +150 -0
  208. package/lib/components/flyout/manager/layout_mode.js +171 -0
  209. package/lib/components/flyout/manager/provider.js +46 -0
  210. package/lib/components/flyout/manager/reducer.js +205 -0
  211. package/lib/components/flyout/manager/selectors.js +93 -0
  212. package/lib/components/flyout/manager/validation.js +121 -0
  213. package/lib/components/form/field_number/field_number.js +2 -2
  214. package/lib/components/form/field_password/field_password.styles.js +1 -0
  215. package/lib/components/form/field_text/field_text.js +2 -2
  216. package/lib/components/form/form.styles.js +2 -2
  217. package/lib/components/form/form_control_layout/form_control_layout.js +2 -2
  218. package/lib/components/form/form_control_layout/form_control_layout.styles.js +1 -1
  219. package/lib/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  220. package/lib/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  221. package/lib/components/form/range/range.styles.js +2 -2
  222. package/lib/components/form/text_area/text_area.js +2 -2
  223. package/lib/components/header/header_links/header_link.js +1 -1
  224. package/lib/components/header/header_links/header_links.js +1 -1
  225. package/lib/components/header/header_logo/header_logo.js +1 -1
  226. package/lib/components/header/header_section/header_section_item_button.js +1 -1
  227. package/lib/components/icon/assets/thumbDown.js +44 -0
  228. package/lib/components/icon/assets/thumbUp.js +44 -0
  229. package/lib/components/icon/icon.js +1 -1
  230. package/lib/components/icon/icon_map.js +2 -0
  231. package/lib/components/icon/svgs/thumbDown.svg +4 -0
  232. package/lib/components/icon/svgs/thumbUp.svg +4 -0
  233. package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -1
  234. package/lib/components/list_group/list_group.js +2 -2
  235. package/lib/components/list_group/list_group_item.js +2 -2
  236. package/lib/components/list_group/list_group_item_extra_action.js +1 -1
  237. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  238. package/lib/components/loading/loading_logo.js +1 -1
  239. package/lib/components/markdown_editor/index.js +7 -0
  240. package/lib/components/markdown_editor/markdown_editor.js +16 -5
  241. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +6 -4
  242. package/lib/components/markdown_editor/markdown_editor_footer.js +11 -118
  243. package/lib/components/markdown_editor/markdown_editor_footer.styles.js +0 -2
  244. package/lib/components/markdown_editor/markdown_editor_help_button.js +151 -0
  245. package/lib/components/markdown_editor/markdown_editor_help_button.styles.js +22 -0
  246. package/lib/components/markdown_editor/markdown_editor_toolbar.js +29 -24
  247. package/lib/components/overlay_mask/overlay_mask.js +7 -2
  248. package/lib/components/overlay_mask/overlay_mask.styles.js +11 -4
  249. package/lib/components/page/page_header/page_header_content.js +1 -1
  250. package/lib/components/pagination/pagination_button.js +1 -1
  251. package/lib/components/popover/popover.js +2 -1
  252. package/lib/components/provider/provider.js +4 -3
  253. package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  254. package/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
  255. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  256. package/lib/components/table/table_header_cell.js +1 -1
  257. package/lib/components/timeline/timeline_item_icon.js +1 -1
  258. package/lib/components/toast/global_toast_list.js +1 -1
  259. package/lib/components/toast/toast.js +1 -1
  260. package/lib/components/tool_tip/icon_tip.js +1 -1
  261. package/lib/global_styling/mixins/_button.js +1 -1
  262. package/lib/services/color/vis_color_store.js +2 -2
  263. package/lib/services/emotion/prefixer.js +116 -22
  264. package/lib/services/theme/context.js +2 -2
  265. package/optimize/es/components/accessibility/index.js +2 -1
  266. package/optimize/es/components/{flyout/sessions → accessibility/live_announcer}/index.js +1 -2
  267. package/optimize/es/components/accessibility/live_announcer/live_announcer.js +68 -0
  268. package/optimize/es/components/accessibility/screen_reader_live/screen_reader_live.js +1 -0
  269. package/optimize/es/components/call_out/call_out.js +6 -2
  270. package/optimize/es/components/card/checkable_card/checkable_card.js +25 -5
  271. package/optimize/es/components/code/code_block.js +5 -2
  272. package/optimize/es/components/code/code_block_virtualized.js +5 -3
  273. package/optimize/es/components/combo_box/combo_box.a11y.js +97 -81
  274. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +49 -24
  275. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +6 -2
  276. package/optimize/es/components/datagrid/data_grid.styles.js +1 -1
  277. package/optimize/es/components/filter_group/filter_select_item.js +15 -3
  278. package/optimize/es/components/flyout/const.js +42 -0
  279. package/optimize/es/components/flyout/flyout.component.js +346 -0
  280. package/optimize/es/components/flyout/flyout.js +39 -332
  281. package/optimize/es/components/flyout/flyout.styles.js +95 -3
  282. package/optimize/es/components/flyout/flyout_menu.js +74 -0
  283. package/optimize/es/components/flyout/flyout_menu.styles.js +16 -0
  284. package/{es/components/flyout/flyout_context.js → optimize/es/components/flyout/flyout_menu_context.js} +1 -7
  285. package/optimize/es/components/flyout/flyout_resizable.js +3 -2
  286. package/optimize/es/components/flyout/hooks.js +25 -0
  287. package/optimize/es/components/flyout/index.js +4 -2
  288. package/optimize/es/components/flyout/manager/actions.js +97 -0
  289. package/optimize/es/components/flyout/manager/activity_stage.js +71 -0
  290. package/optimize/es/components/flyout/manager/const.js +50 -0
  291. package/optimize/es/components/flyout/manager/context.js +33 -0
  292. package/optimize/es/components/flyout/manager/flyout_child.js +76 -0
  293. package/optimize/es/components/flyout/manager/flyout_child.styles.js +26 -0
  294. package/optimize/es/components/flyout/manager/flyout_main.js +61 -0
  295. package/optimize/es/components/flyout/manager/flyout_main.styles.js +25 -0
  296. package/optimize/es/components/flyout/manager/flyout_managed.js +125 -0
  297. package/optimize/es/components/flyout/manager/flyout_managed.styles.js +66 -0
  298. package/optimize/es/components/flyout/manager/hooks.js +93 -0
  299. package/optimize/es/components/flyout/manager/index.js +31 -0
  300. package/optimize/es/components/flyout/manager/layout_mode.js +159 -0
  301. package/optimize/es/components/flyout/manager/provider.js +37 -0
  302. package/optimize/es/components/flyout/manager/reducer.js +192 -0
  303. package/optimize/es/components/flyout/manager/selectors.js +87 -0
  304. package/optimize/es/components/flyout/manager/validation.js +112 -0
  305. package/optimize/es/components/form/field_password/field_password.styles.js +1 -0
  306. package/optimize/es/components/form/form.styles.js +2 -2
  307. package/optimize/es/components/form/form_control_layout/form_control_layout.styles.js +1 -1
  308. package/optimize/es/components/form/range/range.styles.js +2 -2
  309. package/optimize/es/components/icon/assets/thumbDown.js +36 -0
  310. package/optimize/es/components/icon/assets/thumbUp.js +36 -0
  311. package/optimize/es/components/icon/icon_map.js +2 -0
  312. package/optimize/es/components/markdown_editor/index.js +1 -0
  313. package/optimize/es/components/markdown_editor/markdown_editor.js +7 -3
  314. package/optimize/es/components/markdown_editor/markdown_editor_drop_zone.js +3 -2
  315. package/optimize/es/components/markdown_editor/markdown_editor_footer.js +12 -120
  316. package/optimize/es/components/markdown_editor/markdown_editor_footer.styles.js +0 -2
  317. package/optimize/es/components/markdown_editor/markdown_editor_help_button.js +139 -0
  318. package/optimize/es/components/markdown_editor/markdown_editor_help_button.styles.js +16 -0
  319. package/optimize/es/components/markdown_editor/markdown_editor_toolbar.js +20 -16
  320. package/optimize/es/components/overlay_mask/overlay_mask.js +8 -3
  321. package/optimize/es/components/overlay_mask/overlay_mask.styles.js +11 -2
  322. package/optimize/es/components/popover/popover.js +2 -1
  323. package/optimize/es/components/provider/provider.js +4 -3
  324. package/optimize/es/global_styling/mixins/_button.js +1 -1
  325. package/optimize/es/services/color/vis_color_store.js +1 -1
  326. package/optimize/es/services/emotion/prefixer.js +116 -22
  327. package/optimize/es/services/theme/context.js +2 -2
  328. package/optimize/lib/components/accessibility/index.js +8 -1
  329. package/optimize/lib/components/accessibility/live_announcer/index.js +16 -0
  330. package/optimize/lib/components/accessibility/live_announcer/live_announcer.js +77 -0
  331. package/optimize/lib/components/accessibility/screen_reader_live/screen_reader_live.js +1 -0
  332. package/optimize/lib/components/call_out/call_out.js +7 -3
  333. package/optimize/lib/components/card/checkable_card/checkable_card.js +24 -4
  334. package/optimize/lib/components/code/code_block.js +5 -2
  335. package/optimize/lib/components/code/code_block_virtualized.js +5 -3
  336. package/optimize/lib/components/combo_box/combo_box.a11y.js +97 -81
  337. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +49 -24
  338. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +5 -1
  339. package/optimize/lib/components/datagrid/data_grid.styles.js +1 -1
  340. package/optimize/lib/components/filter_group/filter_select_item.js +15 -3
  341. package/optimize/lib/components/flyout/const.js +49 -0
  342. package/optimize/lib/components/flyout/flyout.component.js +354 -0
  343. package/optimize/lib/components/flyout/flyout.js +63 -332
  344. package/optimize/lib/components/flyout/flyout.styles.js +95 -3
  345. package/optimize/lib/components/flyout/flyout_menu.js +83 -0
  346. package/optimize/lib/components/flyout/flyout_menu.styles.js +22 -0
  347. package/{lib/components/flyout/flyout_context.js → optimize/lib/components/flyout/flyout_menu_context.js} +2 -7
  348. package/optimize/lib/components/flyout/flyout_resizable.js +3 -2
  349. package/optimize/lib/components/flyout/hooks.js +30 -0
  350. package/optimize/lib/components/flyout/index.js +14 -14
  351. package/optimize/lib/components/flyout/manager/actions.js +103 -0
  352. package/optimize/lib/components/flyout/manager/activity_stage.js +77 -0
  353. package/optimize/lib/components/flyout/manager/const.js +56 -0
  354. package/optimize/lib/components/flyout/manager/context.js +41 -0
  355. package/optimize/lib/components/flyout/manager/flyout_child.js +81 -0
  356. package/optimize/lib/components/flyout/manager/flyout_child.styles.js +32 -0
  357. package/optimize/lib/components/flyout/manager/flyout_main.js +66 -0
  358. package/optimize/lib/components/flyout/manager/flyout_main.styles.js +31 -0
  359. package/optimize/lib/components/flyout/manager/flyout_managed.js +134 -0
  360. package/optimize/lib/components/flyout/manager/flyout_managed.styles.js +71 -0
  361. package/optimize/lib/components/flyout/manager/hooks.js +159 -0
  362. package/optimize/lib/components/flyout/manager/index.js +150 -0
  363. package/optimize/lib/components/flyout/manager/layout_mode.js +169 -0
  364. package/optimize/lib/components/flyout/manager/provider.js +46 -0
  365. package/optimize/lib/components/flyout/manager/reducer.js +198 -0
  366. package/optimize/lib/components/flyout/manager/selectors.js +93 -0
  367. package/optimize/lib/components/flyout/manager/validation.js +121 -0
  368. package/optimize/lib/components/form/field_password/field_password.styles.js +1 -0
  369. package/optimize/lib/components/form/form.styles.js +2 -2
  370. package/optimize/lib/components/form/form_control_layout/form_control_layout.styles.js +1 -1
  371. package/optimize/lib/components/form/range/range.styles.js +2 -2
  372. package/optimize/lib/components/icon/assets/thumbDown.js +44 -0
  373. package/optimize/lib/components/icon/assets/thumbUp.js +44 -0
  374. package/optimize/lib/components/icon/icon_map.js +2 -0
  375. package/optimize/lib/components/icon/svgs/thumbDown.svg +4 -0
  376. package/optimize/lib/components/icon/svgs/thumbUp.svg +4 -0
  377. package/optimize/lib/components/markdown_editor/index.js +7 -0
  378. package/optimize/lib/components/markdown_editor/markdown_editor.js +7 -3
  379. package/optimize/lib/components/markdown_editor/markdown_editor_drop_zone.js +3 -2
  380. package/optimize/lib/components/markdown_editor/markdown_editor_footer.js +9 -118
  381. package/optimize/lib/components/markdown_editor/markdown_editor_footer.styles.js +0 -2
  382. package/optimize/lib/components/markdown_editor/markdown_editor_help_button.js +150 -0
  383. package/optimize/lib/components/markdown_editor/markdown_editor_help_button.styles.js +22 -0
  384. package/optimize/lib/components/markdown_editor/markdown_editor_toolbar.js +20 -16
  385. package/optimize/lib/components/overlay_mask/overlay_mask.js +7 -2
  386. package/optimize/lib/components/overlay_mask/overlay_mask.styles.js +11 -4
  387. package/optimize/lib/components/popover/popover.js +2 -1
  388. package/optimize/lib/components/provider/provider.js +4 -3
  389. package/optimize/lib/global_styling/mixins/_button.js +1 -1
  390. package/optimize/lib/services/color/vis_color_store.js +2 -2
  391. package/optimize/lib/services/emotion/prefixer.js +116 -22
  392. package/optimize/lib/services/theme/context.js +2 -2
  393. package/package.json +3 -2
  394. package/src/components/date_picker/react-datepicker/src/stylesheets/datepicker.scss +6 -7
  395. package/src/global_styling/mixins/_typography.scss +0 -1
  396. package/src/themes/amsterdam/global_styling/mixins/_typography.scss +0 -1
  397. package/test-env/components/accessibility/index.js +8 -1
  398. package/test-env/components/accessibility/live_announcer/index.js +16 -0
  399. package/test-env/components/accessibility/live_announcer/live_announcer.js +87 -0
  400. package/test-env/components/accessibility/screen_reader_live/screen_reader_live.js +7 -0
  401. package/test-env/components/avatar/avatar.js +1 -1
  402. package/test-env/components/badge/badge.js +1 -1
  403. package/test-env/components/badge/beta_badge/beta_badge.js +1 -1
  404. package/test-env/components/basic_table/basic_table.js +4 -4
  405. package/test-env/components/basic_table/in_memory_table.js +4 -4
  406. package/test-env/components/button/button.js +1 -1
  407. package/test-env/components/button/button_display/_button_display.js +1 -1
  408. package/test-env/components/button/button_display/_button_display_content.js +1 -1
  409. package/test-env/components/button/button_empty/button_empty.js +1 -1
  410. package/test-env/components/button/button_group/button_group.js +1 -1
  411. package/test-env/components/button/button_group/button_group_button.js +1 -1
  412. package/test-env/components/button/button_icon/button_icon.js +1 -1
  413. package/test-env/components/call_out/call_out.js +17 -6
  414. package/test-env/components/card/card.js +2 -2
  415. package/test-env/components/card/card_select/card_select.js +1 -1
  416. package/test-env/components/card/checkable_card/checkable_card.js +24 -4
  417. package/test-env/components/code/code_block_virtualized.js +5 -3
  418. package/test-env/components/collapsible_nav/collapsible_nav.js +4 -106
  419. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  420. package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
  421. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  422. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  423. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  424. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  425. package/test-env/components/combo_box/combo_box.a11y.js +97 -81
  426. package/test-env/components/combo_box/combo_box.js +3 -2
  427. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +50 -25
  428. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +5 -1
  429. package/test-env/components/comment_list/comment.js +2 -2
  430. package/test-env/components/comment_list/comment_event.js +1 -1
  431. package/test-env/components/comment_list/comment_list.js +2 -2
  432. package/test-env/components/comment_list/comment_timeline.js +1 -1
  433. package/test-env/components/context_menu/context_menu_item.js +1 -1
  434. package/test-env/components/datagrid/body/cell/data_grid_cell.js +12 -12
  435. package/test-env/components/datagrid/body/data_grid_body.js +7 -7
  436. package/test-env/components/datagrid/body/data_grid_body_custom.js +7 -7
  437. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +7 -7
  438. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +6 -6
  439. package/test-env/components/datagrid/controls/column_sorting.js +7 -7
  440. package/test-env/components/datagrid/controls/column_sorting_draggable.js +1 -1
  441. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  442. package/test-env/components/datagrid/data_grid.styles.js +1 -1
  443. package/test-env/components/datagrid/utils/in_memory.js +6 -6
  444. package/test-env/components/date_picker/date_picker.js +2 -2
  445. package/test-env/components/date_picker/date_picker_range.js +1 -1
  446. package/test-env/components/empty_prompt/empty_prompt.js +1 -1
  447. package/test-env/components/facet/facet_button.js +1 -1
  448. package/test-env/components/filter_group/filter_select_item.js +16 -3
  449. package/test-env/components/flyout/const.js +49 -0
  450. package/test-env/components/flyout/flyout.component.js +374 -0
  451. package/test-env/components/flyout/flyout.styles.js +95 -3
  452. package/test-env/components/flyout/flyout_menu.js +94 -0
  453. package/test-env/components/flyout/flyout_menu.styles.js +22 -0
  454. package/test-env/components/flyout/{flyout_context.js → flyout_menu_context.js} +2 -7
  455. package/test-env/components/flyout/flyout_resizable.js +3 -2
  456. package/test-env/components/flyout/hooks.js +30 -0
  457. package/test-env/components/flyout/index.js +14 -14
  458. package/test-env/components/flyout/manager/actions.js +103 -0
  459. package/test-env/components/flyout/manager/activity_stage.js +77 -0
  460. package/test-env/components/flyout/manager/const.js +56 -0
  461. package/test-env/components/flyout/manager/context.js +41 -0
  462. package/test-env/components/flyout/manager/flyout_child.js +81 -0
  463. package/test-env/components/flyout/manager/flyout_child.styles.js +32 -0
  464. package/test-env/components/flyout/manager/flyout_main.js +66 -0
  465. package/test-env/components/flyout/manager/flyout_main.styles.js +31 -0
  466. package/test-env/components/flyout/manager/flyout_managed.js +134 -0
  467. package/test-env/components/flyout/manager/flyout_managed.styles.js +71 -0
  468. package/test-env/components/flyout/manager/hooks.js +159 -0
  469. package/test-env/components/flyout/manager/index.js +150 -0
  470. package/test-env/components/flyout/manager/layout_mode.js +169 -0
  471. package/test-env/components/flyout/manager/provider.js +46 -0
  472. package/test-env/components/flyout/manager/reducer.js +198 -0
  473. package/test-env/components/flyout/manager/selectors.js +93 -0
  474. package/test-env/components/flyout/manager/validation.js +121 -0
  475. package/test-env/components/form/field_number/field_number.js +2 -2
  476. package/test-env/components/form/field_password/field_password.styles.js +1 -0
  477. package/test-env/components/form/field_text/field_text.js +2 -2
  478. package/test-env/components/form/form.styles.js +2 -2
  479. package/test-env/components/form/form_control_layout/form_control_layout.js +2 -2
  480. package/test-env/components/form/form_control_layout/form_control_layout.styles.js +1 -1
  481. package/test-env/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  482. package/test-env/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  483. package/test-env/components/form/range/range.styles.js +2 -2
  484. package/test-env/components/form/text_area/text_area.js +2 -2
  485. package/test-env/components/header/header_links/header_link.js +1 -1
  486. package/test-env/components/header/header_links/header_links.js +1 -1
  487. package/test-env/components/header/header_logo/header_logo.js +1 -1
  488. package/test-env/components/header/header_section/header_section_item_button.js +1 -1
  489. package/test-env/components/icon/assets/thumbDown.js +44 -0
  490. package/test-env/components/icon/assets/thumbUp.js +44 -0
  491. package/test-env/components/icon/icon_map.js +2 -0
  492. package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -1
  493. package/test-env/components/list_group/list_group.js +2 -2
  494. package/test-env/components/list_group/list_group_item.js +2 -2
  495. package/test-env/components/list_group/list_group_item_extra_action.js +1 -1
  496. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  497. package/test-env/components/loading/loading_logo.js +1 -1
  498. package/test-env/components/markdown_editor/index.js +7 -0
  499. package/test-env/components/markdown_editor/markdown_editor.js +16 -5
  500. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +6 -4
  501. package/test-env/components/markdown_editor/markdown_editor_footer.js +10 -119
  502. package/test-env/components/markdown_editor/markdown_editor_footer.styles.js +0 -2
  503. package/test-env/components/markdown_editor/markdown_editor_help_button.js +150 -0
  504. package/test-env/components/markdown_editor/markdown_editor_help_button.styles.js +22 -0
  505. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +29 -24
  506. package/test-env/components/overlay_mask/overlay_mask.js +7 -2
  507. package/test-env/components/overlay_mask/overlay_mask.styles.js +11 -4
  508. package/test-env/components/page/page_header/page_header_content.js +1 -1
  509. package/test-env/components/pagination/pagination_button.js +1 -1
  510. package/test-env/components/popover/popover.js +2 -1
  511. package/test-env/components/provider/provider.js +4 -3
  512. package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
  513. package/test-env/components/selectable/selectable_list/selectable_list_item.js +1 -1
  514. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  515. package/test-env/components/table/table_header_cell.js +1 -1
  516. package/test-env/components/timeline/timeline_item_icon.js +1 -1
  517. package/test-env/components/toast/global_toast_list.js +1 -1
  518. package/test-env/components/toast/toast.js +1 -1
  519. package/test-env/components/tool_tip/icon_tip.js +1 -1
  520. package/test-env/global_styling/mixins/_button.js +1 -1
  521. package/test-env/services/color/vis_color_store.js +2 -2
  522. package/test-env/services/emotion/prefixer.js +116 -22
  523. package/test-env/services/theme/context.js +2 -2
  524. package/es/components/flyout/flyout_child.js +0 -223
  525. package/es/components/flyout/flyout_child.styles.js +0 -32
  526. package/es/components/flyout/flyout_child_manager.js +0 -114
  527. package/es/components/flyout/sessions/flyout_provider.js +0 -95
  528. package/es/components/flyout/sessions/flyout_reducer.js +0 -195
  529. package/es/components/flyout/sessions/use_eui_flyout.js +0 -82
  530. package/lib/components/flyout/flyout_child.js +0 -231
  531. package/lib/components/flyout/flyout_child.styles.js +0 -38
  532. package/lib/components/flyout/flyout_child_manager.js +0 -122
  533. package/lib/components/flyout/sessions/flyout_provider.js +0 -102
  534. package/lib/components/flyout/sessions/flyout_reducer.js +0 -202
  535. package/lib/components/flyout/sessions/index.js +0 -25
  536. package/lib/components/flyout/sessions/use_eui_flyout.js +0 -88
  537. package/optimize/es/components/flyout/flyout_child.js +0 -178
  538. package/optimize/es/components/flyout/flyout_child.styles.js +0 -32
  539. package/optimize/es/components/flyout/flyout_child_manager.js +0 -100
  540. package/optimize/es/components/flyout/sessions/flyout_provider.js +0 -90
  541. package/optimize/es/components/flyout/sessions/flyout_reducer.js +0 -187
  542. package/optimize/es/components/flyout/sessions/use_eui_flyout.js +0 -82
  543. package/optimize/lib/components/flyout/flyout_child.js +0 -186
  544. package/optimize/lib/components/flyout/flyout_child.styles.js +0 -38
  545. package/optimize/lib/components/flyout/flyout_child_manager.js +0 -110
  546. package/optimize/lib/components/flyout/sessions/flyout_provider.js +0 -100
  547. package/optimize/lib/components/flyout/sessions/flyout_reducer.js +0 -195
  548. package/optimize/lib/components/flyout/sessions/index.js +0 -25
  549. package/optimize/lib/components/flyout/sessions/use_eui_flyout.js +0 -88
  550. package/test-env/components/flyout/flyout_child.js +0 -230
  551. package/test-env/components/flyout/flyout_child.styles.js +0 -38
  552. package/test-env/components/flyout/flyout_child_manager.js +0 -119
  553. package/test-env/components/flyout/sessions/flyout_provider.js +0 -100
  554. package/test-env/components/flyout/sessions/flyout_reducer.js +0 -195
  555. package/test-env/components/flyout/sessions/index.js +0 -25
  556. package/test-env/components/flyout/sessions/use_eui_flyout.js +0 -88
  557. /package/es/components/flyout/{sessions → manager}/types.js +0 -0
  558. /package/lib/components/flyout/{sessions → manager}/types.js +0 -0
  559. /package/optimize/es/components/flyout/{sessions → manager}/types.js +0 -0
  560. /package/optimize/lib/components/flyout/{sessions → manager}/types.js +0 -0
  561. /package/test-env/components/flyout/{sessions → manager}/types.js +0 -0
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useFlyoutLayoutMode = exports.useApplyFlyoutLayoutMode = exports.getWidthFromSize = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _services = require("../../../services");
10
+ var _actions = require("./actions");
11
+ var _selectors = require("./selectors");
12
+ var _hooks = require("./hooks");
13
+ var _const = require("./const");
14
+ 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); }
15
+ 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; }
16
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
17
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
19
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
20
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
21
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } /*
22
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
23
+ * or more contributor license agreements. Licensed under the Elastic License
24
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
25
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
26
+ * Side Public License, v 1.
27
+ */
28
+ /**
29
+ * Hook to handle responsive layout mode for managed flyouts.
30
+ * Decides whether to place flyouts side-by-side or stacked based on
31
+ * viewport width and flyout widths/sizes.
32
+ */
33
+ var useApplyFlyoutLayoutMode = exports.useApplyFlyoutLayoutMode = function useApplyFlyoutLayoutMode() {
34
+ var _useEuiTheme = (0, _services.useEuiTheme)(),
35
+ euiTheme = _useEuiTheme.euiTheme;
36
+ var context = (0, _hooks.useFlyoutManager)();
37
+ var currentSession = (0, _selectors.useCurrentSession)();
38
+ var parentFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.main;
39
+ var childFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.child;
40
+ var parentFlyout = (0, _selectors.useCurrentMainFlyout)();
41
+ var childFlyout = (0, _selectors.useCurrentChildFlyout)();
42
+ var parentWidth = (0, _selectors.useFlyoutWidth)(parentFlyoutId);
43
+ var childWidth = (0, _selectors.useFlyoutWidth)(childFlyoutId);
44
+ var _useState = (0, _react.useState)(typeof window !== 'undefined' ? window.innerWidth : Infinity),
45
+ _useState2 = _slicedToArray(_useState, 2),
46
+ windowWidth = _useState2[0],
47
+ setWindowWidth = _useState2[1];
48
+ var setMode = _react.default.useCallback(function (layoutMode) {
49
+ if (context !== null && context !== void 0 && context.dispatch && layoutMode !== context.state.layoutMode) {
50
+ context.dispatch((0, _actions.setLayoutMode)(layoutMode));
51
+ }
52
+ }, [context]);
53
+ (0, _react.useEffect)(function () {
54
+ if (typeof window === 'undefined') {
55
+ return;
56
+ }
57
+ var rafId = 0;
58
+ var handleResize = function handleResize() {
59
+ if (rafId) {
60
+ cancelAnimationFrame(rafId);
61
+ }
62
+ rafId = requestAnimationFrame(function () {
63
+ return setWindowWidth(window.innerWidth);
64
+ });
65
+ };
66
+ window.addEventListener('resize', handleResize);
67
+ return function () {
68
+ if (rafId) {
69
+ cancelAnimationFrame(rafId);
70
+ }
71
+ window.removeEventListener('resize', handleResize);
72
+ };
73
+ }, []);
74
+ (0, _react.useEffect)(function () {
75
+ if (!context) {
76
+ return;
77
+ }
78
+ var currentLayoutMode = context.state.layoutMode;
79
+
80
+ // Thresholds to prevent thrashing near the breakpoint.
81
+ var THRESHOLD_TO_SIDE_BY_SIDE = 85;
82
+ var THRESHOLD_TO_STACKED = 95;
83
+
84
+ // If the window is too small, set the mode to stacked.
85
+ //
86
+ // The value is based on the maximum width of a flyout in
87
+ // `composeFlyoutSizing` in `flyout.styles.ts` multiplied
88
+ // by 2 (open flyouts side-by-side).
89
+ if (windowWidth < Math.round(euiTheme.breakpoint.s * 1.4)) {
90
+ if (currentLayoutMode !== _const.LAYOUT_MODE_STACKED) {
91
+ setMode(_const.LAYOUT_MODE_STACKED);
92
+ }
93
+ return;
94
+ }
95
+ if (!childFlyoutId) {
96
+ if (currentLayoutMode !== _const.LAYOUT_MODE_SIDE_BY_SIDE) setMode(_const.LAYOUT_MODE_SIDE_BY_SIDE);
97
+ return;
98
+ }
99
+ var parentWidthValue = parentWidth;
100
+ var childWidthValue = childWidth;
101
+ if (!parentWidthValue && parentFlyout !== null && parentFlyout !== void 0 && parentFlyout.size) {
102
+ parentWidthValue = getWidthFromSize(parentFlyout.size);
103
+ }
104
+ if (!childWidthValue && childFlyout !== null && childFlyout !== void 0 && childFlyout.size) {
105
+ childWidthValue = getWidthFromSize(childFlyout.size);
106
+ }
107
+ if (!parentWidthValue || !childWidthValue) {
108
+ if (currentLayoutMode !== _const.LAYOUT_MODE_SIDE_BY_SIDE) setMode(_const.LAYOUT_MODE_SIDE_BY_SIDE);
109
+ return;
110
+ }
111
+ var combinedWidth = parentWidthValue + childWidthValue;
112
+ var combinedWidthPercentage = combinedWidth / windowWidth * 100;
113
+ var newLayoutMode;
114
+
115
+ // Handle fill size flyouts: keep layout as side-by-side when fill flyout is present
116
+ // This allows fill flyouts to dynamically calculate their width based on sibling
117
+ if ((parentFlyout === null || parentFlyout === void 0 ? void 0 : parentFlyout.size) === 'fill' || (childFlyout === null || childFlyout === void 0 ? void 0 : childFlyout.size) === 'fill') {
118
+ // For fill flyouts, we want to maintain side-by-side layout to enable dynamic width calculation
119
+ // Only stack if the viewport is too small (below the small breakpoint)
120
+ if (windowWidth >= Math.round(euiTheme.breakpoint.s * 1.4)) {
121
+ if (currentLayoutMode !== _const.LAYOUT_MODE_SIDE_BY_SIDE) {
122
+ setMode(_const.LAYOUT_MODE_SIDE_BY_SIDE);
123
+ }
124
+ return;
125
+ }
126
+ }
127
+ if (currentLayoutMode === _const.LAYOUT_MODE_STACKED) {
128
+ newLayoutMode = combinedWidthPercentage <= THRESHOLD_TO_SIDE_BY_SIDE ? _const.LAYOUT_MODE_SIDE_BY_SIDE : _const.LAYOUT_MODE_STACKED;
129
+ } else {
130
+ newLayoutMode = combinedWidthPercentage >= THRESHOLD_TO_STACKED ? _const.LAYOUT_MODE_STACKED : _const.LAYOUT_MODE_SIDE_BY_SIDE;
131
+ }
132
+ if (currentLayoutMode !== newLayoutMode) {
133
+ setMode(newLayoutMode);
134
+ }
135
+ }, [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]);
136
+ };
137
+
138
+ /** Convert a flyout `size` value to a pixel width using theme breakpoints. */
139
+ var getWidthFromSize = exports.getWidthFromSize = function getWidthFromSize(size) {
140
+ if (typeof size === 'number') {
141
+ return size;
142
+ }
143
+ if (typeof size === 'string') {
144
+ var parsed = parseInt(size, 10);
145
+ if (!Number.isNaN(parsed)) {
146
+ return parsed;
147
+ }
148
+
149
+ // Size is a function of a percentage of `vw`, defined in `composeFlyoutSizing` in `flyout.styles.ts`
150
+ switch (size) {
151
+ case 's':
152
+ return Math.round(window.innerWidth * 0.25);
153
+ case 'm':
154
+ return Math.round(window.innerWidth * 0.5);
155
+ case 'l':
156
+ return Math.round(window.innerWidth * 0.75);
157
+ case 'fill':
158
+ return Math.round(window.innerWidth * 0.9);
159
+ default:
160
+ break;
161
+ }
162
+ }
163
+ return 0;
164
+ };
165
+
166
+ /** Current layout mode for managed flyouts (`side-by-side` or `stacked`). */
167
+ var useFlyoutLayoutMode = exports.useFlyoutLayoutMode = function useFlyoutLayoutMode() {
168
+ var _context$state;
169
+ var context = (0, _hooks.useFlyoutManager)();
170
+ return (context === null || context === void 0 || (_context$state = context.state) === null || _context$state === void 0 ? void 0 : _context$state.layoutMode) || _const.LAYOUT_MODE_SIDE_BY_SIDE;
171
+ };
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useFlyoutManager = exports.EuiFlyoutManagerContext = exports.EuiFlyoutManager = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _hooks = require("./hooks");
10
+ var _layout_mode = require("./layout_mode");
11
+ var _react2 = require("@emotion/react");
12
+ 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); }
13
+ 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; }
14
+ /*
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
+ /**
23
+ * React context that exposes the Flyout Manager API (state + actions).
24
+ */
25
+ var EuiFlyoutManagerContext = exports.EuiFlyoutManagerContext = /*#__PURE__*/(0, _react.createContext)(null);
26
+
27
+ /**
28
+ * Provides the Flyout Manager API via context and runs layout-mode logic.
29
+ */
30
+ var EuiFlyoutManager = exports.EuiFlyoutManager = function EuiFlyoutManager(_ref) {
31
+ var children = _ref.children;
32
+ var api = (0, _hooks.useFlyoutManagerReducer)();
33
+ return (0, _react2.jsx)(EuiFlyoutManagerContext.Provider, {
34
+ value: api
35
+ }, (0, _react2.jsx)(EuiFlyoutManagerContainer, null, children));
36
+ };
37
+ var EuiFlyoutManagerContainer = function EuiFlyoutManagerContainer(_ref2) {
38
+ var children = _ref2.children;
39
+ (0, _layout_mode.useApplyFlyoutLayoutMode)();
40
+ return (0, _react2.jsx)(_react.default.Fragment, null, children);
41
+ };
42
+
43
+ /** Hook to access the Flyout Manager API from context. */
44
+ var useFlyoutManager = exports.useFlyoutManager = function useFlyoutManager() {
45
+ return (0, _react.useContext)(EuiFlyoutManagerContext);
46
+ };
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.flyoutManagerReducer = flyoutManagerReducer;
8
+ exports.initialState = void 0;
9
+ var _actions = require("./actions");
10
+ var _const = require("./const");
11
+ 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; }
12
+ 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; }
13
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
15
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
17
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
19
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
20
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
21
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } /*
22
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
23
+ * or more contributor license agreements. Licensed under the Elastic License
24
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
25
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
26
+ * Side Public License, v 1.
27
+ */
28
+ /**
29
+ * Default flyout manager state used to initialize the reducer.
30
+ */
31
+ var initialState = exports.initialState = {
32
+ sessions: [],
33
+ flyouts: [],
34
+ layoutMode: _const.LAYOUT_MODE_SIDE_BY_SIDE
35
+ };
36
+
37
+ /**
38
+ * Reducer handling all flyout manager actions and state transitions.
39
+ */
40
+ function flyoutManagerReducer() {
41
+ var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
42
+ var action = arguments.length > 1 ? arguments[1] : undefined;
43
+ switch (action.type) {
44
+ // Register a flyout.
45
+ // - Ignore duplicates by `flyoutId`.
46
+ // - For a `main` flyout, start a new session { main, child: null }.
47
+ // - For a `child` flyout, attach it to the most recent session; if no
48
+ // session exists, do nothing (invalid child without a parent).
49
+ case _actions.ACTION_ADD:
50
+ {
51
+ var flyoutId = action.flyoutId,
52
+ level = action.level,
53
+ size = action.size;
54
+ if (state.flyouts.some(function (f) {
55
+ return f.flyoutId === flyoutId;
56
+ })) {
57
+ return state;
58
+ }
59
+ var newFlyoutState = {
60
+ level: level,
61
+ flyoutId: flyoutId,
62
+ size: size,
63
+ activityStage: _const.STAGE_OPENING
64
+ };
65
+ var newFlyouts = [].concat(_toConsumableArray(state.flyouts), [newFlyoutState]);
66
+ if (level === _const.LEVEL_MAIN) {
67
+ var newSession = {
68
+ main: flyoutId,
69
+ child: null
70
+ };
71
+ return _objectSpread(_objectSpread({}, state), {}, {
72
+ sessions: [].concat(_toConsumableArray(state.sessions), [newSession]),
73
+ flyouts: newFlyouts
74
+ });
75
+ }
76
+ if (state.sessions.length === 0) {
77
+ return state;
78
+ }
79
+ var updatedSessions = _toConsumableArray(state.sessions);
80
+ var currentSessionIndex = updatedSessions.length - 1;
81
+ updatedSessions[currentSessionIndex] = _objectSpread(_objectSpread({}, updatedSessions[currentSessionIndex]), {}, {
82
+ child: flyoutId
83
+ });
84
+ return _objectSpread(_objectSpread({}, state), {}, {
85
+ sessions: updatedSessions,
86
+ flyouts: newFlyouts
87
+ });
88
+ }
89
+
90
+ // Unregister a flyout and update sessions accordingly.
91
+ // - When closing a `main` flyout, drop its entire session and all associated flyouts.
92
+ // - When closing a `child` flyout, clear the child pointer on the most
93
+ // recent session if it matches.
94
+ case _actions.ACTION_CLOSE:
95
+ {
96
+ var removedFlyout = state.flyouts.find(function (f) {
97
+ return f.flyoutId === action.flyoutId;
98
+ });
99
+ if (!removedFlyout) {
100
+ return state;
101
+ }
102
+ if (removedFlyout.level === _const.LEVEL_MAIN) {
103
+ // Find the session that contains this main flyout
104
+ var sessionToRemove = state.sessions.find(function (session) {
105
+ return session.main === action.flyoutId;
106
+ });
107
+ if (sessionToRemove) {
108
+ // Remove all flyouts associated with this session (main + child)
109
+ var flyoutsToRemove = new Set([action.flyoutId]);
110
+ if (sessionToRemove.child) {
111
+ flyoutsToRemove.add(sessionToRemove.child);
112
+ }
113
+ var _newFlyouts = state.flyouts.filter(function (f) {
114
+ return !flyoutsToRemove.has(f.flyoutId);
115
+ });
116
+ var newSessions = state.sessions.filter(function (session) {
117
+ return session.main !== action.flyoutId;
118
+ });
119
+ return _objectSpread(_objectSpread({}, state), {}, {
120
+ sessions: newSessions,
121
+ flyouts: _newFlyouts
122
+ });
123
+ }
124
+ }
125
+
126
+ // Handle child flyout closing (existing logic)
127
+ var _newFlyouts2 = state.flyouts.filter(function (f) {
128
+ return f.flyoutId !== action.flyoutId;
129
+ });
130
+ if (state.sessions.length === 0) {
131
+ return _objectSpread(_objectSpread({}, state), {}, {
132
+ flyouts: _newFlyouts2
133
+ });
134
+ }
135
+ var _updatedSessions = _toConsumableArray(state.sessions);
136
+ var _currentSessionIndex = _updatedSessions.length - 1;
137
+ if (_updatedSessions[_currentSessionIndex].child === action.flyoutId) {
138
+ _updatedSessions[_currentSessionIndex] = _objectSpread(_objectSpread({}, _updatedSessions[_currentSessionIndex]), {}, {
139
+ child: null
140
+ });
141
+ }
142
+ return _objectSpread(_objectSpread({}, state), {}, {
143
+ sessions: _updatedSessions,
144
+ flyouts: _newFlyouts2
145
+ });
146
+ }
147
+
148
+ // Mark the provided flyout ID as the active child for the latest session.
149
+ case _actions.ACTION_SET_ACTIVE:
150
+ {
151
+ // No-op when no session exists.
152
+ if (state.sessions.length === 0) {
153
+ return state;
154
+ }
155
+ var _updatedSessions2 = _toConsumableArray(state.sessions);
156
+ var _currentSessionIndex2 = _updatedSessions2.length - 1;
157
+ _updatedSessions2[_currentSessionIndex2] = _objectSpread(_objectSpread({}, _updatedSessions2[_currentSessionIndex2]), {}, {
158
+ child: action.flyoutId
159
+ });
160
+ return _objectSpread(_objectSpread({}, state), {}, {
161
+ sessions: _updatedSessions2
162
+ });
163
+ }
164
+
165
+ // Persist a flyout's measured width (px). Used for responsive layout
166
+ // calculations, e.g., deciding stacked vs side-by-side.
167
+ case _actions.ACTION_SET_WIDTH:
168
+ {
169
+ var _flyoutId = action.flyoutId,
170
+ width = action.width;
171
+ var updatedFlyouts = state.flyouts.map(function (flyout) {
172
+ return flyout.flyoutId === _flyoutId ? _objectSpread(_objectSpread({}, flyout), {}, {
173
+ width: width
174
+ }) : flyout;
175
+ });
176
+ return _objectSpread(_objectSpread({}, state), {}, {
177
+ flyouts: updatedFlyouts
178
+ });
179
+ }
180
+
181
+ // Switch global layout mode for managed flyouts.
182
+ case _actions.ACTION_SET_LAYOUT_MODE:
183
+ {
184
+ return _objectSpread(_objectSpread({}, state), {}, {
185
+ layoutMode: action.layoutMode
186
+ });
187
+ }
188
+
189
+ // Update a flyout's activity stage in state
190
+ case _actions.ACTION_SET_ACTIVITY_STAGE:
191
+ {
192
+ var _flyoutId2 = action.flyoutId;
193
+ var _updatedFlyouts = state.flyouts.map(function (flyout) {
194
+ return flyout.flyoutId === _flyoutId2 ? _objectSpread(_objectSpread({}, flyout), {}, {
195
+ activityStage: action.activityStage
196
+ }) : flyout;
197
+ });
198
+ return _objectSpread(_objectSpread({}, state), {}, {
199
+ flyouts: _updatedFlyouts
200
+ });
201
+ }
202
+ default:
203
+ return state;
204
+ }
205
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useSession = exports.useParentFlyoutSize = exports.useIsFlyoutRegistered = exports.useIsFlyoutActive = exports.useHasChildFlyout = exports.useHasActiveSession = exports.useFlyoutWidth = exports.useFlyout = exports.useCurrentSession = exports.useCurrentMainFlyout = exports.useCurrentChildFlyout = void 0;
7
+ var _provider = require("./provider");
8
+ /*
9
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
10
+ * or more contributor license agreements. Licensed under the Elastic License
11
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
12
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
13
+ * Side Public License, v 1.
14
+ */
15
+
16
+ var useSession = exports.useSession = function useSession(flyoutId) {
17
+ var context = (0, _provider.useFlyoutManager)();
18
+ if (!context) {
19
+ return null;
20
+ }
21
+ return context.state.sessions.find(function (s) {
22
+ return s.main === flyoutId || s.child === flyoutId;
23
+ }) || null;
24
+ };
25
+
26
+ /** True when any managed flyout session is currently active. */
27
+ var useHasActiveSession = exports.useHasActiveSession = function useHasActiveSession() {
28
+ return !!useCurrentSession();
29
+ };
30
+
31
+ /** True if the given `flyoutId` is the main or child flyout in the latest session. */
32
+ var useIsFlyoutActive = exports.useIsFlyoutActive = function useIsFlyoutActive(flyoutId) {
33
+ var currentSession = useCurrentSession();
34
+ return (currentSession === null || currentSession === void 0 ? void 0 : currentSession.main) === flyoutId || (currentSession === null || currentSession === void 0 ? void 0 : currentSession.child) === flyoutId;
35
+ };
36
+ var useFlyout = exports.useFlyout = function useFlyout(flyoutId) {
37
+ var context = (0, _provider.useFlyoutManager)();
38
+ if (!context || !flyoutId) {
39
+ return null;
40
+ }
41
+ return context.state.flyouts.find(function (f) {
42
+ return f.flyoutId === flyoutId;
43
+ }) || null;
44
+ };
45
+ var useIsFlyoutRegistered = exports.useIsFlyoutRegistered = function useIsFlyoutRegistered(flyoutId) {
46
+ var context = (0, _provider.useFlyoutManager)();
47
+ if (!context || !flyoutId) {
48
+ return false;
49
+ }
50
+ return context.state.flyouts.some(function (f) {
51
+ return f.flyoutId === flyoutId;
52
+ });
53
+ };
54
+
55
+ /** The most recent flyout session or `null` if none. */
56
+ var useCurrentSession = exports.useCurrentSession = function useCurrentSession() {
57
+ var context = (0, _provider.useFlyoutManager)();
58
+ if (!context) return null;
59
+ return context.state.sessions[context.state.sessions.length - 1] || null;
60
+ };
61
+
62
+ /** The registered state of the current session's main flyout, if present. */
63
+ var useCurrentMainFlyout = exports.useCurrentMainFlyout = function useCurrentMainFlyout() {
64
+ var currentSession = useCurrentSession();
65
+ var mainFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.main;
66
+ return useFlyout(mainFlyoutId);
67
+ };
68
+
69
+ /** The registered state of the current session's child flyout, if present. */
70
+ var useCurrentChildFlyout = exports.useCurrentChildFlyout = function useCurrentChildFlyout() {
71
+ var currentSession = useCurrentSession();
72
+ var childFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.child;
73
+ return useFlyout(childFlyoutId);
74
+ };
75
+
76
+ /** The measured width (px) of the specified flyout, or `null` if unknown. */
77
+ var useFlyoutWidth = exports.useFlyoutWidth = function useFlyoutWidth(flyoutId) {
78
+ var _useFlyout;
79
+ return (_useFlyout = useFlyout(flyoutId)) === null || _useFlyout === void 0 ? void 0 : _useFlyout.width;
80
+ };
81
+
82
+ /** The configured size of the parent (main) flyout for a given child flyout ID. */
83
+ var useParentFlyoutSize = exports.useParentFlyoutSize = function useParentFlyoutSize(childFlyoutId) {
84
+ var session = useSession(childFlyoutId);
85
+ var parentFlyout = useFlyout(session === null || session === void 0 ? void 0 : session.main);
86
+ return parentFlyout === null || parentFlyout === void 0 ? void 0 : parentFlyout.size;
87
+ };
88
+
89
+ /** True if the provided `flyoutId` is the main flyout and it currently has a child. */
90
+ var useHasChildFlyout = exports.useHasChildFlyout = function useHasChildFlyout(flyoutId) {
91
+ var session = useSession(flyoutId);
92
+ return !!(session !== null && session !== void 0 && session.child);
93
+ };
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createValidationErrorMessage = createValidationErrorMessage;
7
+ exports.isNamedSize = isNamedSize;
8
+ exports.validateFlyoutSize = validateFlyoutSize;
9
+ exports.validateManagedFlyoutSize = validateManagedFlyoutSize;
10
+ exports.validateSizeCombination = validateSizeCombination;
11
+ var _const = require("../const");
12
+ var _const2 = require("./const");
13
+ /*
14
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
15
+ * or more contributor license agreements. Licensed under the Elastic License
16
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
17
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
18
+ * Side Public License, v 1.
19
+ */
20
+
21
+ /**
22
+ * Business rules for flyout sizes:
23
+ * - Managed flyouts should only accept "named" sizes (s, m, l, fill)
24
+ * - Parent and child can't both be 'm'
25
+ * - Parent and child can't both be 'fill'
26
+ * - Parent can't be 'l' if there is a child
27
+ */
28
+
29
+ /**
30
+ * Checks if a size is a named size (s, m, l)
31
+ */
32
+ function isNamedSize(size) {
33
+ return _const.FLYOUT_SIZES.includes(size);
34
+ }
35
+
36
+ /**
37
+ * Validates that a managed flyout only uses named sizes
38
+ */
39
+ function validateManagedFlyoutSize(size, flyoutId, level) {
40
+ if (!isNamedSize(size)) {
41
+ var namedSizes = _const.FLYOUT_SIZES.join(', ');
42
+ return {
43
+ type: 'INVALID_SIZE_TYPE',
44
+ message: "Managed flyouts must use named sizes (".concat(namedSizes, "). Received: ").concat(size),
45
+ flyoutId: flyoutId,
46
+ level: level,
47
+ size: "".concat(size)
48
+ };
49
+ }
50
+ return null;
51
+ }
52
+
53
+ /**
54
+ * Validates size combinations for parent-child flyouts
55
+ */
56
+ function validateSizeCombination(parentSize, childSize) {
57
+ // Parent and child can't both be 'm'
58
+ if (parentSize === 'm' && childSize === 'm') {
59
+ return {
60
+ type: 'INVALID_SIZE_COMBINATION',
61
+ message: 'Parent and child flyouts cannot both be size "m"',
62
+ size: childSize
63
+ };
64
+ }
65
+
66
+ // Parent and child can't both be 'fill'
67
+ if (parentSize === 'fill' && childSize === 'fill') {
68
+ return {
69
+ type: 'INVALID_SIZE_COMBINATION',
70
+ message: 'Parent and child flyouts cannot both be size "fill"',
71
+ size: childSize
72
+ };
73
+ }
74
+
75
+ // Parent can't be 'l' if there is a child
76
+ if (parentSize === 'l') {
77
+ return {
78
+ type: 'INVALID_SIZE_COMBINATION',
79
+ message: 'Parent flyouts cannot be size "l" when there is a child flyout',
80
+ size: parentSize
81
+ };
82
+ }
83
+ return null;
84
+ }
85
+
86
+ /**
87
+ * Comprehensive validation for flyout size rules
88
+ */
89
+ function validateFlyoutSize(size, flyoutId, level, parentSize) {
90
+ // First validate that managed flyouts use named sizes
91
+ var sizeTypeError = validateManagedFlyoutSize(size, flyoutId, level);
92
+ if (sizeTypeError) {
93
+ return sizeTypeError;
94
+ }
95
+
96
+ // If this is a child flyout and we have parent size, validate combination
97
+ if (level === _const2.LEVEL_CHILD && parentSize && isNamedSize(size)) {
98
+ var combinationError = validateSizeCombination(parentSize, size);
99
+ if (combinationError) {
100
+ combinationError.flyoutId = flyoutId;
101
+ combinationError.level = level;
102
+ return combinationError;
103
+ }
104
+ }
105
+ return null;
106
+ }
107
+
108
+ /**
109
+ * Creates a user-friendly error message for validation errors
110
+ */
111
+ function createValidationErrorMessage(error) {
112
+ var prefix = "EuiFlyout validation error: ";
113
+ switch (error.type) {
114
+ case 'INVALID_SIZE_TYPE':
115
+ return "".concat(prefix).concat(error.message);
116
+ case 'INVALID_SIZE_COMBINATION':
117
+ return "".concat(prefix).concat(error.message);
118
+ default:
119
+ return "".concat(prefix, "Unknown validation error");
120
+ }
121
+ }