@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,325 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.flyoutManagerReducer = flyoutManagerReducer;
7
+ exports.initialState = void 0;
8
+ var _actions = require("./actions");
9
+ var _const = require("./const");
10
+ 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); }
11
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
12
+ 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."); }
13
+ 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; } }
14
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
15
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
16
+ 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; }
17
+ 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; }
18
+ 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; }
19
+ 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; }
20
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
21
+ 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); } /*
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
+ pushPadding: {
36
+ left: 0,
37
+ right: 0
38
+ },
39
+ currentZIndex: 0,
40
+ unmanagedFlyouts: []
41
+ };
42
+
43
+ /**
44
+ * Reducer handling all flyout manager actions and state transitions.
45
+ */
46
+ function flyoutManagerReducer() {
47
+ var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
48
+ var action = arguments.length > 1 ? arguments[1] : undefined;
49
+ switch (action.type) {
50
+ case _actions.ACTION_ADD_UNMANAGED_FLYOUT:
51
+ {
52
+ if (state.unmanagedFlyouts.includes(action.flyoutId)) {
53
+ return state;
54
+ }
55
+ return _objectSpread(_objectSpread({}, state), {}, {
56
+ // Increment by 2 for each new unmanaged flyout.
57
+ // Unmanaged flyouts render on z-index of `n`, and their overlay mask
58
+ // on `n - 1`.
59
+ currentZIndex: state.currentZIndex + 2,
60
+ unmanagedFlyouts: [].concat(_toConsumableArray(state.unmanagedFlyouts), [action.flyoutId])
61
+ });
62
+ }
63
+ case _actions.ACTION_CLOSE_UNMANAGED_FLYOUT:
64
+ {
65
+ var newUnmanagedFlyouts = state.unmanagedFlyouts.filter(function (flyoutId) {
66
+ return flyoutId !== action.flyoutId;
67
+ });
68
+ var newCurrentZIndex = state.currentZIndex;
69
+ if (state.sessions.length === 0 && newUnmanagedFlyouts.length === 0) {
70
+ newCurrentZIndex = 0;
71
+ }
72
+ return _objectSpread(_objectSpread({}, state), {}, {
73
+ unmanagedFlyouts: newUnmanagedFlyouts,
74
+ currentZIndex: newCurrentZIndex
75
+ });
76
+ }
77
+
78
+ // Register a flyout.
79
+ // - Ignore duplicates by `flyoutId`.
80
+ // - For a `main` flyout, start a new session { main, child: null }.
81
+ // - For a `child` flyout, attach it to the most recent session; if no
82
+ // session exists, do nothing (invalid child without a parent).
83
+ case _actions.ACTION_ADD:
84
+ {
85
+ var flyoutId = action.flyoutId,
86
+ title = action.title,
87
+ level = action.level,
88
+ size = action.size;
89
+
90
+ // Ignore duplicate registrations
91
+ if (state.flyouts.some(function (f) {
92
+ return f.flyoutId === flyoutId;
93
+ })) {
94
+ return state;
95
+ }
96
+ var newFlyoutState = {
97
+ level: level,
98
+ flyoutId: flyoutId,
99
+ size: size,
100
+ activityStage: _const.STAGE_OPENING
101
+ };
102
+ var newFlyouts = [].concat(_toConsumableArray(state.flyouts), [newFlyoutState]);
103
+ if (level === _const.LEVEL_MAIN) {
104
+ var newSession = {
105
+ mainFlyoutId: flyoutId,
106
+ title: title,
107
+ childFlyoutId: null,
108
+ zIndex: state.currentZIndex
109
+ };
110
+ return _objectSpread(_objectSpread({}, state), {}, {
111
+ sessions: [].concat(_toConsumableArray(state.sessions), [newSession]),
112
+ flyouts: newFlyouts,
113
+ // Increment by 3 for each new flyout session.
114
+ // Managed flyouts render main flyouts on z-index of `n`,
115
+ // child flyouts on `n - 1` and the overlay mask on `n - 2`.
116
+ currentZIndex: state.currentZIndex + 3
117
+ });
118
+ }
119
+ if (state.sessions.length === 0) {
120
+ return state;
121
+ }
122
+ var updatedSessions = _toConsumableArray(state.sessions);
123
+ var currentSessionIndex = updatedSessions.length - 1;
124
+ updatedSessions[currentSessionIndex] = _objectSpread(_objectSpread({}, updatedSessions[currentSessionIndex]), {}, {
125
+ childFlyoutId: flyoutId
126
+ });
127
+ return _objectSpread(_objectSpread({}, state), {}, {
128
+ sessions: updatedSessions,
129
+ flyouts: newFlyouts
130
+ });
131
+ }
132
+
133
+ // Unregister a flyout and update sessions accordingly.
134
+ // - When closing a `main` flyout, drop its entire session and all associated flyouts.
135
+ // - When closing a `child` flyout, clear the child pointer on the most
136
+ // recent session if it matches.
137
+ case _actions.ACTION_CLOSE:
138
+ {
139
+ var removedFlyout = state.flyouts.find(function (f) {
140
+ return f.flyoutId === action.flyoutId;
141
+ });
142
+ if (!removedFlyout) {
143
+ return state;
144
+ }
145
+ if (removedFlyout.level === _const.LEVEL_MAIN) {
146
+ // Find the session that contains this main flyout
147
+ var sessionToRemove = state.sessions.find(function (session) {
148
+ return session.mainFlyoutId === action.flyoutId;
149
+ });
150
+ if (sessionToRemove) {
151
+ // Remove all flyouts associated with this session (main + child)
152
+ var flyoutsToRemove = new Set([action.flyoutId]);
153
+ if (sessionToRemove.childFlyoutId) {
154
+ flyoutsToRemove.add(sessionToRemove.childFlyoutId);
155
+ }
156
+ var _newFlyouts = state.flyouts.filter(function (f) {
157
+ return !flyoutsToRemove.has(f.flyoutId);
158
+ });
159
+ var newSessions = state.sessions.filter(function (session) {
160
+ return session.mainFlyoutId !== action.flyoutId;
161
+ });
162
+ var _newCurrentZIndex = state.currentZIndex;
163
+ if (newSessions.length === 0 && state.unmanagedFlyouts.length === 0) {
164
+ // Reset to initial value if no flyouts remain open to avoid
165
+ // the value going too high during the lifecycle of the app
166
+ _newCurrentZIndex = 0;
167
+ }
168
+ return _objectSpread(_objectSpread({}, state), {}, {
169
+ sessions: newSessions,
170
+ flyouts: _newFlyouts,
171
+ currentZIndex: _newCurrentZIndex
172
+ });
173
+ }
174
+ }
175
+
176
+ // Handle child flyout closing (existing logic)
177
+ var _newFlyouts2 = state.flyouts.filter(function (f) {
178
+ return f.flyoutId !== action.flyoutId;
179
+ });
180
+ if (state.sessions.length === 0) {
181
+ return _objectSpread(_objectSpread({}, state), {}, {
182
+ flyouts: _newFlyouts2
183
+ });
184
+ }
185
+ var _updatedSessions = _toConsumableArray(state.sessions);
186
+ var _currentSessionIndex = _updatedSessions.length - 1;
187
+ if (_updatedSessions[_currentSessionIndex].childFlyoutId === action.flyoutId) {
188
+ _updatedSessions[_currentSessionIndex] = _objectSpread(_objectSpread({}, _updatedSessions[_currentSessionIndex]), {}, {
189
+ childFlyoutId: null
190
+ });
191
+ }
192
+ return _objectSpread(_objectSpread({}, state), {}, {
193
+ sessions: _updatedSessions,
194
+ flyouts: _newFlyouts2
195
+ });
196
+ }
197
+
198
+ // Mark the provided flyout ID as the active child for the latest session.
199
+ case _actions.ACTION_SET_ACTIVE:
200
+ {
201
+ // No-op when no session exists.
202
+ if (state.sessions.length === 0) {
203
+ return state;
204
+ }
205
+ var _updatedSessions2 = _toConsumableArray(state.sessions);
206
+ var _currentSessionIndex2 = _updatedSessions2.length - 1;
207
+ _updatedSessions2[_currentSessionIndex2] = _objectSpread(_objectSpread({}, _updatedSessions2[_currentSessionIndex2]), {}, {
208
+ childFlyoutId: action.flyoutId
209
+ });
210
+ return _objectSpread(_objectSpread({}, state), {}, {
211
+ sessions: _updatedSessions2
212
+ });
213
+ }
214
+
215
+ // Persist a flyout's measured width (px). Used for responsive layout
216
+ // calculations, e.g., deciding stacked vs side-by-side.
217
+ case _actions.ACTION_SET_WIDTH:
218
+ {
219
+ var _flyoutId = action.flyoutId,
220
+ width = action.width;
221
+ var updatedFlyouts = state.flyouts.map(function (flyout) {
222
+ return flyout.flyoutId === _flyoutId ? _objectSpread(_objectSpread({}, flyout), {}, {
223
+ width: width
224
+ }) : flyout;
225
+ });
226
+ return _objectSpread(_objectSpread({}, state), {}, {
227
+ flyouts: updatedFlyouts
228
+ });
229
+ }
230
+
231
+ // Switch global layout mode for managed flyouts.
232
+ case _actions.ACTION_SET_LAYOUT_MODE:
233
+ {
234
+ return _objectSpread(_objectSpread({}, state), {}, {
235
+ layoutMode: action.layoutMode
236
+ });
237
+ }
238
+
239
+ // Update a flyout's activity stage in state
240
+ case _actions.ACTION_SET_ACTIVITY_STAGE:
241
+ {
242
+ var _flyoutId2 = action.flyoutId;
243
+ var _updatedFlyouts = state.flyouts.map(function (flyout) {
244
+ return flyout.flyoutId === _flyoutId2 ? _objectSpread(_objectSpread({}, flyout), {}, {
245
+ activityStage: action.activityStage
246
+ }) : flyout;
247
+ });
248
+ return _objectSpread(_objectSpread({}, state), {}, {
249
+ flyouts: _updatedFlyouts
250
+ });
251
+ }
252
+
253
+ // Go back one session (remove current session from stack)
254
+ case _actions.ACTION_GO_BACK:
255
+ {
256
+ if (state.sessions.length === 0) {
257
+ return state;
258
+ }
259
+ var _currentSessionIndex3 = state.sessions.length - 1;
260
+ var currentSession = state.sessions[_currentSessionIndex3];
261
+
262
+ // Close all flyouts in the current session
263
+ var _flyoutsToRemove = new Set([currentSession.mainFlyoutId]);
264
+ if (currentSession.childFlyoutId) {
265
+ _flyoutsToRemove.add(currentSession.childFlyoutId);
266
+ }
267
+ var _newFlyouts3 = state.flyouts.filter(function (f) {
268
+ return !_flyoutsToRemove.has(f.flyoutId);
269
+ });
270
+ var _newSessions = state.sessions.slice(0, _currentSessionIndex3);
271
+ return _objectSpread(_objectSpread({}, state), {}, {
272
+ sessions: _newSessions,
273
+ flyouts: _newFlyouts3
274
+ });
275
+ }
276
+
277
+ // Navigate to a specific flyout (remove all sessions after it)
278
+ case _actions.ACTION_GO_TO_FLYOUT:
279
+ {
280
+ var _flyoutId3 = action.flyoutId;
281
+
282
+ // Find the session containing the target flyout
283
+ var targetSessionIndex = state.sessions.findIndex(function (session) {
284
+ return session.mainFlyoutId === _flyoutId3;
285
+ });
286
+ if (targetSessionIndex === -1) {
287
+ return state; // Target flyout not found
288
+ }
289
+
290
+ // Close all sessions after the target session
291
+ var sessionsToClose = state.sessions.slice(targetSessionIndex + 1);
292
+ var _flyoutsToRemove2 = new Set();
293
+ sessionsToClose.forEach(function (session) {
294
+ _flyoutsToRemove2.add(session.mainFlyoutId);
295
+ if (session.childFlyoutId) {
296
+ _flyoutsToRemove2.add(session.childFlyoutId);
297
+ }
298
+ });
299
+ var _newFlyouts4 = state.flyouts.filter(function (f) {
300
+ return !_flyoutsToRemove2.has(f.flyoutId);
301
+ });
302
+ var _newSessions2 = state.sessions.slice(0, targetSessionIndex + 1);
303
+ return _objectSpread(_objectSpread({}, state), {}, {
304
+ sessions: _newSessions2,
305
+ flyouts: _newFlyouts4
306
+ });
307
+ }
308
+
309
+ // Set push padding offset for a specific side
310
+ case _actions.ACTION_SET_PUSH_PADDING:
311
+ {
312
+ var _state$pushPadding;
313
+ var side = action.side,
314
+ _width = action.width;
315
+ return _objectSpread(_objectSpread({}, state), {}, {
316
+ pushPadding: _objectSpread(_objectSpread({}, (_state$pushPadding = state.pushPadding) !== null && _state$pushPadding !== void 0 ? _state$pushPadding : {
317
+ left: 0,
318
+ right: 0
319
+ }), {}, _defineProperty({}, side, _width))
320
+ });
321
+ }
322
+ default:
323
+ return state;
324
+ }
325
+ }
@@ -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
+ };
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports._resetFlyoutManagerStore = _resetFlyoutManagerStore;
7
+ exports.getFlyoutManagerStore = getFlyoutManagerStore;
8
+ var _actions = require("./actions");
9
+ var _reducer = require("./reducer");
10
+ /*
11
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
12
+ * or more contributor license agreements. Licensed under the Elastic License
13
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
14
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
15
+ * Side Public License, v 1.
16
+ */
17
+
18
+ function createStore() {
19
+ var initial = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _reducer.initialState;
20
+ var currentState = initial;
21
+ var listeners = new Set();
22
+ var getState = function getState() {
23
+ return currentState;
24
+ };
25
+ var subscribe = function subscribe(listener) {
26
+ listeners.add(listener);
27
+ return function () {
28
+ listeners.delete(listener);
29
+ };
30
+ };
31
+
32
+ // The onClick handlers won't execute until after store is fully assigned.
33
+ // eslint-disable-next-line prefer-const -- Forward declaration requires 'let' not 'const'
34
+ var store;
35
+ var computeHistoryItems = function computeHistoryItems() {
36
+ var currentSessionIndex = currentState.sessions.length - 1;
37
+ var previousSessions = currentState.sessions.slice(0, currentSessionIndex);
38
+ return previousSessions.reverse().map(function (_ref) {
39
+ var title = _ref.title,
40
+ mainFlyoutId = _ref.mainFlyoutId;
41
+ return {
42
+ title: title,
43
+ onClick: function onClick() {
44
+ store.dispatch((0, _actions.goToFlyout)(mainFlyoutId));
45
+ }
46
+ };
47
+ });
48
+ };
49
+ var dispatch = function dispatch(action) {
50
+ var nextState = (0, _reducer.flyoutManagerReducer)(currentState, action);
51
+ if (nextState !== currentState) {
52
+ var previousSessions = currentState.sessions;
53
+ currentState = nextState;
54
+
55
+ // Recompute history items eagerly if sessions changed
56
+ // This ensures stable references and avoids stale closures
57
+ if (nextState.sessions !== previousSessions) {
58
+ store.historyItems = computeHistoryItems();
59
+ }
60
+ listeners.forEach(function (l) {
61
+ l();
62
+ });
63
+ }
64
+ };
65
+ store = {
66
+ getState: getState,
67
+ subscribe: subscribe,
68
+ dispatch: dispatch,
69
+ addFlyout: function addFlyout(flyoutId, title, level, size) {
70
+ return dispatch((0, _actions.addFlyout)(flyoutId, title, level, size));
71
+ },
72
+ closeFlyout: function closeFlyout(flyoutId) {
73
+ return dispatch((0, _actions.closeFlyout)(flyoutId));
74
+ },
75
+ setActiveFlyout: function setActiveFlyout(flyoutId) {
76
+ return dispatch((0, _actions.setActiveFlyout)(flyoutId));
77
+ },
78
+ setFlyoutWidth: function setFlyoutWidth(flyoutId, width) {
79
+ return dispatch((0, _actions.setFlyoutWidth)(flyoutId, width));
80
+ },
81
+ setPushPadding: function setPushPadding(side, width) {
82
+ return dispatch((0, _actions.setPushPadding)(side, width));
83
+ },
84
+ goBack: function goBack() {
85
+ return dispatch((0, _actions.goBack)());
86
+ },
87
+ goToFlyout: function goToFlyout(flyoutId) {
88
+ return dispatch((0, _actions.goToFlyout)(flyoutId));
89
+ },
90
+ addUnmanagedFlyout: function addUnmanagedFlyout(flyoutId) {
91
+ return dispatch((0, _actions.addUnmanagedFlyout)(flyoutId));
92
+ },
93
+ closeUnmanagedFlyout: function closeUnmanagedFlyout(flyoutId) {
94
+ return dispatch((0, _actions.closeUnmanagedFlyout)(flyoutId));
95
+ },
96
+ historyItems: computeHistoryItems() // Initialize with current state
97
+ };
98
+ return store;
99
+ }
100
+
101
+ // Module-level singleton. A necessary trade-off to avoid global namespace pollution or the need for a third-party library.
102
+ var storeInstance = null;
103
+
104
+ /**
105
+ * Returns a singleton store instance shared across all React roots within the same JS context.
106
+ * Uses module-level singleton to ensure deduplication even if modules are loaded twice.
107
+ */
108
+ function getFlyoutManagerStore() {
109
+ if (!storeInstance) {
110
+ storeInstance = createStore();
111
+ }
112
+ return storeInstance;
113
+ }
114
+
115
+ /**
116
+ * For testing purposes - allows resetting the store
117
+ */
118
+ function _resetFlyoutManagerStore() {
119
+ storeInstance = null;
120
+ }
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createValidationErrorMessage = createValidationErrorMessage;
7
+ exports.isNamedSize = isNamedSize;
8
+ exports.validateManagedFlyoutSize = validateManagedFlyoutSize;
9
+ exports.validateSizeCombination = validateSizeCombination;
10
+ var _const = require("../const");
11
+ var _const2 = require("./const");
12
+ /*
13
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
14
+ * or more contributor license agreements. Licensed under the Elastic License
15
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
16
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
17
+ * Side Public License, v 1.
18
+ */
19
+
20
+ /**
21
+ * Checks if a size is a named size (s, m, l)
22
+ */
23
+ function isNamedSize(size) {
24
+ return _const.FLYOUT_SIZES.includes(size);
25
+ }
26
+
27
+ /**
28
+ * Validates that a managed flyout only uses named sizes
29
+ */
30
+ function validateManagedFlyoutSize(size, flyoutId, level) {
31
+ if (level === _const2.LEVEL_CHILD && !isNamedSize(size)) {
32
+ var namedSizes = _const.FLYOUT_SIZES.join(', ');
33
+ return {
34
+ type: 'INVALID_SIZE_TYPE',
35
+ message: "Child flyout ".concat(flyoutId, " must use a named size (").concat(namedSizes, "). Received: ").concat(size),
36
+ flyoutId: flyoutId,
37
+ level: level,
38
+ size: size
39
+ };
40
+ }
41
+ return null;
42
+ }
43
+
44
+ /**
45
+ * Validates size combinations for parent-child flyouts
46
+ */
47
+ function validateSizeCombination(parentSize, childSize) {
48
+ var sizes = [parentSize, childSize];
49
+
50
+ // Parent and child can't both be 'm'
51
+ if (sizes.every(function (s) {
52
+ return s === 'm';
53
+ })) {
54
+ return {
55
+ type: 'INVALID_SIZE_COMBINATION',
56
+ message: 'Parent and child flyouts cannot both be size "m"'
57
+ };
58
+ }
59
+
60
+ // Parent and child can't both be 'fill'
61
+ if (sizes.every(function (s) {
62
+ return s === 'fill';
63
+ })) {
64
+ return {
65
+ type: 'INVALID_SIZE_COMBINATION',
66
+ message: 'Parent and child flyouts cannot both be size "fill"'
67
+ };
68
+ }
69
+
70
+ // Flyout can't be 'l' if the other in the pair is not "fill"
71
+ if (sizes.includes('l') && !sizes.includes('fill')) {
72
+ return {
73
+ type: 'INVALID_SIZE_COMBINATION',
74
+ message: 'Flyouts cannot be size "l" unless the other flyout is "fill"'
75
+ };
76
+ }
77
+ return null;
78
+ }
79
+
80
+ /**
81
+ * Creates a user-friendly error message for validation errors
82
+ */
83
+ function createValidationErrorMessage(error) {
84
+ console.error(error);
85
+ var prefix = "EuiFlyout validation error";
86
+ switch (error.type) {
87
+ case 'INVALID_SIZE_TYPE':
88
+ case 'INVALID_SIZE_COMBINATION':
89
+ case 'INVALID_FLYOUT_MENU_TITLE':
90
+ return "".concat(prefix, ": ").concat(error.message);
91
+ default:
92
+ return "".concat(prefix, ": Unknown validation error");
93
+ }
94
+ }