@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.
- package/es/components/avatar/avatar.js +1 -1
- package/es/components/badge/badge.js +1 -1
- package/es/components/badge/beta_badge/beta_badge.js +1 -1
- package/es/components/basic_table/basic_table.js +36 -55
- package/es/components/basic_table/in_memory_table.js +6 -6
- package/es/components/beacon/beacon.styles.js +1 -1
- package/es/components/button/button_display/_button_display_content.js +1 -1
- package/es/components/button/button_empty/button_empty.js +1 -1
- package/es/components/button/button_group/button_group.js +1 -1
- package/es/components/button/button_group/button_group_button.js +1 -1
- package/es/components/button/button_icon/button_icon.js +1 -1
- package/es/components/button/index.js +2 -1
- package/es/components/button/split_button/index.js +10 -0
- package/es/components/button/split_button/split_button.js +120 -0
- package/es/components/button/split_button/split_button.styles.js +51 -0
- package/es/components/button/split_button/split_button_actions.js +115 -0
- package/{optimize/es/components/flyout/flyout_context.js → es/components/button/split_button/split_button_context.js} +5 -7
- package/es/components/call_out/call_out.js +1 -1
- package/es/components/card/card.js +1 -1
- package/es/components/collapsible_nav/collapsible_nav.js +20 -101
- package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
- package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
- package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
- package/es/components/comment_list/comment.js +2 -2
- package/es/components/comment_list/comment_event.js +1 -1
- package/es/components/comment_list/comment_list.js +2 -2
- package/es/components/comment_list/comment_timeline.js +1 -1
- package/es/components/context_menu/context_menu_item.js +1 -1
- package/es/components/datagrid/body/cell/data_grid_cell.js +12 -12
- package/es/components/datagrid/body/data_grid_body.js +7 -7
- package/es/components/datagrid/body/data_grid_body_custom.js +7 -7
- package/es/components/datagrid/body/data_grid_body_virtualized.js +7 -7
- package/es/components/datagrid/body/header/data_grid_header_cell.js +6 -6
- package/es/components/datagrid/controls/column_sorting.js +7 -7
- package/es/components/datagrid/controls/column_sorting_draggable.js +1 -1
- package/es/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
- package/es/components/datagrid/controls/fullscreen_selector.styles.js +1 -1
- package/es/components/datagrid/utils/in_memory.js +6 -6
- package/es/components/date_picker/date_picker.js +2 -2
- package/es/components/date_picker/date_picker_range.js +1 -1
- package/es/components/empty_prompt/empty_prompt.js +2 -2
- package/es/components/flex/flex_group.js +1 -1
- package/es/components/flyout/_flyout_overlay.js +52 -0
- package/es/components/flyout/_flyout_resize_button.js +32 -0
- package/es/components/flyout/{flyout_resizable.styles.js → _flyout_resize_button.styles.js} +11 -11
- package/es/components/flyout/const.js +42 -0
- package/es/components/flyout/flyout.component.js +481 -0
- package/es/components/flyout/flyout.js +77 -379
- package/es/components/flyout/flyout.styles.js +106 -7
- package/es/components/flyout/flyout_menu.js +241 -0
- package/es/components/flyout/flyout_menu.styles.js +19 -0
- package/es/components/flyout/{flyout_context.js → flyout_menu_context.js} +1 -7
- package/es/components/flyout/flyout_parent_context.js +36 -0
- package/es/components/flyout/flyout_resizable.js +33 -144
- package/es/components/flyout/hooks.js +25 -0
- package/es/components/flyout/index.js +5 -2
- package/es/components/flyout/manager/actions.js +153 -0
- package/es/components/flyout/manager/activity_stage.js +95 -0
- package/es/components/flyout/manager/const.js +56 -0
- package/es/components/flyout/manager/context.js +33 -0
- package/es/components/flyout/manager/flyout_child.js +75 -0
- package/es/components/flyout/manager/flyout_main.js +65 -0
- package/es/components/flyout/manager/flyout_main.styles.js +25 -0
- package/es/components/flyout/manager/flyout_managed.js +227 -0
- package/es/components/flyout/manager/flyout_managed.styles.js +69 -0
- package/es/components/flyout/manager/hooks.js +55 -0
- package/es/components/flyout/manager/index.js +31 -0
- package/es/components/flyout/manager/layout_mode.js +167 -0
- package/es/components/flyout/manager/provider.js +57 -0
- package/es/components/flyout/manager/reducer.js +320 -0
- package/es/components/flyout/manager/selectors.js +116 -0
- package/es/components/flyout/manager/store.js +113 -0
- package/es/components/flyout/manager/validation.js +85 -0
- package/es/components/flyout/use_flyout_resizable.js +149 -0
- package/es/components/flyout/use_flyout_z_index.js +46 -0
- package/es/components/form/field_number/field_number.js +2 -2
- package/es/components/form/field_text/field_text.js +2 -2
- package/es/components/form/form_control_button/form_control_button.js +1 -1
- package/es/components/form/form_control_layout/form_control_layout.js +2 -2
- package/es/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
- package/es/components/form/form_control_layout/form_control_layout_icons.js +2 -2
- package/es/components/form/text_area/text_area.js +2 -2
- package/es/components/header/header_links/header_link.js +1 -1
- package/es/components/header/header_links/header_links.js +1 -1
- package/es/components/header/header_logo/header_logo.js +1 -1
- package/es/components/header/header_section/header_section_item_button.js +1 -1
- package/es/components/horizontal_rule/horizontal_rule.js +1 -1
- package/es/components/icon/assets/agentBuilderRobot.js +37 -0
- package/es/components/icon/assets/cross_project_search.js +35 -0
- package/es/components/icon/assets/dashed_circle.js +35 -0
- package/es/components/icon/assets/product_robot.js +37 -0
- package/es/components/icon/icon.js +1 -1
- package/es/components/icon/icon_map.js +3 -0
- package/es/components/key_pad_menu/key_pad_menu_item.js +1 -1
- package/es/components/link/external_link_icon.js +6 -3
- package/es/components/list_group/list_group.js +2 -2
- package/es/components/list_group/list_group_item.js +2 -2
- package/es/components/list_group/list_group_item_extra_action.js +1 -1
- package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
- package/es/components/loading/loading_logo.js +1 -1
- package/es/components/markdown_editor/markdown_editor.js +1 -1
- package/es/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
- package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
- package/es/components/markdown_editor/markdown_editor_toolbar.js +1 -1
- package/es/components/overlay_mask/overlay_mask.js +13 -3
- package/es/components/overlay_mask/overlay_mask.styles.js +11 -2
- package/es/components/page/page_header/page_header_content.js +2 -2
- package/es/components/pagination/pagination_button.js +1 -1
- package/es/components/provider/provider.js +2 -1
- package/es/components/search_bar/search_bar.js +1 -1
- package/es/components/selectable/selectable_list/selectable_list.js +1 -1
- package/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
- package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
- package/es/components/spacer/spacer.js +1 -1
- package/es/components/table/table_header_cell.js +1 -1
- package/es/components/timeline/timeline_item_icon.js +1 -1
- package/es/components/toast/global_toast_list.js +1 -1
- package/es/components/toast/toast.js +1 -1
- package/es/components/tool_tip/icon_tip.js +1 -1
- package/es/components/tour/tour_step_indicator.js +8 -3
- package/es/global_styling/mixins/_button.js +28 -9
- package/es/global_styling/mixins/_container_query.js +106 -0
- package/es/global_styling/mixins/index.js +1 -0
- package/es/services/container_query/container_query_hook.js +64 -0
- package/es/{components/flyout/sessions → services/container_query}/index.js +1 -2
- package/es/services/container_query/match_container.js +242 -0
- package/eui.d.ts +7558 -6642
- package/i18ntokens.json +1438 -1384
- package/lib/components/avatar/avatar.js +1 -1
- package/lib/components/badge/badge.js +1 -1
- package/lib/components/badge/beta_badge/beta_badge.js +1 -1
- package/lib/components/basic_table/basic_table.js +36 -55
- package/lib/components/basic_table/in_memory_table.js +6 -6
- package/lib/components/beacon/beacon.styles.js +1 -1
- package/lib/components/button/button_display/_button_display_content.js +1 -1
- package/lib/components/button/button_empty/button_empty.js +1 -1
- package/lib/components/button/button_group/button_group.js +1 -1
- package/lib/components/button/button_group/button_group_button.js +1 -1
- package/lib/components/button/button_icon/button_icon.js +1 -1
- package/lib/components/button/index.js +8 -1
- package/lib/components/button/split_button/index.js +25 -0
- package/lib/components/button/split_button/split_button.js +129 -0
- package/lib/components/button/split_button/split_button.styles.js +55 -0
- package/lib/components/button/split_button/split_button_actions.js +123 -0
- package/{optimize/lib/components/flyout/flyout_context.js → lib/components/button/split_button/split_button_context.js} +6 -7
- package/lib/components/call_out/call_out.js +1 -1
- package/lib/components/card/card.js +1 -1
- package/lib/components/collapsible_nav/collapsible_nav.js +20 -101
- package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
- package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
- package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
- package/lib/components/comment_list/comment.js +2 -2
- package/lib/components/comment_list/comment_event.js +1 -1
- package/lib/components/comment_list/comment_list.js +2 -2
- package/lib/components/comment_list/comment_timeline.js +1 -1
- package/lib/components/context_menu/context_menu_item.js +1 -1
- package/lib/components/datagrid/body/cell/data_grid_cell.js +12 -12
- package/lib/components/datagrid/body/data_grid_body.js +7 -7
- package/lib/components/datagrid/body/data_grid_body_custom.js +7 -7
- package/lib/components/datagrid/body/data_grid_body_virtualized.js +7 -7
- package/lib/components/datagrid/body/header/data_grid_header_cell.js +6 -6
- package/lib/components/datagrid/controls/column_sorting.js +7 -7
- package/lib/components/datagrid/controls/column_sorting_draggable.js +1 -1
- package/lib/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
- package/lib/components/datagrid/controls/fullscreen_selector.styles.js +1 -1
- package/lib/components/datagrid/utils/in_memory.js +6 -6
- package/lib/components/date_picker/date_picker.js +2 -2
- package/lib/components/date_picker/date_picker_range.js +1 -1
- package/lib/components/empty_prompt/empty_prompt.js +2 -2
- package/lib/components/flex/flex_group.js +1 -1
- package/lib/components/flyout/_flyout_overlay.js +59 -0
- package/lib/components/flyout/_flyout_resize_button.js +38 -0
- package/{test-env/components/flyout/flyout_resizable.styles.js → lib/components/flyout/_flyout_resize_button.styles.js} +12 -12
- package/lib/components/flyout/const.js +49 -0
- package/lib/components/flyout/flyout.component.js +488 -0
- package/lib/components/flyout/flyout.js +102 -379
- package/lib/components/flyout/flyout.styles.js +106 -7
- package/lib/components/flyout/flyout_menu.js +243 -0
- package/lib/components/flyout/flyout_menu.styles.js +25 -0
- package/lib/components/flyout/{flyout_context.js → flyout_menu_context.js} +2 -7
- package/lib/components/flyout/flyout_parent_context.js +43 -0
- package/lib/components/flyout/flyout_resizable.js +36 -147
- package/lib/components/flyout/hooks.js +30 -0
- package/lib/components/flyout/index.js +21 -14
- package/lib/components/flyout/manager/actions.js +159 -0
- package/lib/components/flyout/manager/activity_stage.js +101 -0
- package/lib/components/flyout/manager/const.js +62 -0
- package/lib/components/flyout/manager/context.js +41 -0
- package/lib/components/flyout/manager/flyout_child.js +80 -0
- package/lib/components/flyout/manager/flyout_main.js +70 -0
- package/lib/components/flyout/manager/flyout_main.styles.js +31 -0
- package/lib/components/flyout/manager/flyout_managed.js +233 -0
- package/lib/components/flyout/manager/flyout_managed.styles.js +73 -0
- package/lib/components/flyout/manager/hooks.js +131 -0
- package/lib/components/flyout/manager/index.js +168 -0
- package/lib/components/flyout/manager/layout_mode.js +171 -0
- package/lib/components/flyout/manager/provider.js +63 -0
- package/lib/components/flyout/manager/reducer.js +325 -0
- package/lib/components/flyout/manager/selectors.js +122 -0
- package/lib/components/flyout/manager/store.js +120 -0
- package/lib/components/flyout/manager/validation.js +94 -0
- package/lib/components/flyout/use_flyout_resizable.js +153 -0
- package/lib/components/flyout/use_flyout_z_index.js +51 -0
- package/lib/components/form/field_number/field_number.js +2 -2
- package/lib/components/form/field_text/field_text.js +2 -2
- package/lib/components/form/form_control_button/form_control_button.js +1 -1
- package/lib/components/form/form_control_layout/form_control_layout.js +2 -2
- package/lib/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
- package/lib/components/form/form_control_layout/form_control_layout_icons.js +2 -2
- package/lib/components/form/text_area/text_area.js +2 -2
- package/lib/components/header/header_links/header_link.js +1 -1
- package/lib/components/header/header_links/header_links.js +1 -1
- package/lib/components/header/header_logo/header_logo.js +1 -1
- package/lib/components/header/header_section/header_section_item_button.js +1 -1
- package/lib/components/horizontal_rule/horizontal_rule.js +1 -1
- package/lib/components/icon/assets/agentBuilderRobot.js +44 -0
- package/lib/components/icon/assets/cross_project_search.js +42 -0
- package/lib/components/icon/assets/dashed_circle.js +42 -0
- package/lib/components/icon/assets/product_robot.js +44 -0
- package/lib/components/icon/icon.js +1 -1
- package/lib/components/icon/icon_map.js +3 -0
- package/lib/components/icon/svgs/cross_project_search.svg +3 -0
- package/lib/components/icon/svgs/dashed_circle.svg +5 -0
- package/lib/components/icon/svgs/product_robot.svg +4 -0
- package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -1
- package/lib/components/link/external_link_icon.js +6 -3
- package/lib/components/list_group/list_group.js +2 -2
- package/lib/components/list_group/list_group_item.js +2 -2
- package/lib/components/list_group/list_group_item_extra_action.js +1 -1
- package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
- package/lib/components/loading/loading_logo.js +1 -1
- package/lib/components/markdown_editor/markdown_editor.js +1 -1
- package/lib/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
- package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
- package/lib/components/markdown_editor/markdown_editor_toolbar.js +1 -1
- package/lib/components/overlay_mask/overlay_mask.js +12 -2
- package/lib/components/overlay_mask/overlay_mask.styles.js +11 -4
- package/lib/components/page/page_header/page_header_content.js +2 -2
- package/lib/components/pagination/pagination_button.js +1 -1
- package/lib/components/provider/provider.js +2 -1
- package/lib/components/search_bar/search_bar.js +1 -1
- package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
- package/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
- package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
- package/lib/components/spacer/spacer.js +1 -1
- package/lib/components/table/table_header_cell.js +1 -1
- package/lib/components/timeline/timeline_item_icon.js +1 -1
- package/lib/components/toast/global_toast_list.js +1 -1
- package/lib/components/toast/toast.js +1 -1
- package/lib/components/tool_tip/icon_tip.js +1 -1
- package/lib/components/tour/tour_step_indicator.js +8 -3
- package/lib/global_styling/mixins/_button.js +29 -10
- package/lib/global_styling/mixins/_container_query.js +112 -0
- package/lib/global_styling/mixins/index.js +11 -0
- package/lib/services/container_query/container_query_hook.js +67 -0
- package/lib/services/container_query/index.js +16 -0
- package/lib/services/container_query/match_container.js +243 -0
- package/optimize/es/components/basic_table/basic_table.js +30 -49
- package/optimize/es/components/beacon/beacon.styles.js +1 -1
- package/optimize/es/components/button/index.js +2 -1
- package/optimize/es/components/button/split_button/index.js +10 -0
- package/optimize/es/components/button/split_button/split_button.js +98 -0
- package/optimize/es/components/button/split_button/split_button.styles.js +51 -0
- package/optimize/es/components/button/split_button/split_button_actions.js +89 -0
- package/optimize/es/components/button/split_button/split_button_context.js +14 -0
- package/optimize/es/components/collapsible_nav/collapsible_nav.js +1 -0
- package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
- package/optimize/es/components/datagrid/controls/fullscreen_selector.styles.js +1 -1
- package/optimize/es/components/empty_prompt/empty_prompt.js +1 -1
- package/optimize/es/components/flex/flex_group.js +1 -1
- package/optimize/es/components/flyout/_flyout_overlay.js +52 -0
- package/optimize/es/components/flyout/_flyout_resize_button.js +31 -0
- package/optimize/es/components/flyout/{flyout_resizable.styles.js → _flyout_resize_button.styles.js} +11 -11
- package/optimize/es/components/flyout/const.js +42 -0
- package/optimize/es/components/flyout/flyout.component.js +469 -0
- package/optimize/es/components/flyout/flyout.js +53 -349
- package/optimize/es/components/flyout/flyout.styles.js +103 -7
- package/optimize/es/components/flyout/flyout_menu.js +162 -0
- package/optimize/es/components/flyout/flyout_menu.styles.js +19 -0
- package/optimize/es/components/flyout/flyout_menu_context.js +10 -0
- package/optimize/es/components/flyout/flyout_parent_context.js +36 -0
- package/optimize/es/components/flyout/flyout_resizable.js +7 -138
- package/optimize/es/components/flyout/hooks.js +25 -0
- package/optimize/es/components/flyout/index.js +5 -2
- package/optimize/es/components/flyout/manager/actions.js +153 -0
- package/optimize/es/components/flyout/manager/activity_stage.js +95 -0
- package/optimize/es/components/flyout/manager/const.js +56 -0
- package/optimize/es/components/flyout/manager/context.js +33 -0
- package/optimize/es/components/flyout/manager/flyout_child.js +71 -0
- package/optimize/es/components/flyout/manager/flyout_main.js +61 -0
- package/optimize/es/components/flyout/manager/flyout_main.styles.js +25 -0
- package/optimize/es/components/flyout/manager/flyout_managed.js +223 -0
- package/optimize/es/components/flyout/manager/flyout_managed.styles.js +69 -0
- package/optimize/es/components/flyout/manager/hooks.js +55 -0
- package/optimize/es/components/flyout/manager/index.js +31 -0
- package/optimize/es/components/flyout/manager/layout_mode.js +162 -0
- package/optimize/es/components/flyout/manager/provider.js +53 -0
- package/optimize/es/components/flyout/manager/reducer.js +312 -0
- package/optimize/es/components/flyout/manager/selectors.js +116 -0
- package/optimize/es/components/flyout/manager/store.js +113 -0
- package/optimize/es/components/flyout/manager/types.js +1 -0
- package/optimize/es/components/flyout/manager/validation.js +85 -0
- package/optimize/es/components/flyout/types.js +1 -0
- package/optimize/es/components/flyout/use_flyout_resizable.js +144 -0
- package/optimize/es/components/flyout/use_flyout_z_index.js +46 -0
- package/optimize/es/components/horizontal_rule/horizontal_rule.js +1 -1
- package/optimize/es/components/icon/assets/agentBuilderRobot.js +36 -0
- package/optimize/es/components/icon/assets/cross_project_search.js +34 -0
- package/optimize/es/components/icon/assets/dashed_circle.js +34 -0
- package/optimize/es/components/icon/assets/product_robot.js +36 -0
- package/optimize/es/components/icon/icon_map.js +3 -0
- package/optimize/es/components/link/external_link_icon.js +6 -3
- package/optimize/es/components/overlay_mask/overlay_mask.js +13 -3
- package/optimize/es/components/overlay_mask/overlay_mask.styles.js +11 -2
- package/optimize/es/components/page/page_header/page_header_content.js +1 -1
- package/optimize/es/components/provider/provider.js +2 -1
- package/optimize/es/components/search_bar/search_bar.js +1 -1
- package/optimize/es/components/spacer/spacer.js +1 -1
- package/optimize/es/components/tour/tour_step_indicator.js +8 -3
- package/optimize/es/global_styling/mixins/_button.js +28 -9
- package/optimize/es/global_styling/mixins/_container_query.js +106 -0
- package/optimize/es/global_styling/mixins/index.js +1 -0
- package/optimize/es/services/container_query/container_query_hook.js +59 -0
- package/optimize/es/{components/flyout/sessions → services/container_query}/index.js +1 -2
- package/optimize/es/services/container_query/match_container.js +229 -0
- package/optimize/lib/components/basic_table/basic_table.js +30 -49
- package/optimize/lib/components/beacon/beacon.styles.js +1 -1
- package/optimize/lib/components/button/index.js +8 -1
- package/optimize/lib/components/button/split_button/index.js +25 -0
- package/optimize/lib/components/button/split_button/split_button.js +107 -0
- package/optimize/lib/components/button/split_button/split_button.styles.js +55 -0
- package/optimize/lib/components/button/split_button/split_button_actions.js +98 -0
- package/{test-env/components/flyout/flyout_context.js → optimize/lib/components/button/split_button/split_button_context.js} +6 -7
- package/optimize/lib/components/collapsible_nav/collapsible_nav.js +1 -0
- package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
- package/optimize/lib/components/datagrid/controls/fullscreen_selector.styles.js +1 -1
- package/optimize/lib/components/empty_prompt/empty_prompt.js +1 -1
- package/optimize/lib/components/flex/flex_group.js +1 -1
- package/optimize/lib/components/flyout/_flyout_overlay.js +62 -0
- package/optimize/lib/components/flyout/_flyout_resize_button.js +37 -0
- package/{lib/components/flyout/flyout_resizable.styles.js → optimize/lib/components/flyout/_flyout_resize_button.styles.js} +12 -12
- package/optimize/lib/components/flyout/const.js +49 -0
- package/optimize/lib/components/flyout/flyout.component.js +477 -0
- package/optimize/lib/components/flyout/flyout.js +77 -349
- package/optimize/lib/components/flyout/flyout.styles.js +103 -7
- package/optimize/lib/components/flyout/flyout_menu.js +168 -0
- package/optimize/lib/components/flyout/flyout_menu.styles.js +25 -0
- package/optimize/lib/components/flyout/flyout_menu_context.js +16 -0
- package/optimize/lib/components/flyout/flyout_parent_context.js +43 -0
- package/optimize/lib/components/flyout/flyout_resizable.js +9 -139
- package/optimize/lib/components/flyout/hooks.js +30 -0
- package/optimize/lib/components/flyout/index.js +21 -14
- package/optimize/lib/components/flyout/manager/actions.js +159 -0
- package/optimize/lib/components/flyout/manager/activity_stage.js +101 -0
- package/optimize/lib/components/flyout/manager/const.js +62 -0
- package/optimize/lib/components/flyout/manager/context.js +41 -0
- package/optimize/lib/components/flyout/manager/flyout_child.js +76 -0
- package/optimize/lib/components/flyout/manager/flyout_main.js +66 -0
- package/optimize/lib/components/flyout/manager/flyout_main.styles.js +31 -0
- package/optimize/lib/components/flyout/manager/flyout_managed.js +231 -0
- package/optimize/lib/components/flyout/manager/flyout_managed.styles.js +74 -0
- package/optimize/lib/components/flyout/manager/hooks.js +131 -0
- package/optimize/lib/components/flyout/manager/index.js +168 -0
- package/optimize/lib/components/flyout/manager/layout_mode.js +169 -0
- package/optimize/lib/components/flyout/manager/provider.js +61 -0
- package/optimize/lib/components/flyout/manager/reducer.js +318 -0
- package/optimize/lib/components/flyout/manager/selectors.js +122 -0
- package/optimize/lib/components/flyout/manager/store.js +120 -0
- package/optimize/lib/components/flyout/manager/validation.js +94 -0
- package/optimize/lib/components/flyout/types.js +5 -0
- package/optimize/lib/components/flyout/use_flyout_resizable.js +151 -0
- package/optimize/lib/components/flyout/use_flyout_z_index.js +51 -0
- package/optimize/lib/components/horizontal_rule/horizontal_rule.js +1 -1
- package/optimize/lib/components/icon/assets/agentBuilderRobot.js +44 -0
- package/optimize/lib/components/icon/assets/cross_project_search.js +42 -0
- package/optimize/lib/components/icon/assets/dashed_circle.js +42 -0
- package/optimize/lib/components/icon/assets/product_robot.js +44 -0
- package/optimize/lib/components/icon/icon_map.js +3 -0
- package/optimize/lib/components/icon/svgs/cross_project_search.svg +3 -0
- package/optimize/lib/components/icon/svgs/dashed_circle.svg +5 -0
- package/optimize/lib/components/icon/svgs/product_robot.svg +4 -0
- package/optimize/lib/components/link/external_link_icon.js +6 -3
- package/optimize/lib/components/overlay_mask/overlay_mask.js +12 -2
- package/optimize/lib/components/overlay_mask/overlay_mask.styles.js +11 -4
- package/optimize/lib/components/page/page_header/page_header_content.js +1 -1
- package/optimize/lib/components/provider/provider.js +2 -1
- package/optimize/lib/components/search_bar/search_bar.js +1 -1
- package/optimize/lib/components/spacer/spacer.js +1 -1
- package/optimize/lib/components/tour/tour_step_indicator.js +8 -3
- package/optimize/lib/global_styling/mixins/_button.js +29 -10
- package/optimize/lib/global_styling/mixins/_container_query.js +112 -0
- package/optimize/lib/global_styling/mixins/index.js +11 -0
- package/optimize/lib/services/container_query/container_query_hook.js +65 -0
- package/optimize/lib/services/container_query/index.js +16 -0
- package/optimize/lib/services/container_query/match_container.js +231 -0
- package/package.json +5 -4
- package/test-env/components/avatar/avatar.js +1 -1
- package/test-env/components/badge/badge.js +1 -1
- package/test-env/components/badge/beta_badge/beta_badge.js +1 -1
- package/test-env/components/basic_table/basic_table.js +36 -55
- package/test-env/components/basic_table/in_memory_table.js +6 -6
- package/test-env/components/beacon/beacon.styles.js +1 -1
- package/test-env/components/button/button_display/_button_display_content.js +1 -1
- package/test-env/components/button/button_empty/button_empty.js +1 -1
- package/test-env/components/button/button_group/button_group.js +1 -1
- package/test-env/components/button/button_group/button_group_button.js +1 -1
- package/test-env/components/button/button_icon/button_icon.js +1 -1
- package/test-env/components/button/index.js +8 -1
- package/test-env/components/button/split_button/index.js +25 -0
- package/test-env/components/button/split_button/split_button.js +123 -0
- package/test-env/components/button/split_button/split_button.styles.js +55 -0
- package/test-env/components/button/split_button/split_button_actions.js +120 -0
- package/test-env/components/button/split_button/split_button_context.js +20 -0
- package/test-env/components/call_out/call_out.js +1 -1
- package/test-env/components/card/card.js +1 -1
- package/test-env/components/collapsible_nav/collapsible_nav.js +20 -101
- package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
- package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
- package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +1 -0
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
- package/test-env/components/comment_list/comment.js +2 -2
- package/test-env/components/comment_list/comment_event.js +1 -1
- package/test-env/components/comment_list/comment_list.js +2 -2
- package/test-env/components/comment_list/comment_timeline.js +1 -1
- package/test-env/components/context_menu/context_menu_item.js +1 -1
- package/test-env/components/datagrid/body/cell/data_grid_cell.js +12 -12
- package/test-env/components/datagrid/body/data_grid_body.js +7 -7
- package/test-env/components/datagrid/body/data_grid_body_custom.js +7 -7
- package/test-env/components/datagrid/body/data_grid_body_virtualized.js +7 -7
- package/test-env/components/datagrid/body/header/data_grid_header_cell.js +6 -6
- package/test-env/components/datagrid/controls/column_sorting.js +7 -7
- package/test-env/components/datagrid/controls/column_sorting_draggable.js +1 -1
- package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
- package/test-env/components/datagrid/controls/fullscreen_selector.styles.js +1 -1
- package/test-env/components/datagrid/utils/in_memory.js +6 -6
- package/test-env/components/date_picker/date_picker.js +2 -2
- package/test-env/components/date_picker/date_picker_range.js +1 -1
- package/test-env/components/empty_prompt/empty_prompt.js +2 -2
- package/test-env/components/flex/flex_group.js +1 -1
- package/test-env/components/flyout/_flyout_overlay.js +62 -0
- package/test-env/components/flyout/_flyout_resize_button.js +37 -0
- package/{optimize/lib/components/flyout/flyout_resizable.styles.js → test-env/components/flyout/_flyout_resize_button.styles.js} +12 -12
- package/test-env/components/flyout/const.js +49 -0
- package/test-env/components/flyout/flyout.component.js +477 -0
- package/test-env/components/flyout/flyout.styles.js +103 -7
- package/test-env/components/flyout/flyout_menu.js +241 -0
- package/test-env/components/flyout/flyout_menu.styles.js +25 -0
- package/test-env/components/flyout/flyout_menu_context.js +16 -0
- package/test-env/components/flyout/flyout_parent_context.js +43 -0
- package/test-env/components/flyout/flyout_resizable.js +35 -139
- package/test-env/components/flyout/hooks.js +30 -0
- package/test-env/components/flyout/index.js +21 -14
- package/test-env/components/flyout/manager/actions.js +159 -0
- package/test-env/components/flyout/manager/activity_stage.js +101 -0
- package/test-env/components/flyout/manager/const.js +62 -0
- package/test-env/components/flyout/manager/context.js +41 -0
- package/test-env/components/flyout/manager/flyout_child.js +76 -0
- package/test-env/components/flyout/manager/flyout_main.js +66 -0
- package/test-env/components/flyout/manager/flyout_main.styles.js +31 -0
- package/test-env/components/flyout/manager/flyout_managed.js +231 -0
- package/test-env/components/flyout/manager/flyout_managed.styles.js +74 -0
- package/test-env/components/flyout/manager/hooks.js +131 -0
- package/test-env/components/flyout/manager/index.js +168 -0
- package/test-env/components/flyout/manager/layout_mode.js +169 -0
- package/test-env/components/flyout/manager/provider.js +61 -0
- package/test-env/components/flyout/manager/reducer.js +318 -0
- package/test-env/components/flyout/manager/selectors.js +122 -0
- package/test-env/components/flyout/manager/store.js +120 -0
- package/test-env/components/flyout/manager/types.js +5 -0
- package/test-env/components/flyout/manager/validation.js +94 -0
- package/test-env/components/flyout/types.js +5 -0
- package/test-env/components/flyout/use_flyout_resizable.js +151 -0
- package/test-env/components/flyout/use_flyout_z_index.js +51 -0
- package/test-env/components/form/field_number/field_number.js +2 -2
- package/test-env/components/form/field_text/field_text.js +2 -2
- package/test-env/components/form/form_control_button/form_control_button.js +1 -1
- package/test-env/components/form/form_control_layout/form_control_layout.js +2 -2
- package/test-env/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
- package/test-env/components/form/form_control_layout/form_control_layout_icons.js +2 -2
- package/test-env/components/form/text_area/text_area.js +2 -2
- package/test-env/components/header/header_links/header_link.js +1 -1
- package/test-env/components/header/header_links/header_links.js +1 -1
- package/test-env/components/header/header_logo/header_logo.js +1 -1
- package/test-env/components/header/header_section/header_section_item_button.js +1 -1
- package/test-env/components/horizontal_rule/horizontal_rule.js +1 -1
- package/test-env/components/icon/assets/agentBuilderRobot.js +44 -0
- package/test-env/components/icon/assets/cross_project_search.js +42 -0
- package/test-env/components/icon/assets/dashed_circle.js +42 -0
- package/test-env/components/icon/assets/product_robot.js +44 -0
- package/test-env/components/icon/icon_map.js +3 -0
- package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -1
- package/test-env/components/link/external_link_icon.js +6 -3
- package/test-env/components/list_group/list_group.js +2 -2
- package/test-env/components/list_group/list_group_item.js +2 -2
- package/test-env/components/list_group/list_group_item_extra_action.js +1 -1
- package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
- package/test-env/components/loading/loading_logo.js +1 -1
- package/test-env/components/markdown_editor/markdown_editor.js +1 -1
- package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
- package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
- package/test-env/components/markdown_editor/markdown_editor_toolbar.js +1 -1
- package/test-env/components/overlay_mask/overlay_mask.js +12 -2
- package/test-env/components/overlay_mask/overlay_mask.styles.js +11 -4
- package/test-env/components/page/page_header/page_header_content.js +2 -2
- package/test-env/components/pagination/pagination_button.js +1 -1
- package/test-env/components/provider/provider.js +2 -1
- package/test-env/components/search_bar/search_bar.js +1 -1
- package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
- package/test-env/components/selectable/selectable_list/selectable_list_item.js +1 -1
- package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
- package/test-env/components/spacer/spacer.js +1 -1
- package/test-env/components/table/table_header_cell.js +1 -1
- package/test-env/components/timeline/timeline_item_icon.js +1 -1
- package/test-env/components/toast/global_toast_list.js +1 -1
- package/test-env/components/toast/toast.js +1 -1
- package/test-env/components/tool_tip/icon_tip.js +1 -1
- package/test-env/components/tour/tour_step_indicator.js +8 -3
- package/test-env/global_styling/mixins/_button.js +29 -10
- package/test-env/global_styling/mixins/_container_query.js +112 -0
- package/test-env/global_styling/mixins/index.js +11 -0
- package/test-env/services/container_query/container_query_hook.js +65 -0
- package/test-env/services/container_query/index.js +16 -0
- package/test-env/services/container_query/match_container.js +231 -0
- package/es/components/flyout/flyout_child.js +0 -223
- package/es/components/flyout/flyout_child.styles.js +0 -32
- package/es/components/flyout/flyout_child_manager.js +0 -114
- package/es/components/flyout/sessions/flyout_provider.js +0 -95
- package/es/components/flyout/sessions/flyout_reducer.js +0 -195
- package/es/components/flyout/sessions/use_eui_flyout.js +0 -82
- package/lib/components/flyout/flyout_child.js +0 -231
- package/lib/components/flyout/flyout_child.styles.js +0 -38
- package/lib/components/flyout/flyout_child_manager.js +0 -122
- package/lib/components/flyout/sessions/flyout_provider.js +0 -102
- package/lib/components/flyout/sessions/flyout_reducer.js +0 -202
- package/lib/components/flyout/sessions/index.js +0 -25
- package/lib/components/flyout/sessions/use_eui_flyout.js +0 -88
- package/optimize/es/components/flyout/flyout_child.js +0 -178
- package/optimize/es/components/flyout/flyout_child.styles.js +0 -32
- package/optimize/es/components/flyout/flyout_child_manager.js +0 -100
- package/optimize/es/components/flyout/sessions/flyout_provider.js +0 -90
- package/optimize/es/components/flyout/sessions/flyout_reducer.js +0 -187
- package/optimize/es/components/flyout/sessions/use_eui_flyout.js +0 -82
- package/optimize/lib/components/flyout/flyout_child.js +0 -186
- package/optimize/lib/components/flyout/flyout_child.styles.js +0 -38
- package/optimize/lib/components/flyout/flyout_child_manager.js +0 -110
- package/optimize/lib/components/flyout/sessions/flyout_provider.js +0 -100
- package/optimize/lib/components/flyout/sessions/flyout_reducer.js +0 -195
- package/optimize/lib/components/flyout/sessions/index.js +0 -25
- package/optimize/lib/components/flyout/sessions/use_eui_flyout.js +0 -88
- package/test-env/components/flyout/flyout_child.js +0 -230
- package/test-env/components/flyout/flyout_child.styles.js +0 -38
- package/test-env/components/flyout/flyout_child_manager.js +0 -119
- package/test-env/components/flyout/sessions/flyout_provider.js +0 -100
- package/test-env/components/flyout/sessions/flyout_reducer.js +0 -195
- package/test-env/components/flyout/sessions/index.js +0 -25
- package/test-env/components/flyout/sessions/use_eui_flyout.js +0 -88
- /package/es/components/flyout/{sessions → manager}/types.js +0 -0
- /package/{optimize/es/components/flyout/sessions → es/components/flyout}/types.js +0 -0
- /package/lib/components/flyout/{sessions → manager}/types.js +0 -0
- /package/{optimize/lib/components/flyout/sessions → lib/components/flyout}/types.js +0 -0
- /package/{test-env/components/flyout/sessions → optimize/lib/components/flyout/manager}/types.js +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Allowed values for `session` prop to control the way the session is managed for a flyout.
|
|
11
|
+
*/
|
|
12
|
+
export var SESSION_START = 'start';
|
|
13
|
+
export var SESSION_INHERIT = 'inherit';
|
|
14
|
+
export var SESSION_NEVER = 'never';
|
|
15
|
+
var PREFIX = 'data-managed-flyout';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Data attribute applied to a managed flyout element to help identify it as a managed flyout.
|
|
19
|
+
*/
|
|
20
|
+
export var PROPERTY_FLYOUT = "".concat(PREFIX);
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Data attribute indicating whether the flyout is the `main` or `child` flyout.
|
|
24
|
+
*/
|
|
25
|
+
export var PROPERTY_LEVEL = "".concat(PREFIX, "-level");
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Data attribute representing how multiple flyouts are laid out
|
|
29
|
+
* (`side-by-side` or `stacked`).
|
|
30
|
+
*/
|
|
31
|
+
export var PROPERTY_LAYOUT_MODE = "".concat(PREFIX, "-layout-mode");
|
|
32
|
+
|
|
33
|
+
/** Stacked layout mode where child flyouts overlay on top of the main flyout. */
|
|
34
|
+
export var LAYOUT_MODE_STACKED = 'stacked';
|
|
35
|
+
/** Side-by-side layout mode where child flyouts render adjacent to the main flyout. */
|
|
36
|
+
export var LAYOUT_MODE_SIDE_BY_SIDE = 'side-by-side';
|
|
37
|
+
|
|
38
|
+
/** The primary (parent) flyout in a session. */
|
|
39
|
+
export var LEVEL_MAIN = 'main';
|
|
40
|
+
/** The secondary (child) flyout spawned by the main flyout. */
|
|
41
|
+
export var LEVEL_CHILD = 'child';
|
|
42
|
+
|
|
43
|
+
/** Flyout is mounting and playing its opening animation. */
|
|
44
|
+
export var STAGE_OPENING = 'opening';
|
|
45
|
+
/** Flyout is fully visible and interactive. */
|
|
46
|
+
export var STAGE_ACTIVE = 'active';
|
|
47
|
+
/** Flyout is unmounted or not currently visible/interactable. */
|
|
48
|
+
export var STAGE_INACTIVE = 'inactive';
|
|
49
|
+
/** Main flyout is transitioning behind an active session flyout. */
|
|
50
|
+
export var STAGE_BACKGROUNDING = 'backgrounding';
|
|
51
|
+
/** Main flyout is backgrounded behind an active session flyout. */
|
|
52
|
+
export var STAGE_BACKGROUNDED = 'backgrounded';
|
|
53
|
+
/** Flyout is returning to the foreground from a backgrounded state. */
|
|
54
|
+
export var STAGE_RETURNING = 'returning';
|
|
55
|
+
/** Flyout is playing its closing animation. */
|
|
56
|
+
export var STAGE_CLOSING = 'closing';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import React, { createContext, useContext } from 'react';
|
|
10
|
+
|
|
11
|
+
// Context to track if we're within a managed flyout
|
|
12
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
13
|
+
var EuiFlyoutIsManagedContext = /*#__PURE__*/createContext(false);
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* React provider that marks descendants as being rendered inside
|
|
17
|
+
* an EUI managed flyout. Used by hooks/components to alter behavior
|
|
18
|
+
* (e.g., focus handling) when inside a managed flyout tree.
|
|
19
|
+
*/
|
|
20
|
+
export var EuiFlyoutIsManagedProvider = function EuiFlyoutIsManagedProvider(_ref) {
|
|
21
|
+
var isManaged = _ref.isManaged,
|
|
22
|
+
children = _ref.children;
|
|
23
|
+
return ___EmotionJSX(EuiFlyoutIsManagedContext.Provider, {
|
|
24
|
+
value: isManaged
|
|
25
|
+
}, children);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Hook that returns `true` when called within an EUI managed flyout subtree.
|
|
30
|
+
*/
|
|
31
|
+
export var useIsInManagedFlyout = function useIsInManagedFlyout() {
|
|
32
|
+
return useContext(EuiFlyoutIsManagedContext);
|
|
33
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
+
var _excluded = ["css", "side"];
|
|
5
|
+
/*
|
|
6
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
7
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
8
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
9
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
10
|
+
* Side Public License, v 1.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import React from 'react';
|
|
14
|
+
import { useEuiTheme } from '../../../services';
|
|
15
|
+
import { EuiManagedFlyout } from './flyout_managed';
|
|
16
|
+
import { useCurrentMainFlyout, useFlyoutLayoutMode, useFlyoutWidth } from './hooks';
|
|
17
|
+
import { LAYOUT_MODE_SIDE_BY_SIDE, LAYOUT_MODE_STACKED, LEVEL_CHILD } from './const';
|
|
18
|
+
import { DEFAULT_SIDE } from '../const';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Props for `EuiFlyoutChild`, a managed child flyout that pairs with a main flyout.
|
|
22
|
+
*
|
|
23
|
+
* Notes:
|
|
24
|
+
* - `type`, `side`, and `level` are fixed by the component and thus omitted.
|
|
25
|
+
*/
|
|
26
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
27
|
+
/**
|
|
28
|
+
* Managed child flyout that renders alongside or stacked over the main flyout,
|
|
29
|
+
* depending on the current layout mode. Handles required managed flyout props.
|
|
30
|
+
*/
|
|
31
|
+
export function EuiFlyoutChild(_ref) {
|
|
32
|
+
var customCss = _ref.css,
|
|
33
|
+
_ref$side = _ref.side,
|
|
34
|
+
side = _ref$side === void 0 ? DEFAULT_SIDE : _ref$side,
|
|
35
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
36
|
+
var _useEuiTheme = useEuiTheme(),
|
|
37
|
+
euiTheme = _useEuiTheme.euiTheme;
|
|
38
|
+
var mainFlyout = useCurrentMainFlyout();
|
|
39
|
+
var mainWidth = useFlyoutWidth(mainFlyout === null || mainFlyout === void 0 ? void 0 : mainFlyout.flyoutId);
|
|
40
|
+
var layoutMode = useFlyoutLayoutMode();
|
|
41
|
+
|
|
42
|
+
// Runtime validation: prevent orphan child flyouts
|
|
43
|
+
if (!mainFlyout) {
|
|
44
|
+
var errorMessage = 'EuiFlyoutChild must be used with an EuiFlyoutMain. ' + 'This usually means the main flyout was not rendered before the child flyout.';
|
|
45
|
+
|
|
46
|
+
// In development, throw an error to catch the issue early
|
|
47
|
+
if (process.env.NODE_ENV === 'development') {
|
|
48
|
+
throw new Error(errorMessage);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// In production, log a warning and prevent rendering
|
|
52
|
+
console.error('EuiFlyoutChild validation failed:', errorMessage);
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
var style = {};
|
|
56
|
+
if (mainWidth && layoutMode === LAYOUT_MODE_SIDE_BY_SIDE) {
|
|
57
|
+
style = _defineProperty({}, side, mainWidth);
|
|
58
|
+
} else if (layoutMode === LAYOUT_MODE_STACKED) {
|
|
59
|
+
style = {
|
|
60
|
+
zIndex: Number(euiTheme.levels.flyout) + 2
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
return ___EmotionJSX(EuiManagedFlyout, _extends({}, props, {
|
|
64
|
+
style: style,
|
|
65
|
+
level: LEVEL_CHILD,
|
|
66
|
+
type: "overlay",
|
|
67
|
+
ownFocus: false,
|
|
68
|
+
side: side,
|
|
69
|
+
css: customCss
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
+
var _excluded = ["id", "pushMinBreakpoint", "type", "side"];
|
|
5
|
+
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; }
|
|
6
|
+
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; }
|
|
7
|
+
/*
|
|
8
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
9
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
10
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
11
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
12
|
+
* Side Public License, v 1.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import React from 'react';
|
|
16
|
+
import { EuiManagedFlyout } from './flyout_managed';
|
|
17
|
+
import { useHasChildFlyout, useFlyoutId } from './hooks';
|
|
18
|
+
import { euiMainFlyoutStyles } from './flyout_main.styles';
|
|
19
|
+
import { useEuiMemoizedStyles } from '../../../services';
|
|
20
|
+
import { DEFAULT_PUSH_MIN_BREAKPOINT, DEFAULT_SIDE, DEFAULT_TYPE } from '../const';
|
|
21
|
+
import { useIsPushed } from '../hooks';
|
|
22
|
+
import { LEVEL_MAIN } from './const';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Props for `EuiFlyoutMain`, the primary managed flyout component.
|
|
26
|
+
* The `level` prop is fixed internally to `main` and is therefore omitted.
|
|
27
|
+
*/
|
|
28
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
29
|
+
/**
|
|
30
|
+
* Managed main flyout. Handles ID management, child-flyout styling,
|
|
31
|
+
* and push/overlay behavior based on provided props.
|
|
32
|
+
*/
|
|
33
|
+
export function EuiFlyoutMain(_ref) {
|
|
34
|
+
var id = _ref.id,
|
|
35
|
+
_ref$pushMinBreakpoin = _ref.pushMinBreakpoint,
|
|
36
|
+
pushMinBreakpoint = _ref$pushMinBreakpoin === void 0 ? DEFAULT_PUSH_MIN_BREAKPOINT : _ref$pushMinBreakpoin,
|
|
37
|
+
_ref$type = _ref.type,
|
|
38
|
+
type = _ref$type === void 0 ? DEFAULT_TYPE : _ref$type,
|
|
39
|
+
_ref$side = _ref.side,
|
|
40
|
+
side = _ref$side === void 0 ? DEFAULT_SIDE : _ref$side,
|
|
41
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
42
|
+
var flyoutId = useFlyoutId(id);
|
|
43
|
+
var hasChildFlyout = useHasChildFlyout(flyoutId);
|
|
44
|
+
var styles = useEuiMemoizedStyles(euiMainFlyoutStyles);
|
|
45
|
+
var isPushed = useIsPushed({
|
|
46
|
+
type: type,
|
|
47
|
+
pushMinBreakpoint: pushMinBreakpoint
|
|
48
|
+
});
|
|
49
|
+
var cssStyles = [hasChildFlyout && !isPushed && styles.hasChildFlyout[side]];
|
|
50
|
+
var style = {};
|
|
51
|
+
return ___EmotionJSX(EuiManagedFlyout, _extends({
|
|
52
|
+
id: flyoutId,
|
|
53
|
+
level: LEVEL_MAIN,
|
|
54
|
+
style: style,
|
|
55
|
+
css: cssStyles
|
|
56
|
+
}, _objectSpread(_objectSpread({}, props), {}, {
|
|
57
|
+
pushMinBreakpoint: pushMinBreakpoint,
|
|
58
|
+
type: type,
|
|
59
|
+
side: side
|
|
60
|
+
})));
|
|
61
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { css } from '@emotion/react';
|
|
10
|
+
/**
|
|
11
|
+
* Emotion styles for the main (parent) managed flyout.
|
|
12
|
+
* Adds subtle borders when a child flyout is present, depending on side.
|
|
13
|
+
*
|
|
14
|
+
* Returns an object with:
|
|
15
|
+
* - `hasChildFlyout.left` and `.right`: border styles to separate from child.
|
|
16
|
+
*/
|
|
17
|
+
export var euiMainFlyoutStyles = function euiMainFlyoutStyles(euiThemeContext) {
|
|
18
|
+
var thin = euiThemeContext.euiTheme.border.thin;
|
|
19
|
+
return {
|
|
20
|
+
hasChildFlyout: {
|
|
21
|
+
left: /*#__PURE__*/css("box-shadow:none;border-inline-end:", thin, ";;label:left;"),
|
|
22
|
+
right: /*#__PURE__*/css("box-shadow:none;border-inline-start:", thin, ";;label:right;")
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
+
var _excluded = ["id", "onClose", "onActive", "level", "size", "css", "flyoutMenuProps"];
|
|
5
|
+
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; }
|
|
6
|
+
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; }
|
|
7
|
+
/*
|
|
8
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
9
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
10
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
11
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
12
|
+
* Side Public License, v 1.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import React, { useEffect, useMemo, useRef } from 'react';
|
|
16
|
+
import { useEuiMemoizedStyles } from '../../../services';
|
|
17
|
+
import { useEuiI18n } from '../../i18n';
|
|
18
|
+
import { useResizeObserver } from '../../observer/resize_observer';
|
|
19
|
+
import { EuiFlyoutComponent } from '../flyout.component';
|
|
20
|
+
import { EuiFlyoutMenuContext } from '../flyout_menu_context';
|
|
21
|
+
import { useFlyoutActivityStage } from './activity_stage';
|
|
22
|
+
import { LEVEL_CHILD, LEVEL_MAIN, PROPERTY_FLYOUT, PROPERTY_LAYOUT_MODE, PROPERTY_LEVEL } from './const';
|
|
23
|
+
import { EuiFlyoutIsManagedProvider } from './context';
|
|
24
|
+
import { euiManagedFlyoutStyles } from './flyout_managed.styles';
|
|
25
|
+
import { useFlyoutManager as _useFlyoutManager, useCurrentSession, useFlyoutId, useFlyoutLayoutMode, useIsFlyoutActive, useParentFlyoutSize } from './hooks';
|
|
26
|
+
import { useCurrentMainFlyout, useIsFlyoutRegistered } from './selectors';
|
|
27
|
+
import { createValidationErrorMessage, isNamedSize, validateManagedFlyoutSize, validateSizeCombination } from './validation';
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Props for `EuiManagedFlyout`, the internal persistent flyout used by
|
|
31
|
+
* the manager. Extends base flyout props and requires a `level` to
|
|
32
|
+
* distinguish `main` vs `child` behavior.
|
|
33
|
+
*/
|
|
34
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
35
|
+
var useFlyoutManager = function useFlyoutManager() {
|
|
36
|
+
var context = _useFlyoutManager();
|
|
37
|
+
if (!context) {
|
|
38
|
+
throw new Error('EuiManagedFlyout must be used within an EuiFlyoutManager');
|
|
39
|
+
}
|
|
40
|
+
return context;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Persistent managed flyout rendered inside the provider. Handles:
|
|
45
|
+
* - registration/unregistration with the manager
|
|
46
|
+
* - size validation and parent/child size compatibility
|
|
47
|
+
* - width tracking for responsive layouts
|
|
48
|
+
* - lifecycle stage transitions and data attributes for styling
|
|
49
|
+
*/
|
|
50
|
+
export var EuiManagedFlyout = function EuiManagedFlyout(_ref) {
|
|
51
|
+
var id = _ref.id,
|
|
52
|
+
onCloseProp = _ref.onClose,
|
|
53
|
+
onActiveProp = _ref.onActive,
|
|
54
|
+
level = _ref.level,
|
|
55
|
+
sizeProp = _ref.size,
|
|
56
|
+
customCss = _ref.css,
|
|
57
|
+
_flyoutMenuProps = _ref.flyoutMenuProps,
|
|
58
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
59
|
+
var flyoutId = useFlyoutId(id);
|
|
60
|
+
var flyoutRef = useRef(null);
|
|
61
|
+
var _useFlyoutManager2 = useFlyoutManager(),
|
|
62
|
+
addFlyout = _useFlyoutManager2.addFlyout,
|
|
63
|
+
closeFlyout = _useFlyoutManager2.closeFlyout,
|
|
64
|
+
setFlyoutWidth = _useFlyoutManager2.setFlyoutWidth,
|
|
65
|
+
goBack = _useFlyoutManager2.goBack,
|
|
66
|
+
_historyItems = _useFlyoutManager2.historyItems;
|
|
67
|
+
var parentSize = useParentFlyoutSize(flyoutId);
|
|
68
|
+
var parentFlyout = useCurrentMainFlyout();
|
|
69
|
+
var layoutMode = useFlyoutLayoutMode();
|
|
70
|
+
var styles = useEuiMemoizedStyles(euiManagedFlyoutStyles);
|
|
71
|
+
|
|
72
|
+
// Set default size based on level: main defaults to 'm', child defaults to 's'
|
|
73
|
+
var size = sizeProp !== null && sizeProp !== void 0 ? sizeProp : level === LEVEL_CHILD ? 's' : 'm';
|
|
74
|
+
|
|
75
|
+
// Validate size
|
|
76
|
+
var sizeTypeError = validateManagedFlyoutSize(size, flyoutId, level);
|
|
77
|
+
if (sizeTypeError) {
|
|
78
|
+
throw new Error(createValidationErrorMessage(sizeTypeError));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// For child flyouts, validate parent-child combinations
|
|
82
|
+
if (level === LEVEL_CHILD && parentSize && isNamedSize(size) && isNamedSize(parentSize)) {
|
|
83
|
+
var combinationError = validateSizeCombination(parentSize, size);
|
|
84
|
+
if (combinationError) {
|
|
85
|
+
combinationError.flyoutId = flyoutId;
|
|
86
|
+
combinationError.parentFlyoutId = parentFlyout === null || parentFlyout === void 0 ? void 0 : parentFlyout.flyoutId;
|
|
87
|
+
combinationError.level = level;
|
|
88
|
+
throw new Error(createValidationErrorMessage(combinationError));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
var defaultTitle = useEuiI18n('euiFlyoutManaged.defaultTitle', 'Unknown Flyout');
|
|
92
|
+
|
|
93
|
+
// Set title from flyoutMenuProps or aria-label
|
|
94
|
+
// TODO: allow aria-labelledby references to be used
|
|
95
|
+
var title = (_flyoutMenuProps === null || _flyoutMenuProps === void 0 ? void 0 : _flyoutMenuProps.title) || props['aria-label'];
|
|
96
|
+
if (process.env.NODE_ENV === 'development' && level === LEVEL_MAIN && !title) {
|
|
97
|
+
console.warn("Managed flyout \"".concat(flyoutId, "\" requires a title, which can be provided through 'flyoutMenuProps.title' or 'aria-label'. Using default title: \"").concat(defaultTitle, "\""));
|
|
98
|
+
title = defaultTitle;
|
|
99
|
+
}
|
|
100
|
+
var isActive = useIsFlyoutActive(flyoutId);
|
|
101
|
+
var currentSession = useCurrentSession();
|
|
102
|
+
var flyoutExistsInManager = useIsFlyoutRegistered(flyoutId);
|
|
103
|
+
|
|
104
|
+
// Stabilize the onClose callback
|
|
105
|
+
var onCloseCallbackRef = useRef();
|
|
106
|
+
onCloseCallbackRef.current = function (e) {
|
|
107
|
+
if (onCloseProp) {
|
|
108
|
+
var event = e || new MouseEvent('click');
|
|
109
|
+
onCloseProp(event);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
// Stabilize the onActive callback
|
|
114
|
+
var onActiveCallbackRef = useRef();
|
|
115
|
+
onActiveCallbackRef.current = onActiveProp;
|
|
116
|
+
|
|
117
|
+
// Track if flyout was ever registered to avoid false positives on initial mount
|
|
118
|
+
var wasRegisteredRef = useRef(false);
|
|
119
|
+
|
|
120
|
+
// Register with flyout manager context when open, remove when closed
|
|
121
|
+
useEffect(function () {
|
|
122
|
+
addFlyout(flyoutId, title, level, size);
|
|
123
|
+
return function () {
|
|
124
|
+
closeFlyout(flyoutId);
|
|
125
|
+
|
|
126
|
+
// Reset navigation tracking when explicitly closed via isOpen=false
|
|
127
|
+
wasRegisteredRef.current = false;
|
|
128
|
+
};
|
|
129
|
+
}, [flyoutId, title, level, size, addFlyout, closeFlyout]);
|
|
130
|
+
|
|
131
|
+
// Detect when flyout has been removed from manager state (e.g., via Back button)
|
|
132
|
+
// and trigger onClose callback to notify the parent component
|
|
133
|
+
useEffect(function () {
|
|
134
|
+
if (flyoutExistsInManager) {
|
|
135
|
+
wasRegisteredRef.current = true;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// If flyout was previously registered, is marked as open, but no longer exists in manager state,
|
|
139
|
+
// it was removed via navigation (Back button) - trigger close callback
|
|
140
|
+
if (wasRegisteredRef.current && !flyoutExistsInManager) {
|
|
141
|
+
var _onCloseCallbackRef$c;
|
|
142
|
+
(_onCloseCallbackRef$c = onCloseCallbackRef.current) === null || _onCloseCallbackRef$c === void 0 || _onCloseCallbackRef$c.call(onCloseCallbackRef, new MouseEvent('navigation'));
|
|
143
|
+
wasRegisteredRef.current = false; // Reset to avoid repeated calls
|
|
144
|
+
}
|
|
145
|
+
}, [flyoutExistsInManager, flyoutId]);
|
|
146
|
+
|
|
147
|
+
// Monitor current session changes and fire onActive callback when this flyout becomes active
|
|
148
|
+
useEffect(function () {
|
|
149
|
+
if (!onActiveCallbackRef.current || !currentSession) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// Make sure callback is only fired for the flyout that changed
|
|
154
|
+
var mainChanged = level === LEVEL_MAIN && currentSession.mainFlyoutId === flyoutId;
|
|
155
|
+
var childChanged = level === LEVEL_CHILD && currentSession.childFlyoutId === flyoutId;
|
|
156
|
+
if (mainChanged || childChanged) {
|
|
157
|
+
onActiveCallbackRef.current();
|
|
158
|
+
}
|
|
159
|
+
}, [currentSession, flyoutId, level]);
|
|
160
|
+
useEffect(function () {
|
|
161
|
+
return function () {
|
|
162
|
+
// Only remove from manager on component unmount, don't trigger close callback
|
|
163
|
+
closeFlyout(flyoutId);
|
|
164
|
+
};
|
|
165
|
+
}, [closeFlyout, flyoutId]);
|
|
166
|
+
|
|
167
|
+
// Track width changes for flyouts
|
|
168
|
+
var _useResizeObserver = useResizeObserver(isActive ? flyoutRef.current : null, 'width'),
|
|
169
|
+
width = _useResizeObserver.width;
|
|
170
|
+
|
|
171
|
+
// Pass the stabilized onClose callback to the flyout menu context
|
|
172
|
+
var onClose = function onClose(e) {
|
|
173
|
+
var _onCloseCallbackRef$c2;
|
|
174
|
+
(_onCloseCallbackRef$c2 = onCloseCallbackRef.current) === null || _onCloseCallbackRef$c2 === void 0 || _onCloseCallbackRef$c2.call(onCloseCallbackRef, e);
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
// Update width in manager state when it changes
|
|
178
|
+
useEffect(function () {
|
|
179
|
+
if (isActive && width) {
|
|
180
|
+
setFlyoutWidth(flyoutId, width);
|
|
181
|
+
}
|
|
182
|
+
}, [flyoutId, level, isActive, width, setFlyoutWidth]);
|
|
183
|
+
var _useFlyoutActivitySta = useFlyoutActivityStage({
|
|
184
|
+
flyoutId: flyoutId,
|
|
185
|
+
level: level
|
|
186
|
+
}),
|
|
187
|
+
activityStage = _useFlyoutActivitySta.activityStage,
|
|
188
|
+
onAnimationEnd = _useFlyoutActivitySta.onAnimationEnd;
|
|
189
|
+
|
|
190
|
+
// Note: history controls are only relevant for main flyouts
|
|
191
|
+
var historyItems = useMemo(function () {
|
|
192
|
+
var result = level === LEVEL_MAIN ? _historyItems : undefined;
|
|
193
|
+
return result;
|
|
194
|
+
}, [level, _historyItems]);
|
|
195
|
+
var backButtonProps = useMemo(function () {
|
|
196
|
+
return level === LEVEL_MAIN ? {
|
|
197
|
+
onClick: goBack
|
|
198
|
+
} : undefined;
|
|
199
|
+
}, [level, goBack]);
|
|
200
|
+
var showBackButton = historyItems ? historyItems.length > 0 : false;
|
|
201
|
+
var flyoutMenuProps = _objectSpread(_objectSpread({}, _flyoutMenuProps), {}, {
|
|
202
|
+
historyItems: historyItems,
|
|
203
|
+
showBackButton: showBackButton,
|
|
204
|
+
backButtonProps: backButtonProps,
|
|
205
|
+
title: title
|
|
206
|
+
});
|
|
207
|
+
return ___EmotionJSX(EuiFlyoutIsManagedProvider, {
|
|
208
|
+
isManaged: true
|
|
209
|
+
}, ___EmotionJSX(EuiFlyoutMenuContext.Provider, {
|
|
210
|
+
value: {
|
|
211
|
+
onClose: onClose
|
|
212
|
+
}
|
|
213
|
+
}, ___EmotionJSX(EuiFlyoutComponent, _extends({
|
|
214
|
+
id: flyoutId,
|
|
215
|
+
ref: flyoutRef,
|
|
216
|
+
css: [styles.managedFlyout, customCss, styles.stage(activityStage, props.side, level), ";label:EuiManagedFlyout;"]
|
|
217
|
+
}, _objectSpread(_objectSpread({}, props), {}, _defineProperty(_defineProperty(_defineProperty({
|
|
218
|
+
onClose: onClose,
|
|
219
|
+
size: size,
|
|
220
|
+
flyoutMenuProps: flyoutMenuProps,
|
|
221
|
+
onAnimationEnd: onAnimationEnd
|
|
222
|
+
}, PROPERTY_FLYOUT, true), PROPERTY_LAYOUT_MODE, layoutMode), PROPERTY_LEVEL, level))))));
|
|
223
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
|
+
var _templateObject, _templateObject2;
|
|
3
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
4
|
+
/*
|
|
5
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
6
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
7
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
8
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
9
|
+
* Side Public License, v 1.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { css, keyframes } from '@emotion/react';
|
|
13
|
+
import { euiCanAnimate, logicalCSS } from '../../../global_styling';
|
|
14
|
+
import { LEVEL_MAIN, STAGE_ACTIVE, STAGE_BACKGROUNDED, STAGE_BACKGROUNDING, STAGE_CLOSING, STAGE_INACTIVE, STAGE_OPENING, STAGE_RETURNING } from './const';
|
|
15
|
+
import { DEFAULT_SIDE } from '../const';
|
|
16
|
+
var _ref = process.env.NODE_ENV === "production" ? {
|
|
17
|
+
name: "hklg7q-managedFlyout",
|
|
18
|
+
styles: "perspective:1000px;transform-style:preserve-3d;label:managedFlyout;"
|
|
19
|
+
} : {
|
|
20
|
+
name: "hklg7q-managedFlyout",
|
|
21
|
+
styles: "perspective:1000px;transform-style:preserve-3d;label:managedFlyout;",
|
|
22
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Emotion styles for managed flyouts.
|
|
26
|
+
* Provides base 3D context and animations tied to managed flyout stages
|
|
27
|
+
* via data attributes.
|
|
28
|
+
*/
|
|
29
|
+
export var euiManagedFlyoutStyles = function euiManagedFlyoutStyles(euiThemeContext) {
|
|
30
|
+
var euiTheme = euiThemeContext.euiTheme;
|
|
31
|
+
return {
|
|
32
|
+
stage: function stage(activeStage) {
|
|
33
|
+
var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_SIDE;
|
|
34
|
+
var level = arguments.length > 2 ? arguments[2] : undefined;
|
|
35
|
+
// Animation for moving flyout backwards in 3D space (z-axis) when inactive
|
|
36
|
+
var euiFlyoutSlideBack3D = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n from {\n transform: translateZ(0) translateX(0) scale(1);\n filter: blur(0px);\n opacity: 1;\n }\n to {\n transform: translateZ(-1500px) translateX(", ") scale(0.5);\n filter: blur(3px);\n opacity: 0.6;\n }\n "])), side === 'left' ? 'calc(-100vw - 100%)' : 'calc(100vw + 100%)');
|
|
37
|
+
|
|
38
|
+
// Animation for bringing flyout forward from 3D space when transitioning to active
|
|
39
|
+
var euiFlyoutSlideForward3D = keyframes(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n from {\n transform: translateZ(-500px) translateX(", ") scale(0.85);\n filter: blur(3px);\n opacity: 0.6;\n }\n to {\n transform: translateZ(0) translateX(0) scale(1);\n filter: blur(0px);\n opacity: 1;\n }\n "])), side === 'left' ? 'calc(-100vw - 100%)' : 'calc(100vw + 100%)');
|
|
40
|
+
// When flyout is becoming inactive, animate backwards in 3D space
|
|
41
|
+
var inactiveTransition = /*#__PURE__*/css(euiCanAnimate, "{animation:", euiFlyoutSlideBack3D, " ", euiTheme.animation.extraSlow, " ", euiTheme.animation.resistance, " forwards;pointer-events:none;};label:inactiveTransition;");
|
|
42
|
+
|
|
43
|
+
// When flyout is becoming active from a backgrounded state, animate forward in 3D space
|
|
44
|
+
var returningTransition = /*#__PURE__*/css(euiCanAnimate, "{animation:", euiFlyoutSlideForward3D, " ", euiTheme.animation.normal, " ", euiTheme.animation.resistance, " forwards;};label:returningTransition;");
|
|
45
|
+
var noTransition = /*#__PURE__*/css(euiCanAnimate, "{animation:none;opacity:1;};label:noTransition;");
|
|
46
|
+
var activeFlyout = /*#__PURE__*/css("z-index:", parseInt(euiTheme.levels.flyout) + 1, ";pointer-events:auto;;label:activeFlyout;");
|
|
47
|
+
var inactiveFlyout = /*#__PURE__*/css(side === 'left' ? logicalCSS('right', '100vw') : logicalCSS('left', '100vw'), " transform:translateX(", side === 'left' ? 'calc(-100vw - 100%)' : 'calc(100vw + 100%)', ");;label:inactiveFlyout;");
|
|
48
|
+
switch (activeStage) {
|
|
49
|
+
case STAGE_OPENING:
|
|
50
|
+
// Apply a higher z-index to opening main flyouts for seamless
|
|
51
|
+
// transitions from previously active main flyouts
|
|
52
|
+
return [level === LEVEL_MAIN && activeFlyout];
|
|
53
|
+
case STAGE_ACTIVE:
|
|
54
|
+
return [activeFlyout, noTransition];
|
|
55
|
+
case STAGE_BACKGROUNDING:
|
|
56
|
+
return [inactiveTransition];
|
|
57
|
+
case STAGE_BACKGROUNDED:
|
|
58
|
+
return [inactiveFlyout, noTransition];
|
|
59
|
+
case STAGE_RETURNING:
|
|
60
|
+
return [activeFlyout, returningTransition];
|
|
61
|
+
case STAGE_INACTIVE:
|
|
62
|
+
return [inactiveFlyout, noTransition];
|
|
63
|
+
case STAGE_CLOSING:
|
|
64
|
+
return [inactiveTransition];
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
managedFlyout: _ref
|
|
68
|
+
};
|
|
69
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { useContext, useRef } from 'react';
|
|
10
|
+
import { warnOnce, useGeneratedHtmlId } from '../../../services';
|
|
11
|
+
import { EuiFlyoutManagerContext } from './provider';
|
|
12
|
+
import { useIsFlyoutRegistered } from './selectors';
|
|
13
|
+
|
|
14
|
+
// Ensure uniqueness across multiple hook instances, including in test envs
|
|
15
|
+
var autoGeneratedFlyoutIdCounter = 0;
|
|
16
|
+
export { useIsFlyoutActive, useHasActiveSession, useCurrentSession, useCurrentMainFlyout, useCurrentChildFlyout, useFlyoutWidth, useParentFlyoutSize, useHasChildFlyout, usePushPaddingOffsets, useHasPushPadding } from './selectors';
|
|
17
|
+
export { useFlyoutLayoutMode } from './layout_mode';
|
|
18
|
+
export { useIsInManagedFlyout } from './context';
|
|
19
|
+
|
|
20
|
+
// Convenience selector for a flyout's activity stage
|
|
21
|
+
|
|
22
|
+
/** Access the flyout manager context (state and actions). */
|
|
23
|
+
export var useFlyoutManager = function useFlyoutManager() {
|
|
24
|
+
return useContext(EuiFlyoutManagerContext);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Stable flyout ID utility. Uses the passed `id` if provided and not already registered,
|
|
29
|
+
* otherwise generates a deterministic ID for the component's lifetime.
|
|
30
|
+
* The ID remains stable across re-renders to maintain consistency in effects and other hooks.
|
|
31
|
+
*/
|
|
32
|
+
export var useFlyoutId = function useFlyoutId(flyoutId) {
|
|
33
|
+
var defaultId = useGeneratedHtmlId({
|
|
34
|
+
prefix: 'flyout-'
|
|
35
|
+
});
|
|
36
|
+
var isRegistered = useIsFlyoutRegistered(flyoutId);
|
|
37
|
+
|
|
38
|
+
// Use ref to maintain ID stability across re-renders
|
|
39
|
+
var componentIdRef = useRef(undefined);
|
|
40
|
+
if (!componentIdRef.current) {
|
|
41
|
+
// Determine the ID to use
|
|
42
|
+
if (!flyoutId) {
|
|
43
|
+
// No ID provided, generate a new one
|
|
44
|
+
componentIdRef.current = "".concat(defaultId, "-").concat(++autoGeneratedFlyoutIdCounter);
|
|
45
|
+
} else if (isRegistered) {
|
|
46
|
+
// ID is provided but already registered, generate a new one
|
|
47
|
+
warnOnce("flyout-id-".concat(flyoutId), "Flyout with ID ".concat(flyoutId, " already registered; using new ID ").concat(defaultId));
|
|
48
|
+
componentIdRef.current = "".concat(defaultId, "-").concat(++autoGeneratedFlyoutIdCounter);
|
|
49
|
+
} else {
|
|
50
|
+
// ID is provided and not registered, use it
|
|
51
|
+
componentIdRef.current = flyoutId;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return componentIdRef.current;
|
|
55
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Convenience re-exports of bound action creators for external usage.
|
|
11
|
+
*/
|
|
12
|
+
export { addFlyout as addFlyoutAction, closeFlyout as closeFlyoutAction, setActiveFlyout as setActiveFlyoutAction, setFlyoutWidth as setFlyoutWidthAction, setPushPadding as setPushPaddingAction, setActivityStage as setActivityStageAction } from './actions';
|
|
13
|
+
|
|
14
|
+
/** Reducer and default state for the flyout manager. */
|
|
15
|
+
export { flyoutManagerReducer, initialState } from './reducer';
|
|
16
|
+
|
|
17
|
+
/** Provider component exposing the Flyout Manager API via context. */
|
|
18
|
+
export { EuiFlyoutManager } from './provider';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Hooks for reading manager state and derived information.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Selectors and derived state hooks for managed flyouts.
|
|
25
|
+
*/
|
|
26
|
+
export { useCurrentChildFlyout, useCurrentMainFlyout, useCurrentSession, useFlyoutId, useFlyoutLayoutMode, useFlyoutManager, useFlyoutWidth, useHasChildFlyout, useIsFlyoutActive, useIsInManagedFlyout, useHasActiveSession, useParentFlyoutSize, usePushPaddingOffsets, useHasPushPadding } from './hooks';
|
|
27
|
+
export { EuiFlyoutChild } from './flyout_child';
|
|
28
|
+
export { EuiFlyoutMain } from './flyout_main';
|
|
29
|
+
|
|
30
|
+
/** Utility functions for flyout sizing and layout. */
|
|
31
|
+
export { getWidthFromSize } from './layout_mode';
|